C# で System.Management を使用して wmi クエリを実行しようとしていますが、無効なクラスを取得し続けています。これは、pcoip プロトコルを使用する wmware 仮想デスクトップ用です。WMI Explorer を使用できます。以下のように表示されます。
以下は、C# コードの例です。「using」ステートメントを使用していないことはわかっていますが、短くしようとしています。WMI エクスプローラーで最上位の名前空間を選択してクエリを実行しようとすると、同じ無効なクラス エラーで失敗し、ROOT\CIMV2 をクリックしてクエリを実行すると正常に動作することに気付きました。スコープなどでパスを確認しましたが、正しいようです。Microsoft.Management.Infrastructure も使用できません。
var scope = new ManagementScope(ManagementPath.DefaultPath);
var query = new SelectQuery("SELECT * from Win32_PerfRawData_TeradiciPerf_PCoIPSessionImagingStatistics");
scope.Connect();
var searcher = new ManagementObjectSearcher(scope, query);
var collection = searcher.Get();
私はpowershellを使用して取得できることに注意してください
Get-WmiObject -Class "Win32_PerfRawData_TeradiciPerf_PCoIPSessionImagingStatistics"
更新: 奇妙ですが、WMI Explorer では表示できることに気付きましたが、WMI Code Creator を使用している場合は表示されません。