0

リモート マシンで WMI WebAdministrationクラスを列挙してクエリしようとしています。C#でのコードサンプルですが、CIM StudioやWMI Testerツールからも同様の操作が可能です

ManagementScope scope = new ManagementScope();
scope.Path = new ManagementPath(@"\\" + server + @"\root\WebAdministration");
ConnectionOptions options = new ConnectionOptions();
options.Impersonation = ImpersonationLevel.Impersonate;
options.EnablePrivileges = true;
options.Authentication = AuthenticationLevel.PacketPrivacy;
scope.Options = options;
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT path FROM AuthenticationSection WHERE Path LIKE '%WebApp1%'");
searcher.Scope = scope;
foreach (ManagementObject os in searcher.Get()) //fails here
{
    Console.WriteLine("path - " + os["Path"].ToString());
}

これは、あるリモート マシンを指している場合は機能しますが、別のマシンを指している場合は失敗します (エラー 0x80070032 "要求はサポートされていません")。これらの 2 つのマシンは一見同一です。何か見落としているかもしれませんが、IIS の構成、セキュリティ設定、インストールされている役割などは同じように見えます。

重要なことの 1 つは、両方のマシンで WMI MicrosoftIISv2 クラスを正常にクエリできることです。したがって、この問題は WebAdministration 名前空間に固有のものです

このエラーを探し回ると、問題が WMI の「外部」にある場合にスローされるようです。それがどこから来ているのか、そしてその理由を見つけるために、まだ頭を叩いています。

リードやアイデアに感謝します!

4

0 に答える 0