そのため、構成済みの DNS サーバーを見つける必要があります。
ManagementObjectSearcher
on でWMI ルックアップを行いWin32_NetworkAdapterConfiguration
ます。
これは開発でうまく機能します。権限の低いアカウント (例: NETWORK SERVICE
) でサービスとして実行しても機能しますか?
そのため、構成済みの DNS サーバーを見つける必要があります。
ManagementObjectSearcher
on でWMI ルックアップを行いWin32_NetworkAdapterConfiguration
ます。
これは開発でうまく機能します。権限の低いアカウント (例: NETWORK SERVICE
) でサービスとして実行しても機能しますか?
セキュリティと WMI はかなり制限されています。 ImpersonationLevel
&AuthenticationLevel
の設定について言及していると思います。リモート WMI はさらに複雑ですが、以下をご覧ください。
偽装レベル: http://msdn.microsoft.com/en-us/library/windows/desktop/aa393852(v=vs.85).aspx
認証レベル: http://msdn.microsoft.com/en-us/library/windows/desktop/aa393851(v=vs.85).aspx
次の行に沿ったものを使用して、WMI (VBS および CMD) の昇格権限を昇格させ、DNS 設定を取得できるため、他の言語でも同じことができると思います。
VBS
Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktPrivacy}!\\.\root\cimv2")
Set oQRY.ExecQuery("select DcSiteName,DnsForestName,DomainName from Win32_NTDomain")`
CMD
wmic /implevel:Impersonate /authlevel:Pktprivacy /namespace:\\root\cimv2 path win32_ntdomain get /all /format:list
「WMI名前空間へのアクセスというタイトルのMSDN」のセクションから:
認証済みユーザー、LOCAL SERVICE、および NETWORK SERVICE のデフォルトのアクセス許可は次のとおりです。
- メソッドの実行
- 完全書き込み
- アカウントを有効にする
プロセスが高度なセキュリティで実行されていない場合、一部の機能にアクセスできない可能性があることに注意してください。
また、一部の操作では特権の引き上げが必要になることにも注意してください(特にセキュリティ記述子を処理する場合)。