我正在编写一个PowerShell v2脚本,我想对远程服务器运行。当我运行它时,我收到错误:
连接到远程服务器失败 带有以下错误消息: WinRM客户端无法处理 请求。未加密的流量是 目前在客户端禁用 组态。更改客户端 配置并尝试请求 再次。有关更多信息,请参阅 about_ Remote_Troubleshooting帮助 主题。
我查看了有关_ Remote_Troubleshooting的在线帮助,但它没有指出如何启用未加密的流量。下面是我正在使用的脚本导致我出现问题。
注意:我已经在远程计算机上运行Enable-PSRemoting以允许它接受传入的请求 我曾尝试使用会话选项变量,但它似乎没有任何区别。
$key = "HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds"
Set-ItemProperty $key ConsolePrompting True
$tvar = "password"
$password = ConvertTo-SecureString -string $tvar -asPlainText –force
$username="domain\username"
$mySessionOption = New-PSSessionOption -NoEncryption
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
invoke-command -filepath C:\scripts\RemoteScript.ps1 -sessionoption $mySessionOption -authentication digest -credential $credential -computername RemoteServer
如何启用未加密的流量?
答案 0 :(得分:45)
AllowEncrypted是在客户端通过WSMAN:驱动器定义的。您必须将powershell.exe(或powershell_ise.exe)作为提升的进程运行。
ps> cd WSMan:\localhost\Client
ps> dir
Name Value
---- -----
NetworkDelayms 5000
URLPrefix wsman
AllowUnencrypted false
Auth
DefaultPorts
TrustedHosts
您可以像这样更改它(在更改为上面的目录后):
PS> set-item。\ allowunencrypted $ true
希望这有帮助,
答案 1 :(得分:12)
您可能需要在客户端和服务中设置AllowUnencrypted配置设置。必须使用以下命令在远程服务器中更改服务设置:
set-item -force WSMan:\localhost\Service\AllowUnencrypted $true
不要忘记启用摘要授权:
set-item -force WSMan:\localhost\Service\Auth\Digest $true
答案 2 :(得分:2)
您可以使用以下命令在客户端上允许未加密的流量(在客户端上执行):
winrm set winrm/config/client '@{AllowUnencrypted="true"}'
要验证,您可以使用以下命令获取整个配置(客户端和服务):
winrm get winrm/config
请注意,每台计算机都有两个配置(一个配置为客户端,一个配置为服务器)。要允许服务器上的未加密流量,请在服务器上执行以下命令:
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
答案 3 :(得分:1)
这对我有用:
enable-wsmancredssp –role server