我正在尝试在远程机器viwth System.Diagnostics.PerformanceCounter
类上观看cpu性能。本地机器是Win7,远程机器是Win Server 2008 Web Edition。计算机不在工作组和/或域中。
如果我为远程机器new PerformanceCounter("processor", "% Processor Time", "_Total", machineName);
创建性能计数器,我会得到“访问被拒绝”异常。
我尝试了Impersonation Sample,但我无法登录远程机器上的用户。
如何从远程计算机获取性能数据?谢谢。
我知道这个问题已经很老了,但我遇到了同样的问题并想分享我的解决方案。该错误基本上是说,尝试访问远程计算机的用户的Windows凭据不是“性能监视器用户”组的成员。将您的用户添加到该组应该可以解决问题。
您需要使用LOGON32_LOGON_NEW_CREDENTIALS
登录类型而不是LOGON32_LOGON_INTERACTIVE
。
默认情况下,State Service仅允许本地到机器的连接。要允许远程连接,您必须将HKLM \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection键设置为值“1”。更改AllowRemoveConnection密钥值后,您必须重新启动State Service服务才能使更改生效。还要确保您的防火墙允许连接到State Service端口(默认情况下为TCP 42424)。