快速业务通道

用vbs实现获取电脑硬件信息的脚本_最新版第1/4页

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09
分代码
''转贴、引用脚本的全部或部分代码请保留版权
''**************************************

''********************************说明开始*************************************
''Input格式:起始IP-数量=用户名=密码;起始计算机名-数量=用户名=密码
''多个配置项用“;”隔开
''例:192.168.0.1-10指明IP范围为192.168.0.1~192.168.0.10,支持跨网段
''例:PC001-10指明范围为PC001~PC010(计算机名可以包含-号)
''与指定格式不相同的,默认为单IP[计算机名],也可以在"未扫描的计算机.txt"里配置
''"硬件信息.txt"是以逗号分隔各项硬件信息,你需要自己导入XLS整理、精简
''未扫描到的计算机,会把机号、用户名、密码保存到"未扫描的计算机.txt"
''再次运行脚本将只读取"未扫描的计算机.txt"里的信息(如果存在并且大小不为0)
''********************************说明结束*************************************

DimInput,InfoOutFile,LogFile''请按格式给Input赋值
''Input="pc021=administrator=cylslynetbar"
Input="PC001-109=administrator=cylslynetbar;pc110-85=administrator=LYjfnetbaradmin"
InfoOutFile="硬件信息.txt"
LogFile="未扫描的计算机.txt"

RedimarrConfig(0)
DimWshShell,FSO,intCount1,intCount2
intCount1=0
intCount2=0
SetWshShell=WScript.CreateObject("WScript.Shell")
SetFSO=WScript.Createobject("Scripting.Filesystemobject")
ReadConfig
WshShell.Popup"扫描过程会很慢,请耐心等待,完成后会给出提示",,"扫描开始"
LinkRemoteServerarrConfig
DimLenNum1,LenNum2
IfintCount1>intCount2Then
LenNum1=0
LenNum2=Len(intCount1)-Len(intCount2)
Else
LenNum1=Len(intCount2)-Len(intCount1)
LenNum2=0
EndIf
SortInfoOutFile
WshShell.Popup"扫描结果:"&_
vbCrLf&vbTab&"扫描成功:"&Space(LenNum1)&intCount1&"台"&_
vbCrLf&vbTab&"扫描失败:"&Space(LenNum2)&intCount2&"台"&_
vbCrLf&"扫描失败的电脑已做记录,再次运行脚本只扫描记录里的电脑",,"扫描完成"

FunctionReadConfig
DimobjMatches,objMatche,objLogFile,arrLog,intUBarrConfig
IfFSO.FileExists(LogFile)Then
IfFSO.GetFile(LogFile).Size=0Then
SetobjMatches=GetMatche("([^;=]+)=([^;=]+)=([^;=]+)",Input)
ForEachobjMatcheInobjMatches
GetConfigobjMatche.SubMatches(0),objMatche.SubMatches(1),objMatche.SubMatches(2)
Next
IfobjMatches.Count=0Then
Msgbox"配置信息格式不正确,请修改"
WScript.Quit
EndIf
Else
SetobjLogFile=FSO.OpenTextFile(LogFile)
DoUntilobjLogFile.AtEndOfStream
arrLog=Split(objLogFile.ReadLine,"=")
intUBarrConfig=((Ubound(arrConfig)+1)\3+1)*3-1
RedimPreservearrConfig(intUBarrConfig)
arrConfig(intUBarrConfig-2)=arrLog(0)
arrConfig(intUBarrConfig-1)=arrLog(1)
arrConfig(intUBarrConfig-0)=arrLog(2)
Loop
EndIf
Else
SetobjMatches=GetMatche("([^;=]+)=([^;=]+)=([^;=]+)",Input)
ForEachobjMatcheInobjMatches
GetConfigobjMatche.SubMatches(0),objMatche.SubMatches(1),objMatche.SubMatches(2)
Next
IfobjMatches.Count=0Then
Msgbox"配置信息格式不正确,请修改"
WScript.Quit
EndIf
EndIf
EndFunction


''*********************************************************************************
''目的:连接到远程主机的WMI命名空间
''输入:arrArray数组,包含有计算机名[IP]、用户名、密码
''调用:LinkServer过程
''如果返回SWbemLocator对象ConnectServer方法的实例,调用OutInfo过程
''如果返回Err信息(字符串类型),输出计算机名[IP]、用户名、密

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号