当前位置:

Windows主机巡检vbs脚本

访客 2024-04-24 1371 0

’ Windows主机巡检脚本

’ 获取主机名称

Set objNetwork = CreateObject(“WScript.Network”)

strComputer = objNetwork.ComputerName

’ 获取磁盘信息

Set objWMIService = GetObject(“winmgmts:\” & strComputer & “\root\cimv2”)

Set colDisks = objWMIService.ExecQuery(“Select * from Win32_LogicalDisk”)

’ 获取CPU信息

Set colProcessors = objWMIService.ExecQuery(“Select * from Win32_Processor”)

’ 获取内存信息

Set colMemory = objWMIService.ExecQuery(“Select * from Win32_PhysicalMemory”)

’ 获取网络信息

Set colNetworkAdapters = objWMIService.ExecQuery(“Select * from Win32_NetworkAdapter”)

’ 创建文件系统对象

Set objFSO = CreateObject(“Scripting.FileSystemObject”)

’ 检查文件是否存在,如果存在则删除

strFilePath = “C:\bomc\logs\check.txt”

If objFSO.FileExists(strFilePath) Then

objFSO.DeleteFile strFilePath

End If

’ 创建文件

Set objFile = objFSO.CreateTextFile(strFilePath)

’ 写入主机信息到文件

objFile.WriteLine "主机名称: " & strComputer & vbCrLf

Set objWMIService = GetObject(“winmgmts:\.\root\cimv2”)

Set colItems = objWMIService.ExecQuery(“Select * from Win32_NetworkAdapterConfiguration”)

For Each objItem In colItems

If Not IsNull(objItem.IPAddress) ThenFor Each ipAddress In objItem.IPAddressobjFile.WriteLine "IP Address: " & ipAddressNextEnd If

Next

Set objWMIService = GetObject(“winmgmts:\” & strComputer & “\root\cimv2”)

Set colItems = objWMIService.ExecQuery(“Select * from Win32_PerfFormattedData_PerfOS_Processor”)

totalUsage = 0

For Each objItem in colItems

totalUsage = totalUsage + objItem.PercentProcessorTime

Next

objFile.WriteLine "CPU使用率: " & totalUsage & “%”

’ 获取内存使用率的VBScript示例

Set objWMIService = GetObject(“winmgmts:\.\root\cimv2”)

Set colItems = objWMIService.ExecQuery(“Select * from Win32_PerfFormattedData_PerfOS_Memory”)

For Each objItem in colItems

memoryUsage = objItem.PercentCommittedBytesInUse

Next

objFile.WriteLine “内存使用率:” & memoryUsage & “%”

’ 获取磁盘

Set objWMIService = GetObject(“winmgmts:\.\root\cimv2”)

Set colItems = objWMIService.ExecQuery(“Select * from Win32_PerfFormattedData_PerfDisk_LogicalDisk”)

For Each objItem In colItems

diskName = objItem.NamediskUsage = objItem.PercentFreeSpaceobjFile.WriteLine "磁盘 " & diskName & " 使用率: " & 100 - diskUsage & "%"

Next

’ 检查某个进程是否在运行

strProcessName = “fileserver.exe”

Set colProcesses = GetObject(“winmgmts:\.\root\cimv2”).ExecQuery(“Select * from Win32_Process Where Name = '” & strProcessName & “’”)

If colProcesses.Count > 0 Then

objFile.WriteLine  "进程状态: "  & " 正在运行"

Else

objFile.WriteLine " 进程状态: "  & " 未找到"

End If

’ 检查端口 23000 的VBScript示例

Const PORT_NUMBER = 28000

Set objShell = CreateObject(“WScript.Shell”)

Set objExec = objShell.Exec(“netstat -an”)

bPortFound = False

Do While Not objExec.StdOut.AtEndOfStream

strLine = objExec.StdOut.ReadLineIf InStr(strLine, ":" & PORT_NUMBER) > 0 ThenbPortFound = TrueExit DoEnd If

Loop

If bPortFound Then

objFile.WriteLine "端口状态: "  & " 正常"

Else

objFile.WriteLine "端口状态: "  & " 异常"

End If

’ 巡检URL

strURL = “http://127.0.0.1/” ’ 将URL替换为实际的URL

Set objHTTP = CreateObject(“MSXML2.ServerXMLHTTP”)

objHTTP.open “GET”, strURL, False

objHTTP.send “”

’ 检查HTTP状态码

If objHTTP.Status = 200 Or objHTTP.Status = 304 Then

objFile.WriteLine "URL巡检结果: "  & " 正常"

Else

objFile.WriteLine "URL巡检结果: "  & " 异常, HTTP状态码 " & objHTTP.Status

End If

’ 关闭文件

objFile.Close

发表评论

  • 评论列表
还没有人评论,快来抢沙发吧~