C# 使用PowerShell在远程计算机上启动监控应用程序时访问性能计数器
我有一个C#进程,作为其角色的一部分,它从一组Windows Server 2008R2机器上读取性能计数器。所有机器都位于公司的广告域中,并且位于同一网络上。如果我登录到服务器机器并在登录会话中运行C#进程,该程序工作正常。我现在正尝试使用这个带powershell的C#进程来自动化一些实验。目标是在其中一台服务器上从我的桌面远程启动它。所有计算机都在同一个域中(桌面和服务器) 所有机器均设置有:C# 使用PowerShell在远程计算机上启动监控应用程序时访问性能计数器,c#,powershell,performancecounter,winrm,C#,Powershell,Performancecounter,Winrm,我有一个C#进程,作为其角色的一部分,它从一组Windows Server 2008R2机器上读取性能计数器。所有机器都位于公司的广告域中,并且位于同一网络上。如果我登录到服务器机器并在登录会话中运行C#进程,该程序工作正常。我现在正尝试使用这个带powershell的C#进程来自动化一些实验。目标是在其中一台服务器上从我的桌面远程启动它。所有计算机都在同一个域中(桌面和服务器) 所有机器均设置有: Set-ExecutionPolicy -ExecutionPolicy RemoteSigne
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Configure-SMRemoting.ps1 -force -enable
powershell脚本正在创建一个PsSession以连接到运行C#进程的计算机,并使用invoke命令启动它。但是,远程主机上的C#应用程序无法再访问其监视的集计算机上的性能计数器:-“访问被拒绝”
我怀疑这是一个多跳身份验证问题,因此按照这些说明启用多跳身份验证。正在尝试使用CredSSP:
$cred = Get-Credential -Credential "Company\user"
$session = new-pssession -ComputerName $loadHost -Credential $cred -Authentication CredSSP -ErrorAction Stop
收益率:
连接到远程服务器失败,错误消息如下:
WinRM客户端无法处理该请求。CredSSP身份验证不可用
当前已在客户端配置中禁用。更换客户机
配置,然后重试该请求。必须进行CredSSP身份验证
也可以在服务器配置中启用。此外,组策略必须
将被编辑以允许将凭据委派到目标计算机。使用
gpedit.msc并查看以下策略:计算机配置->
管理模板->系统->凭证委派->允许
授权新的证书。确认它已启用,并且
配置了适用于目标计算机的SPN。对于
例如,对于目标计算机名“myserver.domain.com”,SPN可以
可以是以下内容之一:WSMAN/myserver.domain.com或
WSMAN/*.domain.com有关更多信息,请参阅
关于远程故障排除帮助主题
使用gpedit.msc,很明显,可以使用域的相应SPN条目设置允许委派新凭据。所有计算机上的防火墙都配置为在中启用WinRM Http。我已经阅读了about_Remote_故障排除文档,但没有结果
关于多跳身份验证是否确实是正确的方法,或者其他可能打破这一点的方法,有什么想法吗 我写了那篇博文。是的,从问题的描述来看,它看起来像是CredSSP身份验证问题。首先,您需要正确的权限来监视性能计数器。当使用远程处理时,如果凭证被委派,则第二个系统将作为系统接收请求,因此远程系统上的Invoke命令将导致访问被拒绝 第一个问题是:为什么不在远程系统上使用Enable PSremoting? 第二个问题是:您是否配置了C#应用程序作为CredSSP客户端运行的本地系统
Enable-WSManCredSSP -Role Client -DelegateComputer "*.SP2010lab.com"
这只需要在作为客户端使用的计算机上完成。在使用Invoke命令的系统上,必须设置CredSSP服务器
Enable-WSManCredSSP -Role Server
你能证实这一点吗?我写了那篇博文。是的,从问题的描述来看,它看起来像是CredSSP身份验证问题。首先,您需要正确的权限来监视性能计数器。当使用远程处理时,如果凭证被委派,则第二个系统将作为系统接收请求,因此远程系统上的Invoke命令将导致访问被拒绝 第一个问题是:为什么不在远程系统上使用Enable PSremoting? 第二个问题是:您是否配置了C#应用程序作为CredSSP客户端运行的本地系统
Enable-WSManCredSSP -Role Client -DelegateComputer "*.SP2010lab.com"
这只需要在作为客户端使用的计算机上完成。在使用Invoke命令的系统上,必须设置CredSSP服务器
Enable-WSManCredSSP -Role Server
您能确认吗?启用路径遵循technet上的建议:。显示的Enable WSManCredSSP步骤与键入的步骤完全相同。我怀疑问题在于我的客户机和我试图自动化的服务器之间的VPN。现在,我已经在这条路上退了一步,开始运行脚本,这样就只有单跳身份验证了。谢谢,我决定了。这些机器都是同一个广告的一部分,但在不同的OU中。一个OU已禁用IPSec,不允许在OU之外建立连接。这就是服务器所在的位置。我的客户端计算机已启用IPSec,并且位于不同的OU中。谢谢启用路径遵循technet上的建议:。显示的Enable WSManCredSSP步骤与键入的步骤完全相同。我怀疑问题在于我的客户机和我试图自动化的服务器之间的VPN。现在,我已经在这条路上退了一步,开始运行脚本,这样就只有单跳身份验证了。谢谢,我决定了。这些机器都是同一个广告的一部分,但在不同的OU中。一个OU已禁用IPSec,不允许在OU之外建立连接。这就是服务器所在的位置。我的客户端计算机已启用IPSec,并且位于不同的OU中。谢谢有完整源代码的最终解决方案吗?什么是Configure SMRemoting.ps1?有没有关于它的完整源代码的最终解决方案?什么是Configure-SMRemoting.ps1?