我创建了一个 vbscript 从服务器获取一堆系统信息,我需要获取的一件事是服务器的 IP 地址。显然我只得到了“心跳IP地址”,这不是我需要的。
有没有一种方法可以让我使用 vbscript 与 wmi 绑定并获取 ip 地址,我假设是私有的。
我试过这个 WMI 类 http://msdn.microsoft.com/en-us/library/windows/desktop/aa371441(v=vs.85).aspx
这是我所拥有的
Option Explicit
'On Error Resume Next
Dim strIPAddress,objItem,colItems,objWMISrvc,strComputer,objAddr
strComputer = "."
Set objWMISrvc = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
getIPAddress
Sub getIPAddress()
'Check if system is a cluster'
strIPAddress = ""
Set colItems = objWMISrvc.ExecQuery("SELECT * FROM MSCluster_Network")
If Err.Number <> 0 Then
For Each objItem in colItems
'strIPAddress = "IP Address: " & objItem.
For i = 0 to UBound(objItem.IPv4Addresses)
strIPAddress = "IP Address (" & i & "): " & objItem.IPv4Addresses(i)
Next
Next
End If
'############################################################
' These are all commented because this is how I WAS getting
' the ip address but it only returned the heartbeat.
' I will still be using this if I can somehow tell if a server is a cluster or not.
'If strIPAddress = "" Then
'' Dim i
'' Set colItems = objWMISrvc.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration")
'For Each objItem in colItems
'' If Not IsNull(objItem.IPAddress) Then
'' strIPAddress = objItem.IPAddress(0)
'' 'For i = 0 to UBound(objItem.IPAddress)
'' ' ' strIPAddress = strIPAddress & " | " & objItem.IPAddress(i)
'' Next
'' End If
'Next
'End If
WScript.Echo strIPAddress
End Sub
当我的客户端在他们的集群服务器上运行它时,它提供了一个空的 msgbox,因此它没有提取 IP 地址。