邦友好,
請問如何利用python抓取電腦內的資訊
電腦名稱、IP、MAC、OS版本、已安裝軟體
目前爬文,有嘗試過利用cmd下指令抓取電腦內的資訊
碰到的問題是,已安裝軟體好像並不會全部列出來
爬文python可以利用wmi這個套件來抓取電腦內的資訊
但一直失敗...不知道是不是版本關係(3.6.8)
有版友有這方面的實務經驗嗎?
目前想利用python抓取這些資料後丟到excel內...自動化去更新區網內的電腦資訊
建議利用powershell去做這件事比較好,因為是win7以上內建的。
python在windows上要做到這些事還要 import pywin32,除非打包成exe,要不然你得每台電腦裝python和pywin32。
然後pyinstaller以我的經驗,你通常會遇到字碼問題,然後你得自己去改pyinstaller的code。
抓安裝軟體的powershell:
Get-WmiObject -Class Win32_Product
您好,請問如何將查詢結果輸出呢?
我使用這個
Get-process | export-csv -path e:\processes.csv –NoTypeInformation
但是它好像是輸出我目前的執行程式有哪些...
= =a
你有沒有覺得你的指令和我的完全不一樣...
Get-process本來就是去抓目前執行序。
Get-WmiObject -Class Win32_Product | export-csv -path e:\processes.csv –NoTypeInformation
哈,抱歉,前輩
我後來有找到一個指令,它是列出可解除安裝程式,
上面的資料比較單純就是name而已
請問這個指令也可以輸出到csv嗎?
Get-WmiObject -Class Win32_Product -ComputerName . | Format-Wide -Column 1
| 是管道命令
export-csv -path e:\processes.csv –NoTypeInformation是輸出csv的命令。
管道命令你可以把他當成把結果傳給下一個命令。
Get-WmiObject -Class Win32_Product | Select-Object -Property Name | export-csv -path e:\processes.csv –NoTypeInformation -Encoding UTF8
解釋起來就是下面這樣,刮號裡是得到的結果:
先得到所有安裝的軟體(得到所有軟體的各個物件) > 選擇軟體裡面name這個屬性(得到所有軟體的name這個屬性) > 輸出CSV(得到CSV)
Powershell對於管windows來說非常好用,我是寫python當主力語言,但遇到要管windows我還是會選擇用Powershell來管理。
去看教學吧。
-ComputerName .
這個參數是可以透過網路去取得資訊,不過應該要經過設定,要取得本機的資訊不用這個參數也可以
前輩有哪個網站的教學比較齊全可以參考嗎?
我原本也在摸索python,後來發現powershell更好用...
https://ithelp.ithome.com.tw/articles/10027285
不過這篇有點老了,要注意版本差異,但是基本是通的。
https://gitlab.com/takshing2001/getremotepcinfo/blob/master/GetPCInfo.ps1
# Get Remote System Information
# Shows hardware and OS details from a list of PC
# Last Edit :Peter Cheung 15 March 2019
$ArrComputers = get-content "C:\scripts\computers.txt"
foreach ($Computer in $ArrComputers)
{
$computerSystem = get-wmiobject Win32_ComputerSystem -Computer $Computer
$computerBIOS = get-wmiobject Win32_BIOS -Computer $Computer
$computerOS = get-wmiobject Win32_OperatingSystem -Computer $Computer
$computerCPU = get-wmiobject Win32_Processor -Computer $Computer
$computerHDD = Get-WmiObject Win32_LogicalDisk -ComputerName $Computer -Filter drivetype=3
write-host "System Information for: " $computerSystem.Name -BackgroundColor DarkCyan
"-------------------------------------------------------"
"Manufacturer: " + $computerSystem.Manufacturer
"Model: " + $computerSystem.Model
"Serial Number: " + $computerBIOS.SerialNumber
"CPU: " + $computerCPU.Name
"HDD Capacity C: " + "{0:N2}" -f ($computerHDD.Size[0]/1GB) + "GB"
"HDD Capacity D: " + "{0:N2}" -f ($computerHDD.Size[1]/1GB) + "GB"
"HDD Space C: " + "{0:P2}" -f ($computerHDD.FreeSpace[0]/$computerHDD.Size[0]) + " Free (" + "{0:N2}" -f ($computerHDD.FreeSpace[0]/1GB) + "GB)"
"HDD Space D: " + "{0:P2}" -f ($computerHDD.FreeSpace[1]/$computerHDD.Size[1]) + " Free (" + "{0:N2}" -f ($computerHDD.FreeSpace[1]/1GB) + "GB)"
"RAM: " + "{0:N2}" -f ($computerSystem.TotalPhysicalMemory/1GB) + "GB"
"Operating System: " + $computerOS.caption + ", Service Pack: " + $computerOS.ServicePackMajorVersion
"User logged In: " + $computerSystem.UserName
"Last Reboot: " + $computerOS.ConvertToDateTime($computerOS.LastBootUpTime)
""
"-------------------------------------------------------"
}