J'écris un script powershell v2 que j'aimerais exécuter sur un serveur distant. Lorsque je l'exécute, j'obtiens l'erreur:
La connexion au serveur distant a échoué avec le message d'erreur suivant: Le client WinRM ne peut pas traiter la demande. Le trafic non chiffré est actuellement désactivé dans la configuration du client. Modifiez la configuration du client et réessayez la demande. Pour plus d'informations, consultez la rubrique d'aide about_ Remote_Troubleshooting.
J'ai regardé l'aide en ligne pour environ _ Remote_Troubleshooting, mais cela ne m'a pas indiqué comment activer le trafic non crypté. Voici le script que j'utilise et qui me pose des problèmes.
Remarque: J'ai déjà exécuté Enable-PSRemoting sur la machine distante pour lui permettre d'accepter les demandes entrantes.
J'ai essayé d'utiliser une variable d'option de session, mais cela ne semble faire aucune différence.
$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
Comment activer le trafic non crypté?
AllowEncrypted est défini côté client, via le lecteur WSMAN :. Vous devez exécuter powershell.exe (ou powershell_ise.exe) en tant que processus élevé.
ps> cd WSMan:\localhost\Client
ps> dir
Name Value
---- -----
NetworkDelayms 5000
URLPrefix wsman
AllowUnencrypted false
Auth
DefaultPorts
TrustedHosts
Vous le changeriez ainsi (après avoir changé dans le répertoire ci-dessus):
ps> set-item.\allowunencrypted $ true
J'espère que cela t'aides,
Vous devrez probablement définir le paramètre de configuration AllowUnencrypted dans le client et le service. Le paramètre Service doit être modifié sur le serveur distant à l'aide des éléments suivants:
set-item -force WSMan:\localhost\Service\AllowUnencrypted $true
Et n'oubliez pas d'activer également l'autorisation Digest:
set-item -force WSMan:\localhost\Service\Auth\Digest $true
Cela a fonctionné pour moi:
enable-wsmancredssp –role server