• 締切済み

VBSで優先DNS、代替DNSを設定する方法

VBSで優先DNS、代替DNSを設定する方法がわからなくて困ってます。 現在VBSでクライアントPCのDNS情報を変更するものを作成しています。 ですが何度書いても上手くいかなくて困っています。 対象がWindows7のためnetshコマンドをvbsに記述する形式では上手くいかなくて netsh以外の書き方で設定変更のvbsの書き方知っている方いました教えていただけませんでしょうか。よろしくお願い致します。

みんなの回答

  • kteds
  • ベストアンサー率42% (1882/4440)
回答No.1

> netshコマンドをvbsに記述する形式では上手くいかなくて・・・ などと書いていますが、コマンドを実行するとうまくいっているのですか? > 何度書いても上手くいかなくて困っています。 実際に書いたsourceを提示してみてください。 > netsh以外の書き方で・・・ netshが最適、簡単だと思います。 例えば下記をスクリプトにすればいいでしょう。 netsh interface ip delete dns name="ローカル エリア接続" all この段階では"ローカル エリア接続"の設定は「DNSサーバのアドレスを自動的に取得する」になる。 netsh interface ip set dns name="ローカル エリア接続" source=static addr=192.168.0.15 register=PRIMARY この段階では"ローカル エリア接続"の「優先DNSサーバ」は192.168.0.15になる。 netsh interface ip add dns name="ローカル エリア接続" addr=192.168.0.10 index=1 この段階では"ローカル エリア接続"の「優先DNSサーバ」は192.168.0.10になる。 192.168.0.15は押し出されて「代替DNSサーバ」に設定される。

sakura0539
質問者

補足

実際のソースです。 Option Explicit Dim NicSet As SWbemObjectSet Dim Nic As SWbemObject Dim Locator As SWbemLocator Dim Service As SWbemServices Dim MesStr As String Dim Ret As Long Dim DNSAdd(1) As Variant Ret = -1 Set Locator = New WbemScripting.SWbemLocator Set Service = Locator.ConnectServer Set NicSet = Service.ExecQuery _ ("Select * From Win32_NetworkAdapterConfiguration " & _ "Where Description Like '%ローカルエリア%'") For Each Nic In NicSet DNSAdd(0) = "192.168.200.200" DNSAdd(1) = "192.168.200.201" Ret = Nic.SetDNSServerSearchOrder(DNSAdd) Next If Ret = 0 Then MsgBox "DNS アドレスを変更しました。" Else MsgBox "DNS アドレスを変更できませんでした。" End If Set NicSet = Nothing Set Nic = Nothing Set Locator = Nothing Set Service = Nothing よろしくお願いします。

関連するQ&A