1

そのため、構成済みの DNS サーバーを見つける必要があります。

ManagementObjectSearcheron でWMI ルックアップを行いWin32_NetworkAdapterConfigurationます。

これは開発でうまく機能します。権限の低いアカウント (例: NETWORK SERVICE) でサービスとして実行しても機能しますか?

4

2 に答える 2

1

セキュリティと 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
于 2012-08-19T01:57:49.047 に答える
1

「WMI名前空間へのアクセスというタイトルのMSDN」のセクションから:

認証済みユーザー、LOCAL SERVICE、および NETWORK SERVICE のデフォルトのアクセス許可は次のとおりです。

  • メソッドの実行
  • 完全書き込み
  • アカウントを有効にする

プロセスが高度なセキュリティで実行されていない場合、一部の機能にアクセスできない可能性があることに注意してください。

また、一部の操作では特権の引き上げが必要になることにも注意してください(特にセキュリティ記述子を処理する場合)。

于 2012-08-16T18:24:02.133 に答える