- ベストアンサー
IPアドレスを自動的に取得する方法とは?
- ローカルネットワーク接続の設定でIPアドレスを固定から自動的に取得する方法を教えてください。
- 使用するIPが「192.164.nn.nn」から「0.0.0.0」と変わるだけでなく、自動的に取得するに変更されないため、Win32_NetworkAdapterConfigurationを使う方法を知りたいです。
- netshコマンドを使用することもできますが、できればWin32_NetworkAdapterConfigurationを使いたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
手動で自動取得設定にしたら DHCP からアドレスを受け取れるっていう大前提はクリアしていると勝手に期待しています。 まずはどんなスクリプトを書いたのか、提示できないのでしょうかね。 単純に DHCP を有効にするだけなのか、その他の設定も連動して変更するのかとか、要件があるでしょうに。 私のところでは DHCP 化するにあたり、以下の方針で行いました。 1. DHCP から受け取るもの IP アドレス ルーター(デフォルト ゲートウェイ) のアドレス DNS サーバーのアドレス DNS ドメイン名("この接続の DNSサフィックス" という項目) 2. 静的に設定するもの DNSの検索サフィックス順 (社内に複数のドメインが存在するため) スクリプトは以下のような流れ。 1. 無効化されていないアダプターのうち、DHCP が無効になっているアダプターのコレクションを取得する。 2. コレクションをループして 1つずつのアダプターに設定を以下の行う。 3. 静的に設定されていた DNS サフィックスを空にする。 4. 静的に設定されていた DNS サーバーのアドレスを空にする。 5. 3と4をアダプターごとに行う。 6. コレクション全体に対して DNS 検索サフィックス順を設定する。 Dim locatorObject, serviceObject Set locatorObject = WScript.CreateObject("WbemScripting.SWbemLocator") Set serviceObject = locatorObject.ConnectServer() serviceObject.Security_.ImpersonationLevel = 3 Dim dnsServers, dnsSuffixSearchOrders dnsServers = Array() dnsSuffixSearchOrders = Array("hoge1.local", "hoge2.local", "hoge3.local") Dim ipConfigItems, ipConfig Set ipConfigItems = serviceObject.ExecQuery( _ "SELECT * FROM Win32_NetworkAdapterConfiguration " & _ "WHERE (IPEnabled = True) AND (DHCPEnabled = False)") For Each ipConfig In ipConfigItems ipConfig.SetDNSDomain() ipConfig.SetDNSServerSearchOrder(dnsServers) ipConfig.EnableDHCP() Next Set ipConfigItems = serviceObject.Get("Win32_NetworkAdapterConfiguration") ipConfigItems.SetDNSSuffixSearchOrder(dnsSuffixSearchOrders) 上記コードのインデントは全角空白なので、コピペしたら半角空白にすること。
お礼
temtecomai2様 お礼が遅くなりすみませんでした。 丁寧なご説明と、コードまで書いて頂き ありがとうございました。 勉強させて頂きます。