2011-11-17 39 views
2

我想在遠程計算機上觀看cpu性能viwth System.Diagnostics.PerformanceCounter class。 本地機器是Win7,遠程機器是Win Server 2008 Web Edition。計算機不在工作組和/或域中。PerformanceCounter和遠程機器

如果我爲遠程機器創建性能計數器new PerformanceCounter("processor", "% Processor Time", "_Total", machineName);我得到「訪問被拒絕」異常。

我試過了Impersonation Sample,但我無法登錄到遠程機器上的用戶。

如何從遠程機器獲取性能數據? 謝謝。

+0

你可以用perfmon遠程觀察這些計數器嗎?如果沒有,首先要做好工作。 「無法在遠程計算機上登錄到用戶」 - 需要詳細信息來說明任何內容。 –

+0

Perfmon的作品。 「登錄」方法的錯誤是「用戶名或密碼錯誤」。但它是相關的,因爲我發現,「登錄」方法僅用於本地登錄,而不用於遠程。所以在這種情況下使用它是完全錯誤的。 – TcKs

回答

1

您需要使用LOGON32_LOGON_NEW_CREDENTIALS登錄類型而不是LOGON32_LOGON_INTERACTIVE

+0

謝謝,它適用於登錄功能(+1)!但PerformanceCounter的構造函數仍然拋出相同的異常:( – TcKs

+0

然後你可能沒有傳入正確的憑據('LogonUser(NEW_CREDENTIALS)'沒有檢查它們)。你傳遞什麼域名?你需要傳遞名稱遠程計算機如果您正在模擬的用戶帳戶不是域帳戶 –

+0

呼叫聲如:LogonUser(「RemoteUserName」,「RemoteMachineName」,「RemoteUserPassword」,LOGON32_LOGON_NEW_CREDENTIALS,LOGON32_PROVIDER_DEFAULT,out logonHandle)。傳遞錯誤的密碼,但結果是成功:-O。 – TcKs

3

我知道這個問題很老,但我剛剛遇到同樣的問題,並希望分享我的解決方案。這個錯誤基本上是說,試圖訪問遠程機器的用戶的Windows憑據不是「性能監視器用戶」組的成員。將您的用戶添加到該組應該可以解決問題。