我需要先清除远程服务器上的文件夹,然后再将新文件复制到该文件夹中。
因此我客户端上的脚本包含以下内容:
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上看了这个,我的理解是,如果服务器使用代理(当我尝试上网时我的代理),那么我需要使用$ 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
任何人都可以告诉我哪里出错了吗?
答案 0 :(得分:1)
powershell客户端和远程PowerShell服务器之间的通信必须保持安全,以避免被代理窃听(=中间人),这就是为什么Powershell远程处理仅在传输是HTTPS时才支持代理。
此博文How To Use WSMan Proxy Support展示了如何设置服务器端HTTPS侦听器以及如何通过代理连接到此侦听器。
设置服务器端HTTPS侦听器后,尝试从客户端调用scriptblock,如下所示:
Invoke-Command -Computer $TargetServer -ScriptBlock { Remove-Item $ClearPath } -sessionoption $PSSessionOption -UseSSL Authentication Basic -Credential $Credential
答案 1 :(得分:0)
我认为我需要配置代理时,我正在咆哮错误的树。唯一的问题是我没有在远程服务器上启用PowerShell远程处理。我可以通过在高架PowerShell窗口中执行以下命令来完成此操作:
Enable-PSRemoting
答案 2 :(得分:0)
您是否尝试在其他服务器上运行WinRm quickconfig? 这将配置您的脚本
所针对的winrm侦听器