PowerShell读取电脑信息并上传数据库

功能模块

导入MySql.Data.dll文件

连接MySQL是通过.net框架的,所以必须先安装 MySQL .Net Connector 。下载地址(http://dev.mysql.com/downloads/connector/net/)。 如果不想安装MySQL .Net connector 也可以直接在其他已安装的机器上拷贝MySql.Data.dll 到需要使用的机器上。

连接方式:

如果是安装了MySQL .Net Connector

[void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")

如果是直接通过MySQL.Data.dll文件

$mySQLDataDLL = "%path%\MySql.Data.dll"
[void][system.reflection.Assembly]::LoadFrom($mySQLDataDLL)

写入mysql参数

$Server="127.0.0.1"
$Database="test"
$user="admin"
$Password= "123456"
$charset="utf8"

获取电脑信息

这里我用当前时间作为数据库的id。

# 获取电脑基础信息
#当前时间生成ID
$id = Get-Date -Format "yyyyMMddHHmmssff"

# CPU序列号
$cpuIdObj = wmic cpu get processorid
$cpuId = $cpuIdObj[2]


# 计算机名
$computerName = $env:COMPUTERNAME

# 用户名
$userName = $env:userNAME

# 当前mac
$mac = (Get-WmiObject Win32_NetworkAdapterConfiguration | where {$_.ipenabled -EQ $true}).Macaddress | select-object -first 1

# ip
$ip = (get-WmiObject Win32_NetworkAdapterConfiguration|Where {$_.Ipaddress.length -gt 1}).IPAddress | Select-object -index 0

#最近一次开机时间,转换数据格式
$lastBootTimeTmp = [datetime]::Now.AddMilliseconds(-([environment]::TickCount))
$lastBootTime = Get-Date -Date $lastBootTimeTmp -Format 'yyyy-MM-dd hh:mm:ss'

因为powershell输入的DateTime默认格式是2024年7月12日 0:01:35不能直接写入mysql,需要对数据先进行处理,$lastBootTime = Get-Date -Date $lastBootTimeTmp -Format 'yyyy-MM-dd hh:mm:ss'将其转换为2024-07-12 12:01:35格式

连接mysql

# 连接mysql
$connectionString = "server=$Server;uid=$user;pwd=$Password;database=$Database;charset=$charset"
$connection = New-Object MySql.Data.MySqlClient.MySqlConnection($connectionString)
$connection.Open()

执行SQL

$insertsql = "INSERT INTO macinfo VALUES('$id','$lastBootTime','$userName','$mac','$ip','$computerName');"
$insertcommand = New-Object MySql.Data.MySqlClient.MySqlCommand
$insertcommand.Connection=$connection
$insertcommand.CommandText=$insertsql
$insertcommand.ExecuteNonQuery()
# 关闭连接:
$connection.Close()

隐藏Powershell命令框

使用批处理运行ps1脚本,实现后台免打扰

@echo off
if ERRORLEVEL 0 (
	taskkill /im powershell.exe /f 2>nul
)
::start powershell  -file ".\info.ps1"
start powershell -NoLogo -NonInteractive -WindowStyle Hidden -ExecutionPolicy Bypass -File ".\info.ps1"

效果

完整源码



# [void][system.Reflection.Assembly]::LoadFrom("C:\Users\*****\Documents\MySql.Data.dll") | Out-Null
#导入关键文件
$mySQLDataDLL = "C:\Users\liuyu\Documents\MySql.Data.dll"
[void][system.reflection.Assembly]::LoadFrom($mySQLDataDLL)
# MySQL参数:
$Server="127.0.0.1"
$Database="test"
$user="admin"
$Password= "123456"
$charset="utf8"
###================================================
function toMysql(){
    # 获取电脑基础信息
    #当前时间生成ID
    $id = Get-Date -Format "yyyyMMddHHmmssff"

    # CPU序列号
    $cpuIdObj = wmic cpu get processorid
    $cpuId = $cpuIdObj[2]

    # 计算机名
    $computerName = $env:COMPUTERNAME

    # 用户名
    $userName = $env:userNAME

    # 当前mac
    $mac = (Get-WmiObject Win32_NetworkAdapterConfiguration | where {$_.ipenabled -EQ $true}).Macaddress | select-object -first 1

    # ip
    $ip = (get-WmiObject Win32_NetworkAdapterConfiguration|Where {$_.Ipaddress.length -gt 1}).IPAddress | Select-object -index 0

    #最近一次开机时间,转换数据格式
    $lastBootTimeTmp = [datetime]::Now.AddMilliseconds(-([environment]::TickCount))
    $lastBootTime = Get-Date -Date $lastBootTimeTmp -Format 'yyyy-MM-dd hh:mm:ss'

    #当前时间
    $uploadTime = Get-Date -Format 'yyyy-MM-dd hh:mm:ss'


    # 连接mysql
    $connectionString = "server=$Server;uid=$user;pwd=$Password;database=$Database;charset=$charset"
    $connection = New-Object MySql.Data.MySqlClient.MySqlConnection($connectionString)
    $connection.Open()

    # 执行SQL:
    $insertsql = "INSERT INTO macinfo VALUES('$id','$cpuId','$lastBootTime','$userName','$mac','$ip','$computerName','$uploadTime');"
    $insertcommand = New-Object MySql.Data.MySqlClient.MySqlCommand
    $insertcommand.Connection=$connection
    $insertcommand.CommandText=$insertsql
    $insertcommand.ExecuteNonQuery()
    # 关闭连接:
    $connection.Close()

}
while(1 -le 2) {
    toMysql
    Start-Sleep -Seconds 600
}

评论

  1. Clara
    Android Chrome
    9 月前
    2024-7-21 15:11:15

    baka

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇