0

我需要先清除远程服务器上的文件夹,然后再将新文件复制到该文件夹​​。

所以我客户端上的脚本包含以下内容:

Invoke-Command -Computer $TargetServer -ScriptBlock { Remove-Item $ClearPath }

当我运行它时,我收到以下错误:

Connecting to remote server 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

我在 technet 上查找了这个,我的理解是,如果服务器使用代理(我在尝试访问 Internet 时使用代理),那么我需要使用 $PSSessionOption 对象。所以我改变了我的脚本,以便首先执行以下内容:

$User = "group\tfs_service"
$Password = ConvertTo-SecureString -String "x" -AsPlainText -Force
$Credential = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $User, $Password
$PSSessionOption = New-PSSessionOption -ProxyAccessType IEConfig -ProxyAuthentication Negotiate -ProxyCredential $Credential

现在,当我运行脚本时,出现以下错误:

 Connecting to remote server failed with the following error message : The WinRM client cannot process the request. Setting proxy information is not valid when the HTTP transport is specified. Remove the proxy information or change the transport and try the request again

谁能告诉我哪里出错了?

4

3 回答 3

1

似乎我在吠叫错误的树,以为我需要配置代理。唯一的问题是我没有在远程服务器上启用 powershell 远程处理。我可以通过在提升的 powershell 窗口中执行以下命令来做到这一点:

Enable-PSRemoting
于 2012-07-30T15:44:44.040 回答
1

powershell 客户端和远程 powershell 服务器之间的通信必须保持安全,以避免代理窃听(= 中间人),这就是 Powershell 远程处理仅在传输是 HTTPS 时才支持代理的原因。

这篇博客文章Proxy Servers and WinRM展示了如何设置服务器端 HTTPS 侦听器以及如何通过代理连接到此侦听器。

设置服务器端 HTTPS 侦听器后,尝试从客户端调用您的脚本块,如下所示:

Invoke-Command -Computer $TargetServer -ScriptBlock { Remove-Item $ClearPath } -sessionoption $PSSessionOption -UseSSL -Authentication Basic -Credential $Credential
于 2012-07-30T16:20:04.120 回答
0

您是否尝试在另一台服务器上运行 WinRm quickconfig?这将配置您的脚本所针对的 winrm 侦听器

于 2012-07-31T12:02:08.243 回答