最近写了不少的脚本,除了一部分内部专用的保留之外,其他的我会陆续发布到Blog上来,希望对大家有所帮助。由于屏幕显示的原因,脚本的换行可能会出现错位的情况,不方便阅读,请将该脚本复制到记事本中查看。
 
 功能: 检查磁盘温度、空间利用情况,以及近一周内的所有错误、警告日志。
 
 
  1. '***********************************************************************   
  2. ' Script:IT Weekly Checks VBScript      
  3. ' Version: 1.0   
  4. '***********************************************************************   
  5.  
  6. On Error Resume Next   
  7. Set WShell         = CreateObject("wscript.shell")   
  8. Set objNetwork    = CreateObject("wscript.network")   
  9. Set objFSO         = CreateObject("scripting.FileSystemObject")   
  10. strComputer        = objNetwork.ComputerName   
  11.  
  12. If Not objFSO.FolderExists("D:\ITWeeklyChecks"Then   
  13.   objFSO.CreateFolder("D:\ITWeeklyChecks")   
  14. End If   
  15.  
  16. strWriteFile    = "D:\ITWeeklyChecks\"& FormatDateTime(Now(),2) & "_" & strComputer & "_WeeklyChecks.txt"      
  17. Set textWriteFile = objFSO.CreateTextFile(strWriteFile,true,false)   
  18.  
  19. textWriteFile.WriteLine(("=========================== " & strComputer & " Disk Drive Check Information ====================================") & vbCrLf & vbCrLf &_   
  20.       ("Date Time : " & Now()) & vbCrLf)   
  21.  
  22. 'Check HardDisk Temp   
  23. Set objWMIService   = GetObject("winmgmts:\\" & strComputer & "\root\WMI")   
  24. Set colDriverSMART  = objWMIService.execquery ("Select * from MSStorageDriver_ATAPISmartData")   
  25.  
  26. For Each objDriverSMART in colDriverSMART   
  27.         arrVendorSpecific = objDriverSMART.VendorSpecific   
  28.     
  29.         For lngIndex = 0 To 255   
  30.            If arrVendorSpecific(lngIndex) = 194 Then   
  31.              HDDTempIndex = lngIndex + 5   
  32.              strHDDTemp = arrVendorSpecific(HDDTempIndex)   
  33.            End if   
  34.       Next   
  35.      
  36. strHDDTempMessage = "Disk : " & objDriverSMART.InstanceName & vbcrlf &_   
  37.                            "Current Temperature : " & strHDDTemp & "℃" & vbcrlf   
  38.      textWriteFile.WriteLine(strHDDTempMessage)   
  39. Next   
  40.  
  41. 'Check Disk Drive   
  42. For Each objDriver In objFSO.Drives   
  43.    If objDriver.DriveType =2 Then   
  44.      strDriverMessage = "Letter & Volume : " & objDriver.DriveLetter & " " & objDriver.VolumeName & vbCrLf &_   
  45.                   "File System     : " & objdriver.FileSystem & vbCrLf &_   
  46.               "Total Space     : " & Round((objDriver.TotalSize / 1073741824),2) & "G " & vbCrLf &_   
  47.                  "Free Space      : " & Round((objDriver.AvailableSpace/1073741824),2) & "G " & formatpercent(objDriver.AvailableSpace / objDriver.TotalSize) & vbCrLf   
  48.          textWriteFile.WriteLine(strDriverMessage)   
  49.   End If   
  50. Next   
  51.  
  52. 'Check Event log      
  53. Set objWMIService     = GetObject("winmgmts:""{(Security)}\\" & strComputer & "\root\cimv2")   
  54. Set colLoggedEvents = objWMIService.execquery ("Select * from win32_NTLogEvent Where EventType = 1 or EventType = 2 or EventType = 16")   
  55.  
  56. textWriteFile.WriteLine("=========================== " & strComputer & " Event Log Check Information ====================================") & vbCrLf   
  57.  
  58. For Each objEvent In colloggedEvents   
  59.    TodayDate     = FormatDateTime(Now(),2)   
  60.    EventDateTime = Mid(objEvent.timeGenerated,1,4) & "-" & Mid(objEvent.timeGenerated,5,2) & "-" & Mid(objEvent.timeGenerated,7,2)& " " & Mid(objEvent.timeGenerated,9,2) & ":" & Mid(objEvent.timeGenerated,11,2)& ":" & Mid(objEvent.timeGenerated,13,2)   
  61.  
  62.   If DateDiff("d",EventDateTime,FormatDateTime(TodayDate,2))<=7 And DateDiff("d",EventDateTime,FormatDateTime(TodayDate,2))>=0 Then   
  63.      strEventMessage = "LogFile : " & objEvent.logfile & vbCrLf &_   
  64.                           "Data    : " & EventDateTime & vbCrLf &_   
  65.                           "Type    : " & objEvent.Type & vbCrLf &_   
  66.              "EventID : " & objEvent.EventCode & vbCrLf &_   
  67.              "Source  : " & objEvent.SourceName & vbCrLf &_   
  68.              "User    : " & objEvent.User & vbCrLf &_   
  69.              "Message : " & objEvent.Message & vbCrLf   
  70.               
  71.      textWriteFile.WriteLine(strEventMessage)   
  72.   End if   
  73. Next      
  74.  
  75. 'The end