前面文章写了bat版本的一键获取,但是只能保存到txt,为了便于统计还是得excel。
保存下面代码到txt文档,修改txt文件后缀名为.vbs

ON ERROR RESUME NEXT
Temp = 0
Set WSHNetwork = WScript.CreateObject("WScript.Network")
UserName =InputBox("收集公司电脑资产,不涉及其他信息收集,请输入此电脑所属人员,如已收集,请点击取消!如有疑问,请联系IT", "输入")
TempFiles ="C:\"& UserName &".csv"
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")
Set TempFile = FSO.CreateTextFile(TempFiles)
strComputer = "."
Set objWMIService = Getobject("winmgmts:\\" & strComputer & "\root\cimv2")
 
Set CPU = objWMIService.ExecQuery("Select * From Win32_Processor")
For Each Item In CPU
CPU2 = "CPU:" & Item.Name
Next
 
Set Board = objWMIService.ExecQuery("Select * From Win32_BaseBoard")
For Each Item In Board
Board2 = "主板: " & Item.Manufacturer & Item.Product
Next
 
Set colItems = objWMIService.ExecQuery("Select * From Win32_PhysicalMemory")
For Each objItem In colItems
A = objItem.Capacity/1073741824
Temp = temp+objItem.Capacity
N = N+1
Next
Memory = Temp/1073741824
If N = 1 Then
Memory2 = "内存: " & N & "条" & A & "G"
Else
Memory2 = "内存: " & N & "条" & A & "G" &" 总计" & Memory & "G"
End If

Set Disk = objWMIService.ExecQuery("Select * From Win32_DiskDrive")
For Each Item In Disk
Disk2 = Disk2 & Item.Model & "("& Round(Item.Size/1000000000) & "G)   "
Next
Disk3 = "硬盘: " & Trim(Disk2)

Function GetIPMAC(ComputerName) 
Dim objWMIService,colItems,objItem,objAddress
Set objWMIService = GetObject("winmgmts://" & ComputerName & "/root/cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objItem in colItems
 For Each objAddress in objItem.IPAddress
  If objAddress <> "" then
  GetIPMAC = objAddress & ",MAC:" & objItem.MACAddress
  Exit For
 End If  
 Next
 Exit For
Next
End Function

Set os = objWMIService.ExecQuery("Select * from Win32_OperatingSystem") 
For Each Item in os
os= "OS: " & Item.Caption
Next
Set colItems = objWMIService.ExecQuery("Select * from Win32_VideoController", , 48)
 J = 0
    For Each objItem In colItems
     If J = 0 Then video2 =   (Trim(objItem.Caption) & (objItem.VideoModeDescription)) Else video3 =    (Trim(objItem.Caption) & (objItem.VideoModeDescription))
    J = J + 1
    Video2 = "显卡: " & Item.Description
Next
Set objWMIService = GetObject("winmgmts:\\"  & strComputer & "\root\wmi") 
Set colItems = objWMIService.ExecQuery   ("SELECT * FROM WMIMonitorID")
strKeys=""
For Each objItem In colItems
  strResult = objItem.InstanceName
  strResult = Left(strResult,Len(strResult)-2)
  strKeys = strKeys & strResult & ","
Next

TempFile.WriteLine("姓名,计算机名,OS,CPU,内存,硬盘,IP地址,MAC地址,显卡,主板,显示器")
TempFile.WriteLine(UserName&","&computername&","&os&","&CPU2&","&Memory2&","&Disk3&","&GetIPMAC(".")&","&Video2&video3&","&Board2&","&strKeys)
TempFile.Close
最后修改:2023 年 04 月 17 日
如果觉得我的文章对你有用,请随意赞赏