powershell v2 remoting - 如何启用未加密的流量

时间:2009-09-24 04:34:56

标签: powershell powershell-v2.0

我正在编写一个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

如何启用未加密的流量?

4 个答案:

答案 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

希望这有帮助,

  • [287]莪

答案 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