1. 程式人生 > WINDOWS開發 >編寫vbs指令碼獲取Windows server的系統資訊

編寫vbs指令碼獲取Windows server的系統資訊

因為公司最近讓我寫指令碼來監控Windows Server的使用情況,考慮了好久決定使用vbs和bat結合來完成對Windows Server伺服器資源的監控。

下面是vbs指令碼:

REM ‘獲取IP地址’
REM ‘判斷DNS是否為空,判斷IP地址開頭是否為10或192’
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\CIMV2”)

Set colItems = objWMIService.ExecQuery( _
“SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE”,48)
For Each objItem in colItems
If isNULL(objItem.DNSServerSearchOrder) Then
Else
IPX=objItem.IPAddress(0)
LefIP=split(IPX,”.”)(0)
If LefIP=”10″ OR LefIP=”192″ Then
IP=IPX
Wscript.Echo “ip:” & IP
End If
End If
Next

REM ‘獲取SN號’
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\CIMV2”)
Set colItems = objWMIService.ExecQuery( _
“SELECT * FROM Win32_BIOS”,48)

For Each objItem in colItems
SN=objItem.SerialNumber
Wscript.Echo “Sn: ” & SN
Next

REM ‘獲取CPU資訊’
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\CIMV2”)
Set colItems = objWMIService.ExecQuery( _
“SELECT * FROM Win32_Processor”,48)
For Each objItem in colItems
Processor=objItem.Name
Wscript.Echo “Processors: ” & Processor
Next

REM ‘獲取記憶體資訊’
Set wmiService = GetObject(“winmgmts:\\.\root\cimv2”)
Set wmiObjects = wmiService.ExecQuery(“SELECT * FROM CIM_OperatingSystem”)
For Each wmiObject In wmiObjects
all=round(wmiObject.TotalVisibleMemorySize/1024/1024)
over=round(wmiObject.FreePhysicalMemory/1024/1024)
Wscript.Echo “TotalMemory: ” & all & “G”
Wscript.Echo “FreeMemory: ” & over & “G”
Next

REM ‘獲取硬碟資訊’
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\CIMV2”)
Set colItems = objWMIService.ExecQuery( _
“SELECT * FROM Win32_DiskDrive”,48)
For Each objItem in colItems
Disk=Disk& objItem.Model & ” (” & round(objItem.Size/1073741824) & “G),”
Wscript.Echo “Disk: ” & Disk

Set objWMIService = GetObject(“winmgmts:”)

Set objLogicalDisk = objWMIService.Get(“Win32_LogicalDisk.DeviceID=’c:‘”)

Wscript.Echo “C盤可用容量: “&cint(objLogicalDisk.FreeSpace / 1024 / 1024 / 1024) & “GB”

Next

REM ‘獲取電腦品牌’
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\CIMV2”)
Set colItems = objWMIService.ExecQuery( _
“SELECT * FROM Win32_BaseBoard”,48)
For Each objItem in colItems
Pinpai=objItem.Manufacturer
Next

REM ‘獲取Summary資訊’
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\CIMV2”)
Set colItems = objWMIService.ExecQuery( _
“SELECT * FROM Win32_BaseBoard”,48)
For Each objItem in colItems
Product=objItem.Product
Summary=Pinpai & ” ” & Product & “,” & Processor & “,” & Memory
Wscript.Echo “Summary: ” & Summary
Next

REM ‘獲取Chipset資訊’
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\CIMV2”)
Set colItems = objWMIService.ExecQuery( _
“SELECT * FROM Win32_Processor”,48)
For Each objItem in colItems
Chipset=objItem.Caption
Wscript.Echo “Chipset: ” & Chipset
Next

REM ‘獲取系統型別’
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\CIMV2”)
Set colItems = objWMIService.ExecQuery( _
“SELECT * FROM Win32_OperatingSystem”,48)
For Each objItem in colItems
OS=objItem.Caption
Wscript.Echo “OS: ” & OS
Next

REM ‘獲取BIOS資訊’
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\CIMV2”)
Set colItems = objWMIService.ExecQuery( _
“SELECT * FROM Win32_BIOS”,48)
For Each objItem in colItems
If isNull(objItem.BIOSVersion) Then
Wscript.Echo “BIOS: ”
Else
BIOS=Join(objItem.BIOSVersion,”,”)
Wscript.Echo “BIOS: ” & BIOS
End If
Next

REM ‘獲取計算機名’
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\CIMV2”)
Set colItems = objWMIService.ExecQuery( _
“SELECT * FROM Win32_ComputerSystem”,48)
For Each objItem in colItems
Hostname=objItem.DNSHostName
Wscript.Echo “Hostname:” & Hostname
Next

REM ‘獲取MAC地址’
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\CIMV2”)
Set colItems = objWMIService.ExecQuery( _
“SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True”,48)
For Each objItem in colItems
Macaddress=objItem.MACAddress
Wscript.Echo “MACAddress: ” & Macaddress
Next

REM ‘獲取Network資訊’
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\CIMV2”)
Set colItems = objWMIService.ExecQuery( _
“SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True”,48)
For Each objItem in colItems
Network=Mid(objItem.Caption,InStr(objItem.Caption,”]”)+1) & ” ” & Macaddress
Wscript.Echo “Network: ” & Network
Next

REM ‘curl發包’
Dim Info
Info=”Summary: ” & Summary & Chr(13) & “Processors: ” & Processor & Chr(13) & “Memory: ” & Memory & Chr(13) & “Disk: ” & Disk & Chr(13) & “Chipset: ” & Chipset & Chr(13) & “Network: ” & Network & Chr(13) & “BIOS: ” & BIOS

dim curlcmd
dim cmdstr
set curlcmd=Createobject(“wscript.shell”)
cmdstr = “curl.exe -d “”ip=” & IP & “&sn=” & SN & “&info=” & Info & “”” https://ams.nxadmin.com/api/hwinfo”
curlcmd.run cmdstr

bat指令碼:

@echo off echo “正在獲取作業系統資訊……” echo 計算機資訊: >info.txt cscript //Nologo Get_Machine.vbs >> info.txt