用VBScript收集系统信息并上传到ftp空间 |
本文标签:VBScript,系统信息 之前无聊整理出来了一份这个东西,因为在单位给新入职的员工配电脑时,需要登记一遍设备,可每次总要查感觉挺麻烦,结果下面的这份VBS脚本就诞生了,只可惜这个脚本做好了却没派上用场哎 。 。 。 这个脚本的功能是运行后自动将查询到的计算机相关信息记录到一个文档中,然后在经过FTP将生成的文件上传至服务器保存,最后在清除运行脚本是生成的文件并删除自身 。 下面是代码: 复制代码 代码如下: #####收集计算机信息_开始##### On Error Resume Next Set fso = CreateObject("Scripting.FileSystemObject") Set f1 = fso.CreateTextFile("info") strComputer = "." If Err.Description = "" Then 收集本地计算机名称 Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem", , 48) J = 0 For Each objItem In colItems If J = 0 Then f1.write (Trim(objItem.Name)) Else f1.write (Trim(objItem.Name)) 收集本地计算机名称 J = J + 1 Next 收集计算机登录帐户 f1.write (chr(10)) f1.write (";") f1.write (chr(10)) Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem", , 48) J = 0 For Each objItem In colItems If J = 0 Then f1.write (Trim(objItem.UserName)) Else f1.write (Trim(objItem.UserName)) 收集计算机登录帐户 J = J + 1 Next 收集CPU信息 f1.write (chr(10)) f1.write (";") f1.write (chr(10)) Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor", , 48) J = 1 For Each objItem In colItems If J = 0 Then f1.write (Trim(objItem.Name)) Else f1.write (Trim(objItem.Name) & "||") J = J + 1 Next 收集内存总容量 f1.write (chr(10)) f1.write (";") f1.write (chr(10)) Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem", , 48) J = 2 For Each objItem In colItems If J = 0 Then f1.write (Trim(objItem.TotalPhysicalMemory)/1024/1024 & " GB") Else f1.write (Trim(objItem.TotalPhysicalMemory)/1024/1024 & " GB" & "||") J = J + 1 Next 收集显卡信息 f1.write (chr(10)) f1.write (";") f1.write (chr(10)) Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_VideoController", , 48) J = 4 For Each objItem In colItems If J = 0 Then f1.write (Trim(objItem.Caption) & (objItem.VideoModeDescription)) Else f1.write (Trim(objItem.Caption) & (objItem.VideoModeDescription) & "||") J = J + 1 Next 收集硬盘基本信息 f1.write (chr(10)) f1.write (";") f1.write (chr(10)) Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive", , 48) J = 5 For Each objItem In colItems If J = 0 Then f1.write (Trim(objItem.Model) & (objItem.Size)/1024/1024/1024 & " GB" & (objItem.Partitions)) Else f1.write (Trim(objItem.Model) & "--" & (objItem.Size)/1024/1024/1024 & " GB" & "--" & (objItem.Partitions) & "||") J = J + 1 Next 收集声卡信息 f1.write (chr(10)) f1.write (";") f1.write (chr(10)) Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_SoundDevice", , 48) J = 6 For Each objItem In colItems If J = 0 Then f1.write (Trim(objItem.ProductName)) Else f1.write (Trim(objItem.ProductName) & "||") J = J + 1 Next 收集网卡信息 f1.write (chr(10)) f1.write (";") f1.write (chr(10)) Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter", , 48) J = 7 For Each objItem In colItems If J = 0 Then f1.write (Trim(objItem.NetConnectionID) & (objItem.Description) & (objItem.MACAddress) & (objItem.Manufacturer)) Else f1.write (Trim(objItem.NetConnectionID) & "--" & (objItem.ProductName) & "--" & (objItem.MACAddress) & "--" &(objItem.Manufacturer) & "||") J = J + 1 Next End If f1.Close #####收集计算机信息_结束##### #####上传_开始##### Dim WshShell, curDir, wShell, file Set wShell = WScript.CreateObject("Shell.Application") Set WshShell = WScript.CreateObject("WScript.Shell") Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject") Set OutPutFile = FileSystem.OpenTextFile("upload",2,True) Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem", , 48) J = 0 For Each objItem In colItems If J = 0 Then file = "info " & Trim(objItem.Name) & ".csv" Else file = "info " & Trim(objItem.Name) & ".csv" J = J + 1 Next OutPutFile.WriteLine "open 192.168.0.254 2020" OutPutFile.WriteLine "user iplog iplog" OutPutFile.WriteLine "put " & file OutPutFile.WriteLine "bye" OutPutFile.Close Wshshell.run "ftp -n -s:upload" Set wShell = Nothing Set WshShell = Nothing Set FileSystem = Nothing Set OutPutFile = Nothing #####上传_结束##### #####自删除_开始##### wscript.sleep 2000 Set obj = CreateObject("Scripting.FileSystemObject") obj.DeleteFile("upload") obj.DeleteFile("info") obj.DeleteFile(WScript.ScriptName) WScript.Quit(0) #####自删除_结束##### 上传到ftp地址 open 192.168.0.254 2020 user iplog iplog put info MDXY.csv bye |