about_Remote_Troubleshooting

Mis à jour: mai 2014

S'applique à: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

RUBRIQUE

about_Remote_Troubleshooting

DESCRIPTION COURTE

Décrit comment résoudre les opérations distantes dans Windows PowerShell®.

DESCRIPTION DÉTAILLÉE

Cette section décrit certains problèmes que vous pouvez rencontrer quand vous utilisez les fonctionnalités de communication à distance de Windows PowerShell, qui sont basées sur la technologie de gestion à distance de Windows. Cette section propose également des solutions à ces problèmes.

Avant d'utiliser les fonctionnalités de communication à distance de Windows PowerShell, consultez les rubriques about_Remote et about_Remote_Requirements pour obtenir des conseils sur la configuration et l'utilisation de base. Les rubriques d'aide de chacune des applets de commande de communication à distance, notamment les descriptions de paramètres, contiennent également des informations utiles qui vous aideront à éviter les problèmes.

Les dernières versions de cette rubrique et d'autres rubriques d'aide Windows PowerShell, peuvent être téléchargées à l'aide de l'applet de commande Update-Help et sont accessibles en ligne sur la bibliothèque Microsoft TechNet à l'adresse suivante : https://technet.microsoft.com/library/hh847850(v=wps.630).aspx.

REMARQUE : Pour afficher ou modifier les paramètres de l'ordinateur local sur le disque WSMan:, y compris les modifications apportées aux configurations de sessions, aux hôtes approuvés, aux ports ou aux écouteurs, démarrez Windows PowerShell avec l'option Exécuter en tant qu'administrateur.

RÉSOLUTION DES PROBLÈMES D'AUTORISATION ET D'AUTHENTIFICATION

Cette section traite des problèmes de communication à distance qui sont liés aux autorisations de l'utilisateur et de l'ordinateur, ainsi qu'à la configuration requise pour la communication à distance.

EXÉCUTION EN TANT QU'ADMINISTRATEUR

        ERROR: Access is denied. You need to run this cmdlet from an elevated
        process.

Pour démarrer une session à distance sur l'ordinateur local, ou pour afficher ou modifier les paramètres de l'ordinateur local sur le lecteur WSMan:, y compris les modifications apportées aux configurations de sessions, aux hôtes approuvés, aux ports ou aux écouteurs, démarrez Windows PowerShell avec l'option Exécuter en tant qu'administrateur.

Pour démarrer Windows PowerShell avec l'option Exécuter en tant qu'administrateur :

-- Cliquez avec le bouton droit sur une icône Windows PowerShell (ou Windows PowerShell ISE), puis cliquez sur Exécuter en tant qu'administrateur.

Pour démarrer Windows PowerShell avec l'option Exécuter en tant qu'administrateur dans Windows 7 et Windows Server 2008 R2.

-- Dans la barre des tâches Windows, cliquez avec le bouton droit sur l'icône Windows PowerShell, puis cliquez sur Exécuter en tant qu'administrateur.

Remarque : Dans Windows Server 2008 R2, l'icône Windows PowerShell est épinglée à la barre des tâches par défaut.

ACTIVATION DE LA COMMUNICATION À DISTANCE

        ERROR:  ACCESS IS DENIED
        - or -
        ERROR: The connection to the remote host was refused. Verify that the
        WS-Management service is running on the remote host and configured to
        listen for requests on the correct port and HTTP URL.

Aucune configuration n'est nécessaire pour permettre à un ordinateur d'envoyer des commandes à distance. Toutefois, pour recevoir des commandes à distance, la communication à distance Windows PowerShell doit être activée sur l'ordinateur. L'activation comprend le démarrage du service Gestion à distance de Windows, l'attribution du type de démarrage Automatique pour le service Gestion à distance de Windows, la création d'écouteurs pour les connexions HTTP et HTTPS, et la création de configurations de session par défaut.

La communication à distance Windows PowerShell est activée par défaut sur Windows Server 2012 et sur les versions plus récentes de Windows Server. Sur tous les autres systèmes, exécutez l'applet de commande Enable-PSRemoting pour activer la communication à distance. Vous pouvez également exécuter l'applet de commande Enable-PSRemoting pour activer la communication à distance sur Windows Server 2012 et les versions plus récentes de Windows Server si la communication à distance est désactivée.

Pour configurer un ordinateur de sorte qu'il puisse recevoir des commandes à distance, utilisez l'applet de commande Enable-PSRemoting. La commande suivante active tous les paramètres d'utilisation à distance requis, active les configurations de session et redémarre le service Gestion à distance de Windows pour que les modifications prennent effet.

        Enable-PSRemoting

Pour empêcher l'affichage de toutes les invites utilisateur, tapez :

        Enable-PSRemoting -Force

Pour plus d'informations, consultez Enable-PSRemoting.

ACTIVATION DE LA COMMUNICATION À DISTANCE DANS UNE ENTREPRISE

        ERROR:  ACCESS IS DENIED
        - or -
        ERROR: The connection to the remote host was refused. Verify that the
        WS-Management service is running on the remote host and configured to
        listen for requests on the correct port and HTTP URL.

Pour permettre à un seul ordinateur de recevoir des commandes Windows PowerShell à distance et d'accepter les connexions, utilisez l'applet de commande Enable-PSRemoting.

Pour activer la communication à distance pour plusieurs ordinateurs d'une entreprise, vous pouvez utiliser les options adaptées suivantes.

  • -- Pour configurer les écouteurs pour la communication à distance, activez la stratégie de groupe Autoriser la configuration automatique des écouteurs. Pour obtenir des instructions, consultez la section "Activation des écouteurs à l'aide d'une stratégie de groupe" ci-dessous.

  • -- Pour définir le type de démarrage du service Gestion à distance de Windows sur Automatique pour plusieurs ordinateurs, utilisez l'applet de commande Set-Service. Pour obtenir des instructions, consultez la section "Configuration du type de démarrage du service Gestion à distance de Windows" ci-dessous.

  • -- Pour activer une exception de pare-feu, utilisez le groupe de stratégie "Pare-feu Windows : autoriser les exceptions de ports locaux". Pour obtenir des instructions, consultez la section "Création d'une exception de pare-feu à l'aide d'une stratégie de pare-feu" ci-dessous.

ACTIVATION DES ÉCOUTEURS À L'AIDE D'UNE STRATÉGIE DE GROUPE

        ERROR:  ACCESS IS DENIED
        - or -
        ERROR: The connection to the remote host was refused. Verify that the
        WS-Management service is running on the remote host and configured to
        listen for requests on the correct port and HTTP URL.

Pour configurer les écouteurs pour tous les ordinateurs d'un domaine, activez la stratégie "Autoriser la configuration automatique des écouteurs" dans le chemin d'accès de stratégie de groupe suivant :

        Computer Configuration\Administrative Templates\Windows Components
          \Windows Remote Management (WinRM)\WinRM service

Activez la stratégie et spécifiez les filtres IPv4 et IPv6. Les caractères génériques (*) sont autorisés.

ACTIVATION DE LA COMMUNICATION À DISTANCE SUR LES RÉSEAUX PUBLICS

        ERROR:  Unable to check the status of the firewall

L'applet de commande Enable-PSRemoting retourne cette erreur quand le réseau local est public et le paramètre SkipNetworkProfileCheck n'est pas utilisé dans la commande.

Sur les versions serveur de Windows, Enable-PSRemoting réussit sur tous les types d'emplacements réseau. Il crée des règles de pare-feu qui autorisent l'accès à distance aux réseaux privés et aux réseaux avec domaine ("Domicile" et "Bureau"). Pour les réseaux publics, il crée des règles de pare-feu qui autorisent l'accès à distance depuis le même sous-réseau local.

Sur les versions client de Windows, Enable-PSRemoting réussit sur les réseaux privés et sur les réseaux avec domaine. Par défaut, il échoue sur les réseaux publics. Toutefois, si vous utilisez le paramètre SkipNetworkProfileCheck, Enable-PSRemoting réussit et crée une règle de pare-feu qui autorise le trafic provenant du même sous-réseau local.

Pour supprimer la restriction de sous-réseau local sur les réseaux publics et autoriser l'accès à distance à partir de n'importe quel emplacement, exécutez la commande suivante :

        Set-NetFirewallRule –Name "WINRM-HTTP-In-TCP-PUBLIC" –RemoteAddress Any

L'applet de commande Set-NetFirewallRule est exportée par le module NetSecurity.

REMARQUE : Dans Windows PowerShell 2.0, sur les ordinateurs qui exécutent des versions serveur de Windows, Enable-PSRemoting crée des règles de pare-feu qui autorisent l'accès à distance sur les réseaux privés, publics et avec domaine. Sur les ordinateurs qui exécutent des versions client de Windows, Enable-PSRemoting crée des règles de pare-feu qui autorisent l'accès à distance uniquement sur les réseaux privés et avec domaine.

ACTIVATION D'UNE EXCEPTION DE PARE-FEU À L'AIDE D'UNE STRATÉGIE DE GROUPE

        ERROR:  ACCESS IS DENIED
        - or -
        ERROR: The connection to the remote host was refused. Verify that the
        WS-Management service is running on the remote host and configured to
        listen for requests on the correct port and HTTP URL.

Pour activer une exception de pare-feu pour tous les ordinateurs d'un domaine, activez la stratégie "Pare-feu Windows : autoriser les exceptions de ports locaux" dans le chemin d'accès de stratégie de groupe suivant :

        Computer Configuration\Administrative Templates\Network
          \Network Connections\Windows Firewall\Domain Profile

Cette stratégie permet aux membres du groupe Administrateurs de l'ordinateur d'utiliser le pare-feu Windows du Panneau de configuration pour créer une exception de pare-feu pour le service Gestion à distance de Windows.

CONFIGURATION DU TYPE DE DÉMARRAGE DU SERVICE GESTION À DISTANCE DE WINDOWS

        ERROR:  ACCESS IS DENIED

La communication à distance Windows PowerShell dépend du service Gestion à distance de Windows. Le service doit être exécuté pour prendre en charge les commandes distantes.

Sur les versions serveur de Windows, le type de démarrage du service Gestion à distance de Windows est automatique.

Toutefois, sur les versions client de Windows, le service Gestion à distance de Windows est désactivé par défaut.

Pour définir le type de démarrage d'un service sur un ordinateur distant, utilisez l'applet de commande Set-Service.

Pour exécuter la commande sur plusieurs ordinateurs, vous pouvez créer un fichier texte ou un fichier CSV contenant le nom des ordinateurs.

Par exemple, les commandes suivantes obtiennent la liste des noms d'ordinateurs à partir du fichier Servers.txt et définissent ensuite sur Automatique le type de démarrage du service Gestion à distance de Windows pour tous les ordinateurs.

        C:\PS> $servers = Get-Content servers.txt

        C:\PS> Set-Service WinRM -ComputerName $servers -startuptype Automatic

Pour voir les résultats, utilisez l'applet de commande Get-WMIObject avec l'objet Win32_Service. Pour plus d'informations, consultez Set-Service.

RECRÉATION DES CONFIGURATIONS DE SESSION PAR DÉFAUT

        ERROR:  ACCESS IS DENIED

Pour que vous puissiez vous connecter à l'ordinateur local et exécuter des commandes à distance, l'ordinateur local doit inclure des configurations de session pour les commandes distantes.

Quand vous utilisez Enable-PSRemoting, celle-ci crée par défaut des configurations de session sur l'ordinateur local. Les utilisateurs distants utilisent ces configurations de session chaque fois qu'une commande distante n'inclut pas le paramètre ConfigurationName.

Si les configurations par défaut d'un ordinateur sont désinscrites ou supprimées, utilisez l'applet de commande Enable-PSRemoting pour les recréer. Vous pouvez utiliser cette applet de commande à plusieurs reprises. Elle ne génère pas d'erreurs si une fonctionnalité est déjà configurée.

Si vous modifiez les configurations de session par défaut et si vous souhaitez restaurer les configurations de session par défaut d'origine, utilisez l'applet de commande Unregister-PSSessionConfiguration pour supprimer les configurations de session modifiées, puis l'applet de commande Enable-PSRemoting pour les restaurer. Enable-PSRemoting ne modifie pas les configurations de sessions existantes.

Remarque : Quand Enable-PSRemoting restaure la configuration de session par défaut, elle ne crée pas de descripteurs de sécurité explicites pour les configurations. Au lieu de cela, les configurations héritent du descripteur de sécurité de la RootSDDL, qui est sécurisé par défaut.

Pour afficher le descripteur de sécurité RootSDDL, tapez :

        Get-Item wsman:\localhost\Service\RootSDDL

Pour modifier la RootSDDL, utilisez l'applet de commande Set-Item sur le lecteur WSMan:. Pour modifier le descripteur de sécurité d'une configuration de session, utilisez l'applet de commande Set-PSSessionConfiguration avec le paramètre SecurityDescriptorSDDL ou ShowSecurityDescriptorUI.

Pour plus d'informations sur le lecteur WSMan:, voir la rubrique d'aide relative au fournisseur WSMan ("Get-Help wsman").

ATTRIBUTION D'INFORMATIONS D'IDENTIFICATION ADMINISTRATEUR

        ERROR:  ACCESS IS DENIED

Pour créer une session PSSession ou exécuter des commandes sur un ordinateur distant, par défaut, l'utilisateur actuel doit être membre du groupe Administrateurs sur l'ordinateur distant. Les informations d'identification sont parfois requises quand l'utilisateur actuel est connecté à un compte qui est membre du groupe Administrateurs.

Si l'utilisateur actuel est membre du groupe Administrateurs sur l'ordinateur distant, ou peut fournir les informations d'identification d'un membre du groupe Administrateurs, utilisez le paramètre Credential des applets de commande New-PSSession, Enter-PSSession ou Invoke-Command pour vous connecter à distance.

Par exemple, la commande suivante fournit les informations d'identification d'un administrateur.

        Invoke-Command -ComputerName Server01 -Credential Domain01\Admin01

Pour plus d'informations sur le paramètre Credential, consultez New-PSSession, Enter-PSSession ou Invoke-Command.

ACTIVATION DE LA COMMUNICATION À DISTANCE POUR LES UTILISATEURS NON ADMINISTRATEURS

        ERROR:  ACCESS IS DENIED

Pour établir une session PSSession ou exécuter une commande sur un ordinateur distant, l'utilisateur doit être autorisé à utiliser les configurations de session sur l'ordinateur distant.

Par défaut, seuls les membres du groupe Administrateurs sur un ordinateur ont l'autorisation d'utiliser les configurations de session par défaut. Par conséquent, seuls les membres du groupe Administrateurs peuvent se connecter à l'ordinateur à distance.

Pour autoriser d'autres utilisateurs à se connecter à l'ordinateur local, accordez à l'utilisateur les autorisations Execute pour les configurations de session par défaut sur l'ordinateur local.

La commande suivante ouvre une feuille de propriétés qui vous permet de modifier le descripteur de sécurité de la configuration de session Microsoft.PowerShell par défaut sur l'ordinateur local.

        Set-PSSessionConfiguration Microsoft.PowerShell -ShowSecurityDescriptorUI

Pour plus d'informations, consultez about_Session_Configurations.

ACTIVATION DE LA COMMUNICATION À DISTANCE POUR LES ADMINISTRATEURS D'AUTRES DOMAINES

        ERROR:  ACCESS IS DENIED

Quand un utilisateur d'un autre domaine est membre du groupe Administrateurs sur l'ordinateur local, il ne peut pas se connecter à l'ordinateur local à distance avec des privilèges d'administrateur. Par défaut, les connexions à distance à partir d'autres domaines ne peuvent être effectuées qu'avec des jetons de privilèges pour utilisateur standard.

Toutefois, vous pouvez utiliser l'entrée de Registre LocalAccountTokenFilterPolicy pour modifier le comportement par défaut et permettre aux utilisateurs distants qui sont membres du groupe Administrateurs d'utiliser l'option Exécuter en tant qu'administrateur.

Attention : L'entrée LocalAccountTokenFilterPolicy désactive les restrictions distantes concernant le contrôle de compte d'utilisateur pour tous les utilisateurs des ordinateurs concernés. Tenez compte des conséquences de ce paramètre avant de modifier la stratégie.

Pour modifier la stratégie, utilisez la commande suivante pour attribuer la valeur 1 à l'entrée Registre LocalAccountTokenFilterPolicy.

        C:\PS> New-ItemProperty -Name LocalAccountTokenFilterPolicy -Path `
            HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -PropertyType `
            DWord -Value 1

UTILISATION D'UNE ADRESSE IP DANS UNE COMMANDE DISTANTE

        ERROR:  The WinRM client cannot process the request. If the
        authentication scheme is different from Kerberos, or if the client
        computer is not joined to a domain, then HTTPS transport must be used
        or the destination machine must be added to the TrustedHosts
        configuration setting.

Les paramètres ComputerName des applets de commande New-PSSession, Enter-PSSession et Invoke-Command acceptent une adresse IP comme valeur valide. Toutefois, étant donné que l'authentification Kerberos ne prend pas en charge les adresses IP, l'authentification NTLM est utilisée par défaut chaque fois que vous spécifiez une adresse IP.

Quand vous utilisez l'authentification NTLM, la procédure suivante est requise pour la communication à distance.

  • 1. Configurez l'ordinateur pour le transport HTTPS ou ajoutez les adresses IP des ordinateurs distants à la liste des hôtes approuvés sur l'ordinateur local.

    Pour obtenir des instructions, consultez la section "Ajout d'un ordinateur à la liste des hôtes approuvés" ci-dessous.

  • 2. Utilisez le paramètre Credential dans toutes les commandes distantes.

    Cela est nécessaire même si vous envoyez les informations d'identification de l'utilisateur actuel.

CONNEXION À DISTANCE DEPUIS UN ORDINATEUR BASÉ SUR UN GROUPE DE TRAVAIL

        ERROR:  The WinRM client cannot process the request. If the
        authentication scheme is different from Kerberos, or if the client
        computer is not joined to a domain, then HTTPS transport must be used
        or the destination machine must be added to the TrustedHosts
        configuration setting.

Quand l'ordinateur local ne se trouve pas dans un domaine, la procédure suivante est requise pour la communication à distance.

  • 1. Configurez l'ordinateur pour le transport HTTPS ou ajoutez le nom des ordinateurs distants à la liste des hôtes approuvés sur l'ordinateur local.

    Pour obtenir des instructions, consultez la section "Ajout d'un ordinateur à la liste des hôtes approuvés" ci-dessous.

  • 2. Vérifiez qu'un mot de passe est défini sur l'ordinateur basé sur un groupe de travail. Si aucun mot de passe n'est défini ou si la valeur de mot de passe est vide, vous ne pourrez pas exécuter de commandes distantes.

    Pour définir le mot de passe de votre compte d'utilisateur, accédez aux Comptes d'utilisateurs dans le Panneau de configuration.

  • 3. Utilisez le paramètre Credential dans toutes les commandes distantes.

    Cela est nécessaire même si vous envoyez les informations d'identification de l'utilisateur actuel.

AJOUT D'UN ORDINATEUR À LA LISTE DES HÔTES APPROUVÉS

L'élément TrustedHosts peut contenir une liste de noms d'ordinateurs, d'adresses IP et de noms de domaine complets séparés par des virgules. Les caractères génériques sont autorisés.

Pour afficher ou modifier la liste des hôtes approuvés, utilisez le lecteur WSMan:. L'élément TrustedHost se trouve sous le nœud WSMan:\localhost\Client.

Seuls les membres du groupe Administrateurs de l'ordinateur peuvent modifier la liste des hôtes approuvés sur l'ordinateur.

Attention : La valeur que vous définissez pour l'élément TrustedHosts affecte tous les utilisateurs de l'ordinateur.

Pour afficher la liste des hôtes approuvés, utilisez la commande suivante :

        Get-Item wsman:\localhost\Client\TrustedHosts

Vous pouvez également utiliser l'applet de commande Set-Location (alias = cd) pour parcourir le lecteur WSMan: jusqu'à l'emplacement. Par exemple : "cd WSMan:\localhost\Client; dir".

Pour ajouter l'ensemble des ordinateurs à la liste des hôtes approuvés, utilisez la commande suivante, qui place la valeur * (tout) dans ComputerName :

        Set-Item wsman:localhost\client\trustedhosts -Value *

Vous pouvez également utiliser un caractère générique (*) pour ajouter tous les ordinateurs d'un domaine à la liste des hôtes approuvés. Par exemple, la commande suivante ajoute tous les ordinateurs du domaine Fabrikam à la liste des hôtes approuvés.

        Set-Item wsman:localhost\client\trustedhosts *.fabrikam.com

Pour ajouter le nom de certains ordinateurs à la liste des hôtes approuvés, utilisez le format de commande suivant :

        Set-Item wsman:\localhost\Client\TrustedHosts -Value <ComputerName>[,<ComputerName>]

où chaque valeur <ComputerName> doit avoir le format suivant :

        <Computer>.<Domain>.<Company>.<top-level-domain>

Par exemple :

        Set-Item wsman:\localhost\Client\TrustedHosts -Value Server01.Domain01.Fabrikam.com

Pour ajouter un nom d'ordinateur à une liste existante d'hôtes approuvés, enregistrez d'abord la valeur actuelle dans une variable, puis définissez la valeur sur une liste séparée par des virgules comprenant les valeurs actuelles et nouvelles.

Par exemple, pour ajouter l'ordinateur Server01 à une liste existante d'hôtes approuvés, utilisez la commande suivante :

        $curValue = (Get-Item wsman:\localhost\Client\TrustedHosts).value

        Set-Item wsman:\localhost\Client\TrustedHosts -Value "$curValue, Server01.Domain01.Fabrikam.com"

Pour ajouter les adresses IP de certains ordinateurs à la liste des hôtes approuvés, utilisez le format de commande suivant :

        Set-Item wsman:\localhost\Client\TrustedHosts -Value <IP Address>

Par exemple :

        Set-Item wsman:\localhost\Client\TrustedHosts -Value 172.16.0.0

Pour ajouter un ordinateur à la liste des hôtes approuvés d'un ordinateur distant, utilisez l'applet de commande Connect-WSMan pour ajouter un nœud pour l'ordinateur distant au lecteur WSMan: sur l'ordinateur local. Ensuite, utilisez une commande Set-Item pour ajouter l'ordinateur.

Pour plus d'informations sur l'applet de commande Connect-WSMan, consultez Connect-WSMan.

RÉSOLUTION DES PROBLÈMES DE CONFIGURATION DES ORDINATEURS

Cette section traite des problèmes de communication à distance liés à certaines configurations d'ordinateur, de domaine ou d'entreprise.

CONFIGURATION DE LA COMMUNICATION À DISTANCE SUR D'AUTRES PORTS

        ERROR:  The connection to the specified remote host was refused. Verify
        that the WS-Management service is running on the remote host and 
        configured to listen for requests on the correct port and HTTP URL.

Par défaut, la communication à distance Windows PowerShell utilise le port 80 pour le transport HTTP. Le port par défaut est utilisé chaque fois que l'utilisateur ne spécifie pas le paramètre Port ou ConnectionURI dans une commande distante.

Pour modifier le port par défaut que Windows PowerShell utilise, utilisez l'applet de commande Set-Item sur le lecteur WSMan: pour modifier la valeur Port du nœud terminal d'écouteur.

Par exemple, la commande suivante fait du port 8080 le port par défaut.

        Set-Item wsman:\localhost\listener\listener*\port -Value 8080

CONFIGURATION DE LA COMMUNICATION À DISTANCE AVEC UN SERVEUR PROXY

        ERROR: The client cannot connect to the destination specified in the
        request. Verify that the service on the destination is running and is
        accepting requests.

Étant donné que la communication à distance Windows PowerShell utilise le protocole HTTP, elle est affectée par les paramètres de proxy HTTP. Dans les entreprises qui possèdent des serveurs proxy, les utilisateurs ne peuvent pas accéder directement à un ordinateur distant Windows PowerShell.

Pour résoudre ce problème, utilisez des paramètres de proxy dans votre commande distante. Les paramètres disponibles sont les suivants :

  • -- ProxyAccessType

  • -- ProxyAuthentication

  • -- ProxyCredential

Pour définir ces options pour une commande particulière, utilisez la procédure suivante :

  • 1. Utilisez les paramètres ProxyAccessType, ProxyAuthentication et ProxyCredential de l'applet de commande New-PSSessionOption pour créer un objet d'option de session avec les paramètres de proxy de votre entreprise. Enregistrez l'objet d'option dans une variable.

  • 2. Utilisez la variable qui contient l'objet de l'option en tant que valeur du paramètre SessionOption d'une applet de commande New-PSSession, Enter-PSSession ou Invoke-Command.

Par exemple, la commande suivante crée un objet d'option de session avec les options de session proxy, puis utilise l'objet pour créer une session à distance.

        C:\PS> $SessionOption = New-PSSessionOption -ProxyAccessType IEConfig `
                -ProxyAuthentication Negotiate -ProxyCredential Domain01\User01

        C:\PS> New-PSSession -ConnectionURI https://www.fabrikam.com

Pour plus d'informations sur l'applet de commande New-PSSessionOption, consultez New-PSSessionOption.

Pour définir ces options pour toutes les commandes distantes de la session active, utilisez l'objet d'option que New-PSSessionOption crée dans la valeur de la variable de préférence $PSSessionOption. Pour plus d'informations sur la variable de préférence $PSSessionOption, consultez about_Preference_Variables.

Pour définir ces options pour toutes les commandes distantes de toutes les sessions Windows PowerShell de l'ordinateur local, ajoutez la variable de préférence $PSSessionOption à votre profil Windows PowerShell. Pour plus d'informations sur les profils Windows PowerShell, consultez about_Profiles.

DÉTECTION D'UNE SESSION 32 BITS SUR UN ORDINATEUR 64 BITS

        ERROR: The term "<tool-Name>" is not recognized as the name of a cmdlet,
        function, script file, or operable program. Check the spelling of the
        name, or if a path was included, verify that the path is correct and try
        again.

Si l'ordinateur distant exécute une version 64 bits de Windows et si la commande distante utilise une configuration de session de 32 bits, telle que Microsoft.PowerShell32, la Gestion à distance de Windows chargera un processus WOW64 et Windows redirigera automatiquement toutes les références au répertoire %Windir%\System32 vers le répertoire %windir%\SysWOW64.

Par conséquent, si vous essayez d'utiliser des outils du répertoire System32 qui n'ont pas d'équivalents dans le répertoire SysWow64 (par exemple, Defrag.exe), les outils seront introuvables dans le répertoire.

Pour connaître l'architecture de processeur qui est utilisée dans la session, utilisez la valeur de la variable d'environnement PROCESSOR_ARCHITECTURE. La commande suivante recherche l'architecture de processeur de la session dans la variable $s.

        C:\PS> $s = New-PSSession -ComputerName Server01 -configurationName CustomShell

        C:\PS> invoke-command -session $s {$env:PROCESSOR_ARCHITECTURE}
        x86

Pour plus d'informations sur les configurations de session, consultez about_session_configurations.

RÉSOLUTION DES PROBLÈMES LIÉS AUX STRATÉGIES ET AUX PRÉFÉRENCES

Cette section traite des problèmes de communication à distance qui sont liés aux stratégies et aux préférences définies sur les ordinateurs locaux et distants.

MODIFICATION DE LA STRATÉGIE D'EXÉCUTION POUR IMPORT-PSSESSION ET IMPORT-MODULE

        ERROR: Import-Module: File <filename> cannot be loaded because the
        execution of scripts is disabled on this system.

Les applets de commande Import-PSSession et Export-PSSession créent des modules qui contiennent des fichiers de script non signés et des fichiers de mise en forme.

Pour importer les modules qui sont créés par ces applets de commande, à l'aide d'Import-PSSession ou d'Import-Module, la stratégie d'exécution de la session active ne peut pas avoir les valeurs Restricted et AllSigned. Pour plus d'informations sur les stratégies d'exécution Windows PowerShell, consultez about_Execution_Policies.

Pour importer les modules sans modifier la stratégie d'exécution pour l'ordinateur local qui est défini dans le Registre, utilisez le paramètre Scope de Set-ExecutionPolicy pour définir une stratégie d'exécution moins restrictive pour un seul processus.

Par exemple, la commande suivante démarre un processus avec la stratégie d'exécution RemoteSigned. La modification de la stratégie d'exécution affecte uniquement le processus en cours et ne modifie pas le paramètre du Registre ExecutionPolicy Windows PowerShell.

        Set-ExecutionPolicy -Scope process -ExecutionPolicy RemoteSigned

Vous pouvez également utiliser le paramètre ExecutionPolicy de PowerShell.exe pour démarrer une session unique avec une stratégie d'exécution moins restrictive.

        PowerShell.exe -ExecutionPolicy RemoteSigned

Pour plus d'informations sur les applets de commande, consultez Import-PSSession, Export-PSSession et Import-Module. Pour plus d'informations sur les stratégies d'exécution, consultez about_Execution_Policies. Pour plus d'informations sur les options d'aide de la console PowerShell.exe, tapez "PowerShell.exe -?".

DÉFINITION ET MODIFICATION DES QUOTAS

        ERROR: The total data received from the remote client exceeded allowed
        maximum.

Vous pouvez utiliser des quotas pour protéger l'ordinateur local et l'ordinateur distant d'une utilisation excessive des ressources, qu'elle soit accidentelle ou malveillante.

Les quotas suivants sont disponibles dans la configuration de base.

  • -- Le fournisseur WSMan (WSMan:) fournit plusieurs paramètres de quota, tels que les paramètres MaxEnvelopeSizeKB et MaxProviderRequests du nœud WSMan:\<Nom_Ordinateur> et les paramètres MaxConcurrentOperations, MaxConcurrentOperationsPerUser et MaxConnections du nœud WSMan:\<Nom_Ordinateur>\Service.

  • -- Vous pouvez protéger l'ordinateur local en utilisant les paramètres MaximumReceivedDataSizePerCommand et MaximumReceivedObjectSize de l'applet de commande New-PSSessionOption et la variable de préférence $PSSessionOption.

  • -- Vous pouvez protéger l'ordinateur distant en ajoutant des restrictions aux configurations de session, par exemple, à l'aide des paramètres MaximumReceivedDataSizePerCommandMB et MaximumReceivedObjectSizeMB de l'applet de commande Register-PSSessionConfiguration.

Quand les quotas sont en conflit avec une commande, Windows PowerShell génère une erreur.

Pour résoudre cette erreur, modifiez la commande distante pour qu'elle respecte le quota. Vous pouvez aussi déterminer la source du quota, puis augmenter celui-ci pour permettre à la commande de s'exécuter.

Par exemple, la commande suivante augmente le quota de taille d'objet dans la configuration de session Microsoft.PowerShell sur l'ordinateur distant, en le faisant passer de 10 Mo (valeur par défaut) à 11 Mo.

        Set-PSSessionConfiguration -Name microsoft.PowerShell ` 
            -MaximumReceivedObjectSizeMB 11 -Force

Pour plus d'informations sur l'applet de commande New-PSSessionOption, consultez New-PSSessionOption.

Pour plus d'informations sur les quotas de la Gestion à distance de Windows, consultez la rubrique d'aide concernant le fournisseur WSMan (tapez "Get-Help WSMan").

RÉSOLUTION DES ERREURS LIÉES AUX DÉLAIS D'EXPIRATION

        ERROR: The WS-Management service cannot complete the operation within
        the time specified in OperationTimeout.

Vous pouvez utiliser des délais d'expiration pour protéger l'ordinateur local et l'ordinateur distant d'une utilisation excessive des ressources, qu'elle soit accidentelle ou malveillante. Quand des délais d'expiration sont définis sur l'ordinateur local et l'ordinateur distant, Windows PowerShell utilise les paramètres de délai d'expiration les plus courts.

Les délais d'expiration suivants sont disponibles dans la configuration de base.

  1. -- Le fournisseur WSMan (WSMan:) fournit plusieurs paramètres de délai d'expiration côté client et côté service, tels que le paramètre MaxTimeoutms du nœud WSMan:\<Nom_Ordinateur> et les paramètres EnumerationTimeoutms et MaxPacketRetrievalTimeSeconds du nœud WSMan:\<Nom_Ordinateur>\Service.

  2. -- Vous pouvez protéger l'ordinateur local en utilisant les paramètres CancelTimeout, IdleTimeout, OpenTimeout et OperationTimeout de l'applet de commande New-PSSessionOption et la variable de préférence $PSSessionOption.

  3. -- Vous pouvez également protéger l'ordinateur distant en définissant des valeurs de délai d'expiration par programmation dans la configuration de la session.

Quand une valeur de délai d'expiration ne permet pas à une opération de se terminer, Windows PowerShell met fin à l'opération, puis génère une erreur.

Pour résoudre cette erreur, modifiez la commande pour qu'elle puisse se terminer dans l'intervalle de temps défini ou déterminez la source de la limite de délai d'expiration, puis augmentez l'intervalle de délai d'expiration pour permettre à l'exécution de la commande de se terminer.

Par exemple, les commandes suivantes utilisent l'applet de commande New-PSSessionOption pour créer un objet d'option de session avec une valeur OperationTimeout de 4 minutes (en ms), puis utilisent l'objet d'option de session pour créer une session à distance.

        C:\PS> $pso = New-PSSessionoption -OperationTimeout 240000

        C:\PS> New-PSSession -ComputerName Server01 -sessionOption $pso

Pour plus d'informations sur les délais d'expiration de la Gestion à distance de Windows, consultez la rubrique d'aide concernant le fournisseur WSMan (tapez "Get-Help WSMan").

Pour plus d'informations sur l'applet de commande New-PSSessionOption, consultez New-PSSessionOption.

RÉSOLUTION DES PROBLÈMES LIÉS À UNE ABSENCE DE RÉPONSE

Cette section traite des problèmes de communication à distance qui empêchent l'exécution d'une commande de se terminer, et empêchent ou retardent le retour de l'invite Windows PowerShell.

INTERRUPTION D'UNE COMMANDE

Certains programmes Windows natifs (tels que les programmes avec une interface utilisateur, les applications de console de type invite ou les applications de console qui utilisent l'API de console Win32) ne fonctionnent pas correctement sur l'hôte distant Windows PowerShell.

Quand vous utilisez ces programmes, vous pouvez constater un comportement inattendu, tel qu'une absence de sortie, une sortie partielle ou une commande distante qui ne se termine pas.

Pour mettre fin à un programme qui ne répond pas, appuyez sur CTRL + C. Pour afficher les erreurs qui ont été signalées, tapez "$error" sur l'hôte local et dans la session à distance.

RÉCUPÉRATION APRÈS UN ÉCHEC D'OPÉRATION

         ERROR: The I/O operation has been aborted because of either a thread exit
         or an  application request.

Cette erreur est retournée quand une opération s'arrête avant la fin. En général, cela se produit quand le service Gestion à distance de Windows s'arrête ou redémarre alors que d'autres opérations de gestion à distance sont en cours.

Pour résoudre ce problème, vérifiez que le service Gestion à distance de Windows est en cours d'exécution, puis réessayez la commande.

  • 1. Démarrez Windows PowerShell avec l'option Exécuter en tant qu'administrateur.

  • 2. Exécutez la commande suivante :

             Start-Service WinRM
    
  • 3. Réexécutez la commande qui a généré l'erreur.

VOIR AUSSI

Version en ligne : https://technet.microsoft.com/library/hh847850(v=wps.630).aspx

about_Remote

about_Remote_Requirements

about_Remote_Variables