PowerShell:客户端无法连接到请求中指定的目标

PowerShell: The client cannot connect to the destination specified in the request

我的目标是通过 TFS 任务“PowerShell on Target Machines”在远程服务器上执行 PowerShell 文件 为此,我到目前为止采取的步骤是:

构建和远程服务器都已启用

Enable-PSRemoting -Force

还添加了添加的信任主机服务器 IP

Set-Item wsman:\localhost\client\trustedhosts *

Restart-Service WinRM

完成上述所有步骤后,TFS 任务仍然出现以下错误

##[error]Connecting to remote server 'REMOTE SERVER IP' failed with the following error message The client cannot connect to the destination specified in the request. Verify that the service on the destination is running and is accepting requests. Consult the logs and documentation for the WS-Management service running on the destination, most commonly IIS or WinRM. If the destination is the WinRM service, run the following command on the destination to analyze and configure the WinRM service: "winrm quickconfig". For more information, see the about_Remote_Troubleshooting Help topic.

会是什么原因或者我遗漏了什么。

以下是错误的一些可能原因和一些故障排除建议:

建议 1

如果 Window 远程管理服务及其侦听器功能损坏,可能会出现此问题。

要解决此问题,请按照下列步骤操作:

第一步。安装最新的 Windows 远程管理更新。

第二步。 运行 恢复监听配置的命令如下:

winrm invoke Restore winrm/Config

第三步。 运行 以下命令执行 Windows 远程管理服务及其侦听器的默认配置:

winrm quickconfig

单击this document了解详细信息。

建议2

防火墙例外的组策略配置可能不正确。策略中的配置错误导致 ListeningOn 属性 的值为空。使用以下命令检查值。

PS> Get-WSManInstance winrm/config/listener -Enumerate

单击 this document 了解详细信息和解决问题的方法。

建议 3

问题的可能原因是HTTP代理设置错误。由于 PowerShell 远程处理使用 HTTP 协议,因此受 HTTP 代理设置的影响。

要解决此问题:

第一步。使用 New-PSSessionOption cmdlet 的 ProxyAccessTypeProxyAuthenticationProxyCredential 参数创建具有企业代理设置的会话选项对象。保存选项对象是一个变量。

第二步。使用包含选项对象的变量作为 New-PSSessionEnter-PSSessionInvoke-Command 命令的 SessionOption 参数的值。

单击this document了解详细信息。

建议4

在本地尝试 运行 您的 PowerShell 文件,看看它是否有同样的错误。

在我的例子中,问题是服务 WinRM 不是 运行。默认是手动启动。

从服务启动服务后,问题消失了。