サーバーから一連のシステム情報を取得するためにvbscriptを作成しました。取得する必要があるのは、サーバーのIPアドレスです。どうやら私は「ハートビートIPアドレス」しか取得しておらず、それは私が必要としているものではありません。
私がwmiと連携して、私が想定しているプライベートアドレスであるIPアドレスを取得するためのvbscriptを使用する方法はありますか?
この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アドレスを取得しませんでした。