Pour établir une connexion entre le plug-in PowerShell et Windows PowerShell, vous devez configurer WinRM de sorte que l'un des protocoles de communication pris en charge soit utilisé.

Le plug-in PowerShell prend en charge Windows Remote Management (WinRM) 2.0 comme protocole de gestion.

Les méthodes d'authentification suivantes sont prises en charge.
Méthode d'authentification Détails
De base Mécanisme d'authentification non sécurisé nécessitant un nom d'utilisateur et un mot de passe.
Kerberos Protocole d'authentification sécurisé qui utilise des tickets pour vérifier l'identité du client et du serveur.
Note : Le plug-in PowerShell ne prend pas en charge la délégation des informations d'identification de l'utilisateur dans WinRM, et CredSSP n'est pas une méthode d'authentification prise en charge.

WinRM via HTTP

Le plug-in PowerShell prend en charge la communication avec l'hôte WinRM via le protocole HTTP. Même si WinRM authentifie la communication, le transfert de données n'est pas chiffré et est envoyé sous forme de texte brut sur le réseau. Vous devez utiliser le protocole HTTP si IPSec est configuré entre les machines qui communiquent.

Pour utiliser l'authentification de base, vous devez définir la propriété AllowUnencrypted sur true dans la configuration du service et du client WinRM. Pour obtenir un exemple de configuration HTTP, reportez-vous à la section Configurer WinRM pour utiliser le protocole HTTP.

WinRM via HTTPS

Le plug-in PowerShell prend en charge la communication avec l'hôte WinRM via le protocole HTTPS. Vous pouvez utiliser le protocole HTTPS si vous souhaitez adopter une méthode de communication plus sûre.

Pour utiliser le protocole HTTPS, vous devez générer un certificat pour l'authentification du serveur et installer le certificat sur l'hôte WinRM. Pour obtenir un exemple de configuration HTTPS, reportez-vous à la section Configurer WinRM pour utiliser le protocole HTTPS.

Configurer WinRM pour utiliser le protocole HTTP

Vous pouvez configurer l'hôte WinRM pour permettre la communication avec le plug-in PowerShell via le protocole HTTP.

Pour modifier la configuration de WinRM, vous devez exécuter des commandes sur la machine hôte WinRM. Vous pouvez utiliser la même machine que le service et le client WinRM.

Important : Si vous ignorez l'une des étapes lors de la configuration de WinRM pour utiliser le protocole HTTP, l'hôte ne sera peut-être pas ajouté et un message d'erreur comme le suivant risque d'apparaître dans les journaux :
Caused by: org.dom4j.DocumentException: Error on line -1 of document : Premature end of file. 
Nested exception: Premature end of file.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.dom4j.DocumentHelper.parseText(DocumentHelper.java:278)
at com.xebialabs.overthere.cifs.winrm.connector.JdkHttpConnector.sendMessage(JdkHttpConnector.java:117)

Procédure

  1. Exécutez la commande suivante pour définir les valeurs de configuration de WinRM par défaut.
    c:\> winrm quickconfig
  2. (Facultatif) Exécutez la commande suivante pour vérifier si un écouteur est en cours d'exécution et vérifiez les ports par défaut.
    c:\> winrm e winrm/config/listener

    Les ports par défaut sont 5985 pour HTTP et 5986 pour HTTPS.

  3. Activez l'authentification de base sur le service WinRM.
    1. Exécutez la commande suivante pour vérifier si l'authentification de base est autorisée.
      c:\> winrm get winrm/config/service
    2. Exécutez la commande suivante pour activer l'authentification de base.
      c:\> winrm set winrm/config/service/auth @{Basic="true"}
  4. Exécutez la commande suivante pour autoriser le transfert de données non chiffrées sur le service WinRM.
    c:\> winrm set winrm/config/service @{AllowUnencrypted="true"}
  5. Si le niveau de sécurisation du jeton de liaison de canal au niveau du service WinRM est défini sur « strict » (strict), changez sa valeur en « relaxed » (souple).
    c:\> winrm set winrm/config/service/auth @{CbtHardeningLevel="relaxed"}
  6. Activez l'authentification de base sur le client WinRM.
    1. Exécutez la commande suivante pour vérifier si l'authentification de base est autorisée.
      c:\> winrm get winrm/config/client
    2. Exécutez la commande suivante pour activer l'authentification de base.
      c:\> winrm set winrm/config/client/auth @{Basic="true"}
  7. Exécutez la commande suivante pour autoriser le transfert de données non chiffrées sur le client WinRM.
    c:\> winrm set winrm/config/client @{AllowUnencrypted="true"}
  8. Si la machine hôte WinRM se trouve dans un domaine externe, exécutez la commande suivante pour spécifier les hôtes approuvés.
    c:\> winrm set winrm/config/client @{TrustedHosts="host1, host2, host3"}
  9. Exécutez la commande suivante pour tester la connexion au service WinRM.
    c:\> winrm identify -r:http://winrm_server:5985 -auth:basic -u:nom_utilisateur -p:mot_de_passe -encoding:utf-8

Configurer WinRM pour utiliser le protocole HTTPS

Vous pouvez configurer l'hôte WinRM pour permettre la communication avec le plug-in PowerShell via le protocole HTTPS.

Pour communiquer via le protocole HTTPS, l'hôte WinRM exige un certificat. Vous pouvez obtenir ce certificat ou en générer un. Par exemple, vous pouvez générer un certificat autosigné à l'aide de l'outil de création de certificat (makecert.exe) qui fait partie du kit de développement .NET Framework.

Conditions préalables

  • Configurez WinRM pour utiliser le protocole HTTP. Pour plus d'informations, reportez-vous à la section Configurer WinRM pour utiliser le protocole HTTP.
  • Vérifiez que vous pouvez accéder à Microsoft Management Console (mmc.exe) sur l'hôte WinRM.

Procédure

  1. Générez un certificat autosigné.
    La ligne de commande suivante contient des exemples de syntaxe pour créer un certificat sur l'hôte WinRM à l'aide de makecert.exe.

    makecert.exe -r -pe -n "CN=nom_hôte-3,O=nom_organisation" -e jj/mm/aaaa -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 nom_certificat.cer

  2. Ajoutez le certificat généré à l'aide de Microsoft Management Console.
    1. Exécutez mmc.exe.
    2. Sélectionnez Fichier > Ajouter/Supprimer un composant logiciel enfichable.
    3. Dans la liste des composants logiciels enfichables disponibles, sélectionnez Certificats et cliquez sur Ajouter.
    4. Sélectionnez Compte ordinateur et cliquez sur Suivant.
    5. Cliquez sur Terminer.
    6. Vérifiez que le certificat est installé dans Racine de la console > Certificats (ordinateur local) > Personnel > Certificats et dans Racine de la console > Certificats (ordinateur local) > Autorités de certification racine de confiance > Certificats.
      Si le certificat n'est pas installé dans les dossiers Autorités de certification racine de confiance et Personnel, vous devez l'installer manuellement.
  3. Créez un écouteur HTTPS à l'aide de l'empreinte numérique et du nom d'hôte.
    La ligne de commande suivante contient des exemples de syntaxe pour créer un écouteur HTTPS.

    winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="nom_hôte";CertificateThumbprint="empreinte_numérique_certificat"}

    Note : Omettez les espaces dans l'empreinte numérique du certificat.
  4. Testez la connexion.
    La ligne de commande suivante contient des exemples de syntaxe pour tester la connexion.

    winrs -r:https://nom_hôte:numéro_port -u:nom_utilisateur -p:mot_de_passe hostname