天天看点

如何搜集企业域中所有电脑的硬件配置信息?

 如何搜集企业域中所有电脑的硬件配置信息?

大家好,好久沒有在線給大伙留言了。最近在忙著做資產管理這一塊兒。電腦這麼多,配置不一,做這個確實有些悶。不過沒有關系,最近找到了一個腳本可以做到用戶端自動收集配置信息的腳本。主要包括有CPU、MAC、IP、內存、硬盤、網卡、顯示卡、光驅、主板信息不是很全。下面我把腳本公布一下:(在此聲明,這個腳本來自企業網盟,很久以前下的)

On Error Resume Next

temp=0

set wshshell=wscript.createobject("wscript.shell")

wshshell.run ("%comspec% /c regsvr32 /s scrrun.dll"),0,True

wshshell.run ("%comspec% /c sc config  winmgmt start= auto"),0,True

wshshell.run ("%comspec% /c net start winmgmt"),0

Set WshNetwork = WScript.Createobject("WScript.Network")

computername=WshNetwork.ComputerName

set fso=createobject("scripting.filesystemobject")

tempfilter="\\你的服務器地址\hard_info\"& computername &".txt"

set tempfile=fso.createtextfile(tempfilter)

strComputer = "."

Set objWMIService = Getobject("winmgmts:\\" & strComputer & "\root\cimv2")

set board =objwmiservice.execQuery("select * from win32_baseboard")

for each item in board

board2=  item.Product

next

'CPU

set cpu =objwmiservice.execQuery("select * from win32_processor")

for each item in cpu

cpu2=  item.Name

Set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemory",,48)

For Each objItem in colItems

a=objitem.capacity/1048576

temp=temp+objitem.capacity

n=n+1

Next

memory=temp/1048576

if n=1 then

memory2=  n & "條" &a& "M"

else

memory2=  n & "條" &a& "M"&" 合計"&memory&"M"

end if

'sound

set sound =objwmiservice.execQuery("select * from win32_SoundDevice",,48)

for each item in sound

sound2= item.ProductName

'OS

set OS =objwmiservice.execQuery("select * from win32_OperatingSystem",,48)

for each item in OS

OS2= item.Caption & item.Version

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_CDROMDrive", , 48)

    J = 0

    For Each objItem In colItems

        If J = 0 Then CDROM2 =  (Trim(objItem.Name)) Else CDROM3 =  (Trim(objItem.Name))

    J = J + 1

    Next

Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter", , 48)

    If J = 0 Then lan1=  (Trim(objItem.ProductName)) Else lan2=  (Trim(objItem.ProductName))

    If J = 0 Then lan3=  (Trim(objItem.MACAddress)) Else lan4=  (Trim(objItem.MACAddress))

Set colItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive", , 48)

    If J = 0 Then disk2= (Trim(objItem.Caption)) Else disk3= ( Trim(objItem.Caption))

Set colItems = objWMIService.ExecQuery("Select * from Win32_VideoController", , 48)

     If J = 0 Then video2 =   (Trim(objItem.Caption) & (objItem.VideoModeDescription)) Else video3 =    (Trim(objItem.Caption) & (objItem.VideoModeDescription))

set colItems =objWMIService.ExecQuery _    

    ("Select IPAddress from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

    For Each IPConfig IN colItems

 If Not IsNull(IPConfig.IPAddress) Then

    For i=LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)

    lan5=   (IPConfig.IPAddress(i))

 Next

 End If

tempfile.writeline(lan1)

tempfile.writeline(lan3)

tempfile.writeline(lan5)

tempfile.writeline(board2)

tempfile.writeline(cpu2)

tempfile.writeline(memory2)

tempfile.writeline(disk2)

tempfile.writeline(video2)

tempfile.writeline(sound2)

tempfile.writeline(OS2)

tempfile.writeline(CDROM2)

tempfile.writeline(lan2)

tempfile.writeline(lan4)

tempfile.writeline(disk3)

tempfile.writeline(video3)

tempfile.writeline(CDROM3)

中間的注釋被我給刪掉了,因為公司是繁體系統會顯亂碼的。個人覺得這個還是不錯的,隻需要在服務器上新建一個共享文件夾設置可寫權限,使用組策略配合使用功力大增。

我已在測試環境與真實環境中測試過,沒有什麼問題。如果大家下載後發現不能使用或是有其他問題請回復,希望可以與你共同探討這方面的知識。謝謝!