web-dev-qa-db-ja.com

WMIを使用して、接続がDNSサーバーをDHCPから取得するかどうかを判断できますか?

ネットワークインターフェイスのDNSサーバーの検索順序は、Powershellの次のようにWin32_NetworkAdapterConfigurationから読み取るか、.NetManagementObjectsを使用してプログラムで読み取ることができます。

> $NICs = Get-WMIObject Win32_NetworkAdapterConfiguration | where{$_.IPEnabled -eq “TRUE”}
> $NICs[0]["DnsServerSearchOrder"]
192.168.1.1
192.168.1.2

WMIプロパティは、インターフェイスがDHCPから取得するように構成されているか、手動で設定されているかに関係なく、アクティブなDNSサーバーに設定されます。

次のように固定サーバーに設定できます。

> $DNSServers = “198.102.234.125″,”198.102.234.126″
> $NIC.SetDNSServerSearchOrder($DNSServers)

DHCPサーバーからDNSを使用するようにアダプターを設定するには、次のようにnullを指定してset関数を呼び出します。

> $NIC.SetDNSServerSearchOrder()

レジストリでこの設定の特徴的な痕跡を見つけることができませんでした。

DHCPサーバーを使用してDNSサーバーを取得するようにインターフェイスが現在設定されていることを確認する方法はありますか?

3
Derrick

通常、クライアントがDHCPからIPを取得している場合、クライアントは通常DNSサーバーも取得します。

しかし、WMIのリクエストについては、そうは思いません。

DNSの場合、次のプロパティがあります。

------------------------------------ ---------- -------------------------
 Class Name                           Type       Property Name
------------------------------------ ---------- -------------------------
 Win32_ComputerSystem                 String     DNSHostName
 Win32_NetworkAdapterConfiguration    String     DNSDomain
 Win32_NetworkAdapterConfiguration    String     DNSDomainSuffixSearchOrder
 Win32_NetworkAdapterConfiguration    Boolean    DNSEnabledForWINSResolution
 Win32_NetworkAdapterConfiguration    String     DNSHostName
 Win32_NetworkAdapterConfiguration    String     DNSServerSearchOrder
 Win32_NetworkAdapterConfiguration    Boolean    DomainDNSRegistrationEnabled
 Win32_NetworkAdapterConfiguration    Boolean    FullDNSRegistrationEnabled
 Win32_NTDomain                       String     DnsForestName
 Win32_NTDomain                       Boolean    DSDnsControllerFlag
 Win32_NTDomain                       Boolean    DSDnsDomainFlag
 Win32_NTDomain                       Boolean    DSDnsForestFlag
------------------------------------ ---------- -------------------------

DHCPの場合:

------------------------------------ ---------- -------------------------
 Class Name                           Type       Property Name
------------------------------------ ---------- -------------------------
 Win32_NetworkAdapterConfiguration    Boolean    DHCPEnabled
 Win32_NetworkAdapterConfiguration    DateTime   DHCPLeaseExpires
 Win32_NetworkAdapterConfiguration    DateTime   DHCPLeaseObtained
 Win32_NetworkAdapterConfiguration    String     DHCPServer
------------------------------------ ---------- -------------------------

上記のうち、特にDHCPからDNSサーバーを取得していることを示すものはありません。 DNSServerSearchOrderはアレイ内のサーバーを一覧表示しますが、「DHCPサーバーから取得したものです。

編集:ただし、WMIについて述べたことはすべて、古いnetshコマンドを使用することです。

具体的には:

netsh interface ipv4 show dns

"DHCPを介して構成されたDNSサーバー"と呼ばれる行があることに注意してください。

3
TheCleaner

システムでGet-WMIObjectWin32_NetworkAdapterConfigurationを実行すると、最初のプロパティ出力が次のように表示されます。

DHCPEnabled:True

残念ながら、これはDHCP情報に最も近い方法であり、明らかにDNS情報を指定していません。 Microsoftのドキュメントによると、WMIオブジェクトWin32_NEtworkAdapterConfigurationはその設定を保持していません。

http://msdn.Microsoft.com/en-us/library/aa394217%28v=vs.85%29.aspx

1
Byron C.