Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 仅适用于Windows XP的WMI中存在拒绝访问问题_C#_.net_Wmi - Fatal编程技术网

C# 仅适用于Windows XP的WMI中存在拒绝访问问题

C# 仅适用于Windows XP的WMI中存在拒绝访问问题,c#,.net,wmi,C#,.net,Wmi,我一直在编写一个应用程序,使用WMI类获取远程计算机的详细信息,如操作系统名称、登录用户名等 在我们的网络中,我们的机器使用Windows XP、Windows Vista和Windows 7 我能够获得所有Windows7和WindowsVista机器的信息 但这里的问题是,我无法获得有关windows XP机器的信息。 每次我都会遇到以下异常 访问被拒绝。(HRESULT的例外:0x80070005(E_访问被拒绝)) 我已经过了网,但没有帮助。我已经完成了下面链接中提到的所有步骤 . 但是

我一直在编写一个应用程序,使用WMI类获取远程计算机的详细信息,如操作系统名称、登录用户名等

在我们的网络中,我们的机器使用Windows XP、Windows Vista和Windows 7

我能够获得所有Windows7和WindowsVista机器的信息

但这里的问题是,我无法获得有关windows XP机器的信息。 每次我都会遇到以下异常 访问被拒绝。(HRESULT的例外:0x80070005(E_访问被拒绝))

我已经过了网,但没有帮助。我已经完成了下面链接中提到的所有步骤 . 但是运气不好,我还是不能解决这个问题。 我有具有管理员权限的域用户名。 下面是我使用的代码。(C#)


请帮助我解决此问题。

Prasad,过去我遇到了与WMI DCOM权限相关的类似问题,并按照这两个链接的说明解决了此问题

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);
        }
    }