首页 > 编程 > VBScript > 正文

用VBScript收集系统信息并上传到ftp空间

2020-06-26 18:24:43
字体:
来源:转载
供稿:网友
这个脚本的功能是运行后自动将查询到的计算机相关信息记录到一个文档中,然后在经过FTP将生成的文件上传至服务器保存,最后在清除运行脚本是生成的文件并删除自身。
 
之前无聊整理出来了一份这个东西,因为在单位给新入职的员工配电脑时,需要登记一遍设备,可每次总要查感觉挺麻烦,结果下面的这份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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表