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

所属分类: 脚本专栏 / vbs 阅读数: 269
收藏 0 赞 0 分享
之前无聊整理出来了一份这个东西,因为在单位给新入职的员工配电脑时,需要登记一遍设备,可每次总要查感觉挺麻烦,结果下面的这份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
更多精彩内容其他人还在看

运行vbs脚本报错无效字符、中文乱码的解决方法(编码问题)

今天在写一个vbs的时候,发现中文乱码,后来写好代码正常运行的代码压缩一下给了同事,发现报无效字符,经过验证后发现原来是编码的问题导致,这里就为大家分享一下
收藏 0 赞 0 分享

VBS打开当前脚本所在文件夹

有时候我们需要获取当前vbs脚本所在的文件夹,或者运行当前脚本文件夹中的文件那么就需要参考下面的代码了
收藏 0 赞 0 分享

vbs 读写注册表之系统启动项添加与删除

这篇文章主要介绍了vbs 读写注册表之系统启动项添加值,需要的朋友可以参考下
收藏 0 赞 0 分享

拖拽文件显示文件路径的vbs代码

这篇文章主要介绍了拖拽文件显示文件路径的vbs代码,需要的朋友可以参考下
收藏 0 赞 0 分享

VBS遍历Excel工作表的实现代码

这篇文章主要介绍了VBS遍历Excel工作表的实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

使用VBS浏览本地文件的3种方式,获取完整路径

这篇文章主要介绍了使用VBS浏览本地文件的3种方式,获取完整路径,需要的朋友可以参考下
收藏 0 赞 0 分享

VBS进程判断代码

这篇文章主要介绍了VBS进程判断代码,用来检测windows的某个进程是否正常运行,之前脚本之家分享过bat中判断进程的代码
收藏 0 赞 0 分享

VBS遍历文件或文件夹路径输入文件的所有绝对路径(附源码)

这篇文章主要介绍了VBS遍历文件或文件夹路径输入文件的所有绝对路径的代码,需要的朋友可以参考下
收藏 0 赞 0 分享

ActiveX部件不能创建对象:dm.dmsoft代码:800A01AD

vbs调用插件报:ActiveX部件不能创建对象,代码:800A01AD,一般是因为病毒导致dll文件丢失或者64系统问题导致,需要的朋友可以参考下
收藏 0 赞 0 分享

vbs ping实现的两种方式

这篇文章主要介绍了vbs ping实现的两种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享
查看更多