簡體   English   中英

僅Windows XP的WMI中的訪問被拒絕問題

[英]Access Denied Problem in WMI for Windows XP only

我一直在編寫一個應用程序,以使用WMI類獲取遠程計算機的詳細信息,例如OS名稱,登錄用戶名等。

在我們的網絡中,我們擁有配備Windows XP,Windows Vista Windows 7的計算機。

我能夠獲取所有Windows 7和Windows Vista計算機的信息。

但是這里的問題是我無法獲得Windows XP計算機的信息。 每當我遇到以下異常時, 訪問都會被拒絕。 (來自HRESULT的異常:0x80070005(E_ACCESSDENIED))

我已經上網了,但是沒有幫助。 我已經完成了以下鏈接http://support.microsoft.com/kb/875605中提到的所有步驟。 但是,仍然沒有運氣我無法解決問題。 我具有管理員特權的域用戶名。 下面是我使用的代碼。 (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權限有關的類似問題,並且已按照這兩個鏈接的說明進行了解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM