最近寫了不少的腳本,除了一部分內部專用的保留之外,其他的我會陸續發佈到Blog上來,希望對大家有所幫助。由於屏幕顯示的原因,腳本的換行可能會出現錯位的情況,不方便閱讀,請將該腳本複製到記事本中查看。
功能: 檢查磁盤溫度、空間利用情況,以及近一週內的所有錯誤、警告日誌。
- '***********************************************************************
- ' Script:IT Weekly Checks VBScript
- ' Version: 1.0
- '***********************************************************************
- On Error Resume Next
- Set WShell = CreateObject("wscript.shell")
- Set objNetwork = CreateObject("wscript.network")
- Set objFSO = CreateObject("scripting.FileSystemObject")
- strComputer = objNetwork.ComputerName
- If Not objFSO.FolderExists("D:\ITWeeklyChecks") Then
- objFSO.CreateFolder("D:\ITWeeklyChecks")
- End If
- strWriteFile = "D:\ITWeeklyChecks\"& FormatDateTime(Now(),2) & "_" & strComputer & "_WeeklyChecks.txt"
- Set textWriteFile = objFSO.CreateTextFile(strWriteFile,true,false)
- textWriteFile.WriteLine(("=========================== " & strComputer & " Disk Drive Check Information ====================================") & vbCrLf & vbCrLf &_
- ("Date Time : " & Now()) & vbCrLf)
- 'Check HardDisk Temp
- Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\WMI")
- Set colDriverSMART = objWMIService.execquery ("Select * from MSStorageDriver_ATAPISmartData")
- For Each objDriverSMART in colDriverSMART
- arrVendorSpecific = objDriverSMART.VendorSpecific
- For lngIndex = 0 To 255
- If arrVendorSpecific(lngIndex) = 194 Then
- HDDTempIndex = lngIndex + 5
- strHDDTemp = arrVendorSpecific(HDDTempIndex)
- End if
- Next
- strHDDTempMessage = "Disk : " & objDriverSMART.InstanceName & vbcrlf &_
- "Current Temperature : " & strHDDTemp & "℃" & vbcrlf
- textWriteFile.WriteLine(strHDDTempMessage)
- Next
- 'Check Disk Drive
- For Each objDriver In objFSO.Drives
- If objDriver.DriveType =2 Then
- strDriverMessage = "Letter & Volume : " & objDriver.DriveLetter & " " & objDriver.VolumeName & vbCrLf &_
- "File System : " & objdriver.FileSystem & vbCrLf &_
- "Total Space : " & Round((objDriver.TotalSize / 1073741824),2) & "G " & vbCrLf &_
- "Free Space : " & Round((objDriver.AvailableSpace/1073741824),2) & "G " & formatpercent(objDriver.AvailableSpace / objDriver.TotalSize) & vbCrLf
- textWriteFile.WriteLine(strDriverMessage)
- End If
- Next
- 'Check Event log
- Set objWMIService = GetObject("winmgmts:"& "{(Security)}\\" & strComputer & "\root\cimv2")
- Set colLoggedEvents = objWMIService.execquery ("Select * from win32_NTLogEvent Where EventType = 1 or EventType = 2 or EventType = 16")
- textWriteFile.WriteLine("=========================== " & strComputer & " Event Log Check Information ====================================") & vbCrLf
- For Each objEvent In colloggedEvents
- TodayDate = FormatDateTime(Now(),2)
- 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)
- If DateDiff("d",EventDateTime,FormatDateTime(TodayDate,2))<=7 And DateDiff("d",EventDateTime,FormatDateTime(TodayDate,2))>=0 Then
- strEventMessage = "LogFile : " & objEvent.logfile & vbCrLf &_
- "Data : " & EventDateTime & vbCrLf &_
- "Type : " & objEvent.Type & vbCrLf &_
- "EventID : " & objEvent.EventCode & vbCrLf &_
- "Source : " & objEvent.SourceName & vbCrLf &_
- "User : " & objEvent.User & vbCrLf &_
- "Message : " & objEvent.Message & vbCrLf
- textWriteFile.WriteLine(strEventMessage)
- End if
- Next
- 'The end