リモートサーバーに対して実行したい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
暗号化されていないトラフィックを有効にするにはどうすればよいですか?
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
お役に立てれば、
おそらくクライアントとサービスの両方でAllowUnencrypted構成設定を設定する必要があります。以下を使用して、リモートサーバーでサービス設定を変更する必要があります。
set-item -force WSMan:\localhost\Service\AllowUnencrypted $true
また、ダイジェスト認証も有効にすることを忘れないでください:
set-item -force WSMan:\localhost\Service\Auth\Digest $true
これは私のために働きました:
enable-wsmancredssp –role server