mdxy-dxy 通过本文主要向大家介绍了vbs脚本病毒,vbs脚本病毒生成器,vbs脚本病毒生成机,vbs脚本语言,vbs脚本等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
代码一:
'*******************************************************************************************
'Version:3.1
' 调整错误处理方法,错误信息输出到LogFile文件,可以查看扫描失败原因
' 如果出现“RPC 服务器不可用”错误,是因为远程主机没开机
' 如果出现“RPC 服务器不可用”之外的错误,可能是由于正在运行的程序造成,请你把此信息告诉我
' 重启后再次扫描就可以排除非“RPC 服务器不可用。”的错误
' 如果扫描到的硬件信息为空,应该是驱动问题(或BIOS不完善),请自行解决
'Version:3.0
' 增加输出BIOS的发行日期,和主板信息放在一起
'Version:2.9
' 修正所有GetInfo过程遇错的处理方法,避免返回的数组上限不符合输出要求导致脚本报错。
' 之所以为出现这种情况,是因为Win32类检索不到硬件或连接到Win32类失败;
' 原来判断是否出现Err,忽略了检索不到硬件的情况(连接成功无Err,Count为0)
' 检索不到硬件多数是因为驱动没装好
'Version:2.8
' 增加GetIDEProtocol过程,获取IDE控制器使用的协议,只是增加了代码,没有调用
' 计划增加检索其它存储器控制器的过程
'Version:2.7
' 检索硬盘/显卡/网卡/声卡的过程增加 DeviceID 属性(设备标识符)
' 此属性不被输出,用于脚本内部判断
'Version:2.6
' 原来输出搜索到的第一个硬盘
' 改为输出搜索到的第一个InterfaceType属性为IDE的硬盘的信息
'Version:2.5
' 增加Sort过程,排序硬件信息
'Version:2.4
' 调整输出信息的分类,同类信息尽可能的只使用一个逗号分隔,以便导入xls后在同一列
' 查询到的硬件信息如果是空或0,有可能是相关驱动不完善或未定义此信息,也可能是未安装驱动
' 因为WMI查询就代表了系统知道这些硬件的详细信息,查不到信息就是系统不知道
' 系统不知道硬件的详细信息,代表着性能可能有所缺失,建议找个好驱动安装
' 值得注意的是主板驱动
' (为了更容易理解,此版本的升级信息被编辑过)
'Version:2.3
' 取消2.2版增加输出的硬盘接口类型
' 由于STAT也归于IDE接口,这会导致误解
' PS:脚本只输出搜索到的第一个硬盘
'Version:2.2
' GetMemoryInfo过程增加MemoryType、FormFactor、TypeDetail三个属性
' 输出增加内存类型、封装类型
' 输出增加硬盘容量、接口类型
'Version:2.1
' GetOSInfo过程增加去掉Caption属性中带有的逗号“,”的代码
' 原因:在检测2003系统时,读取到的Caption属性,带有逗号“,”
' 这会影响输出,因为输出是以逗号“,”为分隔符的
'Version:2.0 B5发布版
' GetNetworkInfo过程改为使用MACAddress属性非空、
' Manufacturer属性非"Microsoft"判断网卡
'Version:2.0 Beta4
' GetNetworkInfo过程使用NetConnectionStatus属性判断网络适配器
' NetConnectionStatus属性表明连接状态(2000系统不支持此属性)
' 物理网络适配器才具有此状态(包括停用状态在内)
'Version:2.0 Beta3
' GetNetworkInfo过程增加一个判断
' 忽略读取IPAddress(0)时会产生Err类型数据的适配器(对战平台)
'Version:2.0 Beta2
' GetOSInfo过程原来使用的Name、ServicePackMajorVersion属性
' 改为使用Caption、CSDVersion属性
' 所有GetInfo过程增加错误处理代码,避免正在扫描的时候
' 脚本遇到运行时错误导致脚本退出
'Version:2.0 Beta1
' 增加扫描失败记录,再次运行脚本只读取失败记录,忽略配置信息
'Version:1.1
' GetNetworkInfo过程增加一个判断
' 忽略NetConnectionID属性(接口名称)为空的适配器
'Version:1.0
' 初始版本
Option Explicit
'**************************************
'作 者: LZ-MyST QQ:8450919
'http://hi.baidu.com/lzmyst
'http://www.clxp.net.cn
'E-Mail:lzmyst@163.com
'你可以任意编辑、引用脚本的全部或部分代码
'转贴、引用脚本的全部或部分代码请保留版权
'**************************************
'********************************说明开始*************************************
'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)
'********************************说明结束*************************************
Dim Input, InfoOutFile, LogFile '请按格式给Input赋值
'Input = "pc021=administrator=cylslynetbar"
Input = "PC001-109=administrator=cylslynetbar;pc110-85=administrator=LYjfnetbaradmin"
InfoOutFile = "硬件信息.txt"
LogFile = "未扫描的计算机.txt"
Redim arrConfig(0)
Dim WshShell, FSO, intCount1, intCount2
intCount1 = 0
intCount2 = 0
Set WshShell = WScript.CreateObject("WScript.Shell")
Set FSO = WScript.Createobject("Scripting.Filesystemobject")
ReadConfig
WshShell.Popup "扫描过程会很慢,请耐心等待,完成后会给出提示",,"扫描开始"
LinkRemoteServer arrConfig
Dim LenNum1, LenNum2
If intCount1 > intCount2 Then
LenNum1 = 0
LenNum2 = Len(intCount1) - Len(intCount2)
Else
LenNum1 = Len(intCount2) - Len(intCount1)
LenNum2 = 0
End If
Sort InfoOutFile
WshShell.Popup "扫描结果:" & _
vbCrLf & vbTab & "扫描成功:" & Space(LenNum1) & intCount1 & " 台" & _
vbCrLf & vbTab & "扫描失败:" & Space(LenNum2) & intCount2 & " 台" & _
vbCrLf & "扫描失败的电脑已做记录,再次运行脚本只扫描记录里的电脑",,"扫描完成"
Function ReadConfig
Dim objMatches, objMatche,objLogFile, arrLog, intUBarrConfig
If FSO.FileExists(LogFile) Then
If FSO.GetFile(LogFile).Size = 0 Then
Set objMatches = GetMatche("([^;=]+)=([^;=]+)=([^;=]+)", Input)
For Each objMatche In objMatches
GetConfig objMatche.SubMatches(0), objMatche.SubMatches(1), objMatche.SubMatches(2)
Next
If objMatches.Count = 0 Then
Msgbox "配置信息格式不正确,请修改"
WScript.Quit
End If
Else
Set objLogFile = FSO.OpenTextFile(LogFile)
Do Until objLogFile.AtEndOfStream
arrLog = Split(objLogFile.ReadLine,"=")
intUBarrConfig = ((Ubound(arrConfig)+1)\3+1)*3-1
Redim Preserve arrConfig(intUBarrConfig)
arrConfig(intUBarrConfig-2) = arrLog(0)
arrConfig(intUBarrConfig-1) = arrLog(1)
arrConfig(intUBarrConfig-0) = arrLog(2)
Loop
End If
Else
Set objMatches = GetMatche("([^;=]+)=([^;=]+)=([^;=]+)", Input)
For Each objMatche In objMatches
GetConfig objMatche.SubMatches(0), objMatche.SubMatches(1), objMatche.SubMatches(2)
Next
If objMatches.Count = 0 Then
Msgbox "配置信息格式不正确,请修改"
WScript.Quit
End If
End If
End Function
'*********************************************************************************
'目的:连接到远程主机的WMI命名空间
'输入:arrArray数组,包含有计算机名[IP]、用户名、密码
'调用:LinkServer过程
' 如果返回SWbemLocator对象ConnectServer方法的实例,调用OutInfo过程
' 如果返回Err信息(字符串类型),输出计算机名[IP]、用户名、密码及错误信息到LogFile文件
' OutInfo过程
' 如果返回Err信息(字符串类型)输出计算机名[IP]、用户名、密码及错误信息到LogFile文件
'传递:SWbemLocator对象ConnectServer方法的实例传递给OutInfo过程
' 计算机名[IP]、命名空间、用户名、密码传递给LinkServer过程
'*********************************************************************************
Function LinkRemoteServer(arrArray)
Dim objErrLog, E, objLinkServer, objConnection, objWbemLocator, objErr
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objErrLog = FSO.CreateTextFile(LogFile,True)
For E = 0 To Ubound(arrArray) Step 3
Set objLinkServer = LinkServer(arrConfig(E),"root\cimv2",arrConfig(E+1),arrConfig(E+2))
If Err Then
objErrLog.Writeline arrArray(E) & "=" & arrArray(E+1) & "=" & arrArray(E+2) & "=" & _
"错误编号:" & CStr(Err.Number) & _
",错误原因:" & CStr(Err.Description) & _
",错误来源:" & CStr(Err.Source) & " By LinkServer Function"
intCount2 = intCount2 + 1
Err.Clear
Else
objErr = OutInfo(objLinkServer)
If Vart

