访问被拒绝WMI中的问题仅适用于Windows XP

问题描述:

我一直在编写一个应用程序来获取远程计算机的详细信息,例如使用WMI类的操作系统名称,登录用户名等。访问被拒绝WMI中的问题仅适用于Windows XP

在我们的网络,我们有与Windows XP,Windows Vista中的Windows 7

我能够得到的信息对于所有Windows 7和Windows Vista计算机的机器。

但这里的问题是我无法获得Windows XP机器的信息。 每当我收到以下例外 访问被拒绝。 (异常来自HRESULT:0x80070005(E_ACCESSDENIED))

我已经通过网络,但没有帮助。我已完成以下链接中提到的所有步骤 http://support.microsoft.com/kb/875605。 但没有运气,我仍然无法解决问题。 我有管理员privilages域用户名。 以下是我用过的代码。 (C#)

private void GetRemoteComputerInfo(string compName) 
    { 
     ObjectGetOptions oc = new ObjectGetOptions(); 
     try { 
      ConnectionOptions connOptions = new ConnectionOptions(); 
      connOptions.Username = "domain\\domainUserName"; 
      connOptions.Password = "domainUserPass"; 
      connOptions.Authority = "kerberos:domain\\" + compName; 
      connOptions.Impersonation = ImpersonationLevel.Impersonate; 
      connOptions.EnablePrivileges = true; 
      ManagementScope msc; 
      if (compName == Environment.MachineName) 
       msc = new ManagementScope("\\\\" + compName + "\\root\\cimv2"); 
      else 
       msc = new ManagementScope("\\\\" + compName + "\\root\\cimv2", connOptions); 
      msc.Connect(); 
      ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); 
      mc.Scope = msc; 
      //collection to store all management objects 
      ManagementObjectCollection moc = mc.GetInstances(); 
      if (moc.Count != 0) { 
       foreach (ManagementObject mo in mc.GetInstances()) { 
        Console.WriteLine(string.Format("\nMachine Make: {0}\nMachine Model: {1} System Type: {2} Host Name: {3} Logon User Name: {4}{5}", 
             mo["Manufacturer"].ToString(), 
             mo["Model"].ToString(), 
             mo["SystemType"].ToString(), 
             mo["DNSHostName"].ToString(), 
             mo["UserName"].ToString(), 
             Environment.NewLine)); 
       } 
      } 
     } 
     catch (Exception e) { 
      Console.WriteLine("{0}: {1}", e.GetType().Name, e.Message); 
     } 
    } 

请帮我解决问题。

Prasad,在过去我有一个类似的问题与WMI DCOM权限有关,并按照这两个链接的说明解决。