亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > VBScript > 正文

用vbs實現獲取電腦硬件信息的腳本_最新版第1/4頁

2020-07-26 11:58:43
字體:
來源:轉載
供稿:網友

代碼一:

'*******************************************************************************************  'Version:3.1  '   調整錯誤處理方法,錯誤信息輸出到LogFile文件,可以查看掃描失敗原因  '     如果出現“RPC 服務器不可用”錯誤,是因為遠程主機沒開機  '     如果出現“RPC 服務器不可用”之外的錯誤,可能是由于正在運行的程序造成,請你把此信息告訴我  '     重啟后再次掃描就可以排除非“RPC 服務器不可用?!钡腻e誤  '     如果掃描到的硬件信息為空,應該是驅動問題(或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 Vartype(objErr) = 8 Then     objErrLog.Writeline arrArray(E) & "=" & arrArray(E+1) & "=" & arrArray(E+2) & "=" & objErr     intCount2 = intCount2 + 1    End If   End If  Next End Function '****************************************************** '目的:輸出硬件信息 '輸入:SWbemLocator對象ConnectServer方法的實例 '調用:獲取硬件信息的GetXXXInfo過程 '傳遞:SWbemLocator對象ConnectServer方法的實例 '返回:所有調用的GetInfo過程都未返回Err對象,則返回True '   某個GetInfo過程返回Err對象,則返回False '****************************************************** Function OutInfo(objRemote)  Dim OutFile, arrInfo, strOutInfo, Tmp, A  If FSO.FileExists(InfoOutFile) Then   Set OutFile = FSO.OpenTextFile(InfoOutFile,8)  Else   Set OutFile = FSO.CreateTextFile(InfoOutFile)   OutFile.Writeline "計算機名,系統(初裝日期),主板型號(廠商)(發行日期),CPU型號(接口類型),外頻,L2容量(速度)," & _            "內存總量,內存速度(位置),內存類型(封裝類型),硬盤型號(容量),顯卡型號(顯存),網卡,IP/MAC"  End If  '系統  arrInfo = GetOSInfo(objRemote)  If Vartype(arrInfo) = 8 Then   OutInfo = arrInfo   Exit Function  End If  strOutInfo = arrInfo(0) & "," & arrInfo(1) & "(" & arrInfo(2) & "),"  '主板  arrInfo = GetBoardInfo(objRemote)  If Vartype(arrInfo) = 8 Then   OutInfo = arrInfo   Exit Function  End If  strOutInfo = strOutInfo & arrInfo(0) & "(" & arrInfo(1) & ")"  'BIOS  arrInfo = GetBIOSInfo(objRemote)  If Vartype(arrInfo) = 8 Then   OutInfo = arrInfo   Exit Function  End If  strOutInfo = strOutInfo & "(" & arrInfo(2) & "),"  'CPU  arrInfo = GetCPUInfo(objRemote)  If Vartype(arrInfo) = 8 Then   OutInfo = arrInfo   Exit Function  End If  strOutInfo = strOutInfo & arrInfo(1) & "(" & arrInfo(8) & ")," & arrInfo(4) & "," & _         arrInfo(6) & "(" & arrInfo(7) & "),"  '內存  arrInfo = GetMemoryInfo(objRemote)  If Vartype(arrInfo) = 8 Then   OutInfo = arrInfo   Exit Function  End If  Tmp = 0  For A = 1 To Ubound(arrInfo) Step 6   Tmp = Tmp + Cint(arrInfo(A))  Next  strOutInfo = strOutInfo & arrInfo(0) & "條,共" & Tmp & "M,"  Tmp = ""  For A = 2 To Ubound(arrInfo) Step 6   If A = Ubound(arrInfo) - 4 Then    Tmp = Tmp & arrInfo(A) & "(" & arrInfo(A+1) & "),"   Else    Tmp = Tmp & arrInfo(A) & "(" & arrInfo(A+1) & ") "   End If  Next  strOutInfo = strOutInfo & Tmp  Tmp = ""  For A = 4 To Ubound(arrInfo) Step 6   If A = Ubound(arrInfo) - 2 Then    Tmp = Tmp & arrInfo(A) & "(" & arrInfo(A+1) & "),"   Else    Tmp = Tmp & arrInfo(A) & "(" & arrInfo(A+1) & ") "   End If  Next  strOutInfo = strOutInfo & Tmp  '硬盤  Tmp = ""  arrInfo = GetDiskInfo(objRemote)  If Vartype(arrInfo) = 8 Then   OutInfo = arrInfo   Exit Function  End If  For A = 1 To Ubound(arrInfo) Step 5   If arrInfo(A+1) = "IDE" Then    Tmp = arrInfo(A) & "(" & arrInfo(A+2) & "G),"    Exit For   End If  Next  If Tmp = "" Then   strOutInfo = strOutInfo & "硬盤型號未檢索到,"  Else   strOutInfo = strOutInfo & Tmp  End If  '顯卡  arrInfo = GetVideoInfo(objRemote)  If Vartype(arrInfo) = 8 Then   OutInfo = arrInfo   Exit Function  End If  strOutInfo = strOutInfo & arrInfo(0) & "(" & arrInfo(1) & "M),"  '網卡  arrInfo = GetNetworkInfo(objRemote)  If Vartype(arrInfo) = 8 Then   OutInfo = arrInfo   Exit Function  End If  strOutInfo = strOutInfo & arrInfo(1) & "," & arrInfo(2) & Space(17-Len(arrInfo(2))) & arrInfo(3)  '輸出  OutFile.Writeline strOutInfo  intCount1 = intCount1 + 1  OutInfo = True End Function '********************************************************* '目的:連接到遠程主機的WMI命名空間 '輸入:strComputer:遠程主機的計算機名或IP '   strNamespace:命令空間 '   strUserName:用戶名 '   strPassword:密碼 '返回:連接成功,返回SWbemLocator類連接遠程主機后的對象的實例 '   連接失敗,返回錯誤對象 '********************************************************* Function LinkServer(strComputer,strNamespace,strUserName,strPassword)  Dim objWbemLocator  Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")  Dim objConnection  On Error Resume Next  Set objConnection = objwbemLocator.ConnectServer _            (strComputer, strNamespace, strUserName, strPassword)  If Err Then    Set LinkServer = Err    Exit Function  End If  On Error Goto 0  objConnection.Security_.ImpersonationLevel = 3  Set LinkServer = objConnection End Function '****************************************** '目的:正則表達式 '輸入:strPatrn:正則表達式模式 '   strString:要執行正則表達式的字符串 '返回:Match對象 '****************************************** Function GetMatche(strPatrn, strString)  Dim RegEx  Set RegEx = New Regexp  RegEx.Global = True  RegEx.IgnoreCase =True  RegEx.Pattern = strPatrn  Set GetMatche = RegEx.Execute(strString) End Function '*************************************** '目的:2、8、16進制轉10進制 '輸入:strString:2、8、16進制數 '   intNum:進制(2|8|16) '返回:10進制數 '*************************************** Function ChangeToDecimal(strString, intNum)  ChangeToDecimal = 0  If Isnull(strString) Then ChangeToDecimal = 0 : Exit Function  Dim A, M  For A = 1 To Len(strString)   M = LCase(Mid(strString, A, 1))   Select Case M    Case "a" :M = 10    Case "b" :M = 11    Case "c" :M = 12    Case "d" :M = 13    Case "e" :M = 14    Case "f" :M = 15   End Select   ChangeToDecimal = ChangeToDecimal + M * intNum^(Len(strString)-A)  Next End Function                         
1234下一頁閱讀全文
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久亚洲精品小早川怜子66| 欧美高清性猛交| 久久精品国产久精国产一老狼| 欧美极品少妇与黑人| 亚洲精品国产精品自产a区红杏吧| 久久久久久久久中文字幕| 国产成人精品日本亚洲专区61| 欧美日韩另类在线| 欧美日韩另类在线| 国产视频精品va久久久久久| 午夜精品视频网站| 久久91精品国产91久久久| 国产精品直播网红| 68精品国产免费久久久久久婷婷| 亚洲一区二区三区sesese| 国产精品男人爽免费视频1| 亚洲国产成人久久综合| 日韩欧美极品在线观看| 久久视频在线观看免费| 亚洲已满18点击进入在线看片| 久久精品男人天堂| 色偷偷偷亚洲综合网另类| 2019国产精品自在线拍国产不卡| 日av在线播放中文不卡| 亚洲高清免费观看高清完整版| 国产精品青草久久久久福利99| 在线电影av不卡网址| 97视频在线观看免费| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产91精品久| www.久久久久久.com| 一区二区亚洲精品国产| 国产精品久久久久久搜索| 欧美中文字幕第一页| 久久天天躁狠狠躁夜夜av| 日韩美女毛茸茸| 亚洲欧美日韩中文在线制服| 国产精品一区二区三区毛片淫片| 久久久久日韩精品久久久男男| 国产精品女人久久久久久| 亚洲天堂男人的天堂| 欧美在线视频在线播放完整版免费观看| 日韩国产欧美精品一区二区三区| 国产精品成熟老女人| 91精品视频免费观看| 91精品国产综合久久久久久久久| xx视频.9999.com| 91精品久久久久久久久久另类| 91在线观看免费高清完整版在线观看| 欧美激情性做爰免费视频| 91精品在线看| 日韩精品日韩在线观看| 久久高清视频免费| 亚洲欧美国产精品va在线观看| 国产精品福利网站| 欧美精品videossex性护士| 欧美影院在线播放| 社区色欧美激情 | 精品一区二区电影| 中文字幕在线看视频国产欧美| 国产精品网站大全| 91九色视频在线| 91精品视频一区| 黑人极品videos精品欧美裸| 日韩中文字幕第一页| 亚洲福利小视频| 91免费福利视频| 国产中文字幕日韩| 国产成人精品一区二区| 在线播放国产一区中文字幕剧情欧美| 亚洲欧美日韩天堂一区二区| 精品日韩美女的视频高清| 国产专区精品视频| 欧美另类在线观看| 国产精品最新在线观看| 欧美国产日韩在线| 欧美日韩中文字幕日韩欧美| 成人黄色大片在线免费观看| 国产一区私人高清影院| 国产亚洲a∨片在线观看| 国产成人综合一区二区三区| 亚洲va国产va天堂va久久| 欧美精品久久久久久久免费观看| 欧洲亚洲免费在线| 久久久久久久久久久91| 成人免费网视频| 国产精品久久久久久久一区探花| 欧美主播福利视频| 精品在线观看国产| 欧美片一区二区三区| 欧美日韩国产精品一区二区三区四区| 日韩av综合网站| 操91在线视频| 亚洲国产精品va| 亚洲天天在线日亚洲洲精| 久久久久久噜噜噜久久久精品| 久久久精品中文字幕| 国产精品户外野外| 成人h视频在线| 亚洲欧洲日产国码av系列天堂| 亚洲人免费视频| 伦伦影院午夜日韩欧美限制| 日韩欧美精品网站| 精品成人国产在线观看男人呻吟| 国产精品都在这里| 久久91超碰青草是什么| 欧美精品电影在线| 欧美猛交免费看| 欧美成人精品在线观看| 成人激情在线播放| 在线观看日韩视频| 久久综合88中文色鬼| 91免费在线视频网站| 在线精品视频视频中文字幕| 上原亚衣av一区二区三区| 91精品国产综合久久久久久久久| 国产精品无av码在线观看| 91老司机精品视频| 一区二区三区视频免费在线观看| 日本一区二区在线免费播放| 欧美日韩中文字幕综合视频| 国产91在线播放精品91| 欧美激情视频网| 狠狠躁夜夜躁人人爽天天天天97| 国产不卡一区二区在线播放| 日韩三级成人av网| 亚洲国产婷婷香蕉久久久久久| 久久久在线视频| 亚洲国产第一页| 日韩免费av一区二区| 中国china体内裑精亚洲片| 欧美日韩国产丝袜另类| 久久久日本电影| 91久久精品久久国产性色也91| 欧美午夜精品在线| 午夜精品福利视频| 欧美极品少妇xxxxⅹ裸体艺术| 亚洲激情国产精品| 国产精品久久久久久久美男| 欧美成人激情在线| 色综合天天综合网国产成人网| 激情懂色av一区av二区av| 欧美另类老女人| 日韩经典中文字幕| 亚洲精品999| 欧美亚洲在线视频| 亚洲色图50p| 精品久久久久久久大神国产| 亚洲美女视频网站| 久久综合色影院| 久久中文字幕国产| 日韩免费观看高清| 日韩美女视频在线观看| 日韩精品中文字幕有码专区| 国产69久久精品成人| 日韩欧美第一页| 美女性感视频久久久| www.xxxx精品| 91精品国产高清久久久久久| 51精品在线观看| 久久黄色av网站| 亚洲一区二区免费在线| 91精品国产乱码久久久久久蜜臀| 国产噜噜噜噜噜久久久久久久久|