Winsを設定するスクリプト

職場の環境で,WINSサーバのアドレスが変更になりました。一人ひとりにやってもらわなければなりませんが,説明が大変ですしちゃんとやってくれるかどうか不安です。そこでWINSの設定変更をするスクリプトを作成しました。

strComputer = "."
sPrimaryWins = "192.168.1.10"
sSecondaryWins = ""
 'アダプタ情報を得る
Set objTargetAdapter = GetAdapter
If not objTargetAdapter is nothing Then
    'アダプタにWinsをセットする
    objTargetAdapter.SetWINSServer sPrimaryWins , sSecondaryWins
    '設定情報を再取得する
    Set objTargetAdapter = GetAdapter
    sMsg = "WINSサーバーの設定を完了しました" & vbcrlf & _
        "    Primary WINS server:   " & objTargetAdapter.WINSPrimaryServer & vbcrlf & _
        "    Secondary WINS server: " & objTargetAdapter.WINSSecondaryServer
Else
    sMsg = "デフォルトゲートウェイが設定されているアダプタが見つからなかったため" & vbcrlf & _
        "Winsの設定ができませんでした"
End If
WScript.Echo sMsg

Function GetAdapter()
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colAdapters = objWMIService.ExecQuery _
        ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
    Flag = False
    For Each objAdapter in colAdapters
        If Not IsNull(objAdapter.DefaultIPGateway) Then
            Set GetAdapter = objAdapter
            Flag = True
        End If
    Next
    if Not Flag Then
        GetAdapter = nothing
    End if
End Function

ネットワーク・アダプタが複数ある場合があるので,デフォルトゲートウェイが設定されているアダプタにWINSを設定することにしました。そこで,対象となるアダプタを得るのがGetAdapter関数です。このスクリプトではWINSを設定後,再度Win32_NetworkAdapterConfigurationオブジェクトを取得し直して,設定後のWINS情報を表示させています。

 

トラックバック


URL から "-MoIyadayo" を削除してトラックバックを送信してください。
トラックバックは承認後に表示されます。