Option Explicit
Const IP_ADDRESS = "xxx.xxx.xxx.xxx" ' 接続先IP Address
Const USER_NAME = "hoge1\hoge2" ' 接続先ComputerへのLogon Account
Const PASS_WORD = "hogehoge3" ' 接続先ComputerへのLogon Password
' 設定するDNS Server IP Address (";"区切り)
Const DNS_IP_ARRAY = "xxx.xxx.xxx.xxx;xxx.xxx.xxx.xxx"
Call S_SetDNSAddress(IP_ADDRESS, USER_NAME, PASS_WORD, _
Split(DNS_IP_ARRAY, ";"))
'********************************************************************
'【S_SetDNSAddress】
' Client の DNS を設定
'
'引数 strTargetIP As String ' 設定するClient IP Address
' strUserName As String ' 設定するClientへのLogon Account
' strPassword As String ' 設定するClientへのLogon Password
' strDNS_IP() As String ' DNS Server IP Address (配列)
'********************************************************************
Sub S_SetDNSAddress(strTargetIP, strUserName, _
strPassword, strDNS_IP())
Dim objWMILocator 'As WbemScripting.SWbemLocator
Dim objWMIServices 'As WbemScripting.SWbemServices
Dim colItems 'As WbemScripting.SWbemObjectSet
Dim objItem 'As WbemScripting.SWbemObject
Dim lngReturn 'As Long
'On Error Resume Next
' 対象Serverへ接続
Set objWMILocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIServices = objWMILocator.ConnectServer( _
strTargetIP, "\root\cimv2", strUserName, strPassword)
objWMIServices.Security_.ImpersonationLevel = 3
If Err.Number Then
Call S_DisprayMessage(strTargetIP, "失敗", _
"接続時にErrorが発生しました。" & Err.Description)
End If
' "Win32_NetworkAdapterConfiguration"を検索
Set colItems = objWMIServices.ExecQuery( _
"SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
For Each objItem In colItems
With objItem
' Adapter に対象のIP Addressが含まれている場合
If Not IsNull(.IPAddress) Then
If UBound(Filter(.IPAddress, strTargetIP)) > -1 Then
' AdapterにDNS Server Address を設定
lngReturn = .SetDNSServerSearchOrder(strDNS_IP)
If lngReturn = 0 Then
Call S_DisprayMessage(strTargetIP, "成功", _
"正常に登録されました。")
Else
Call S_DisprayMessage(strTargetIP, "失敗", _
"DNS設定時にErrorが発生しました。" & lngReturn)
End If
Exit For
End If
End If
End With
Next
Set objItem = Nothing
Set colItems = Nothing
Set objWMIServices = Nothing
Set objWMILocator = Nothing
End Sub
Sub S_DisprayMessage(strIP, strFlg, strDescript)
WScript.Echo CStr(Now) & "," & strFlg & "," & strIP & "," & strDescript
End Sub
|