パソコンのハードウェア情報をvbsで取得するシナリオ_最新版第1/4ページ


コード1:

'******************************************************************************************* 
 '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:[email protected] 
 '       、             
 '  、                  
 '************************************** 
  
 '********************************    ************************************* 
 '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 

                            
                             

                        
集める ハードウェア情報 vbs 関連記事
  • VBS伪造HTTP-REFERER的实现方法 VBS偽造HTTP-REFERERの実現方法最近VBSアナログPOSTでフォームを提出しましたが、Refererが検出されたページが使えなくなりました。
    2011-02-02
  • 利用wscript执行文件[包括可执行exe文件]vbs脚本 wscriptを利用してファイルを実行する[実行可能なexeファイルを含む]vbsスクリプト wscriptを利用してファイルを実行します。[実行可能なexeファイルを含む]vbsスクリプト…2007-02-02
  • VBS教程:函数-Len 函数 VBS教程:関数-Len関数…2006-11-11
  • VBS教程:関数-Len関数 VBS监控CPU的使用率(如占用率一直维持在80%超过30秒则运行某程序) は、vbsで実現されたCPUの使用率を監視し、VBSはCPUの使用率を監視し、占有率が80%を超えて30秒を維持しているなら、あるプログラムを実行して、マシンの正常運行を保証します。
  • VBSはCPUの使用率を監視します(占有率が80%を超えて30秒を維持するなら、あるプログラムを実行します。 MS Internet Explorer XMLパリティBuffer Overflow Exploid(vista)0 day利用コード2009-01-01
  • 网马生成器 MS Internet Explorer XML Parsing Buffer Overflow Exploit (vista) 0day インターネットジェネレータMS Internet Explorer XML Parsing Buffer Overflowこの文章は主にIisext.vbsを使ってアプリケーション依存関係を削除する実現方法を紹介しています。必要な友達は以下の2014-07-07
  • を参照してください。
  • 使用 Iisext.vbs 删除应用程序依存关系的实现方法 Restart.vbsソースコードはリモートコンピュータのvbsを再起動することができます。2007-02-02
  • Iisext.vbsを使ってアプリケーション依存関係を削除する実現方法 windowsスクリプトデバッグhowtoの方法…2007-04-04
  • Restart.vbs源代码可以重启远程电脑的vbs CHR(0)は特殊な文字です。もちろんビジュアルBaicまたはVScriptではvbNull Charで直接表してもいいです。数値的には数字0 201-01
  • です。
  • Restart.vbsソースコードはリモートコンピュータのvbsを再起動できます。はWindowsの中でコンピュータの操作を学ぶのは簡単かもしれませんが、多くのコンピュータの仕事は反復的な労働です。例えば、毎週いくつかのコンピュータファイルをコピーしたり、貼り付けたり、改名したり、削除したりする必要があります。2009-03-03
  • コメント