2016-09-24 4 views
0

ローカルネットワーク上のコンピュータに関する情報を取得するためにWMIを使用するアプリケーションを作成しようとしています。私がそれを実行すると、アクセス拒否エラーが発生します。WMIでリモートコンピュータのハードウェア情報にアクセスできない:アクセスが拒否されました。

private void GetHDDdetails() 
{ 
    ConnectionOptions options = new ConnectionOptions(); 
    options.Username = "username"; 
    options.Password = "password"; 
    options.Impersonation = ImpersonationLevel.Impersonate; 
    ManagementScope oMs = new ManagementScope("\\\\remoteHostName\\root\\cimv2", options); 
    ObjectQuery oQuery = new ObjectQuery("SELECT Size FROM Win32_DiskDrive"); 
    ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs, oQuery); 
    ManagementObjectCollection oCollection = oSearcher.Get(); 


    foreach (ManagementObject obj in oCollection) 
    { 
     hddBox.Text = obj["Size"].ToString(); 
    } 
} 

この投稿のプレースホルダには、上記のユーザー名とパスワードなどの情報の一部が置き換えられました。 私が試したことのいくつかは、次のとおりです。両方のマシンでファイアウォールを無効にし、TCP NetBIOSサービスとRCPとWMIサービスが両方で実行されていることを確認します。私が使用しているアカウントは、ローカルコンピュータの管理者です。私がオンラインで見つけたものはすべてこれらをチェックするように指示していますが、それは明らかに別のものです。 誰かが私を正しい方向に向けることができれば、それは素晴らしいでしょう。

答えて

0

wbemtestリモートマシンから情報にアクセスできることを確認してください。そして、remoteHostNameを正しく置き換えてください。 可能であれば、認証レベルを変更してください。

scope.Options.EnablePrivileges = true; 
scope.Options.Authentication = AuthenticationLevel.PacketPrivacy; 
関連する問題