À propos des exigences à distanceAbout Remote Requirements

DESCRIPTION COURTESHORT DESCRIPTION

Décrit la configuration requise et la configuration requise pour l’exécution de commandes distantes dans PowerShell.Describes the system requirements and configuration requirements for running remote commands in PowerShell.

DESCRIPTION DÉTAILLÉELONG DESCRIPTION

Cette rubrique décrit la configuration requise, les exigences des utilisateurs et les ressources requises pour établir des connexions à distance et exécuter des commandes distantes dans PowerShell.This topic describes the system requirements, user requirements, and resource requirements for establishing remote connections and running remote commands in PowerShell. Il fournit également des instructions pour la configuration des opérations à distance.It also provides instructions for configuring remote operations.

Remarque : de nombreuses cmdlets (y compris les applets de commande obtenir-service, obtenir-traiter, obtenir-WMIObject, obtenir-EventLog et Get-WinEvent) obtiennent des objets à partir d’ordinateurs distants à l’aide des méthodes de Microsoft .NET Framework pour récupérer les objets.Note: Many cmdlets (including the Get-Service, Get-Process, Get-WMIObject, Get-EventLog, and Get-WinEvent cmdlets) get objects from remote computers by using Microsoft .NET Framework methods to retrieve the objects. Ils n’utilisent pas l’infrastructure de communication à distance PowerShell.They do not use the PowerShell remoting infrastructure. Les conditions requises dans ce document ne s’appliquent pas à ces applets de commande.The requirements in this document do not apply to these cmdlets.

Pour rechercher les applets de commande qui ont un paramètre ComputerName, mais n’utilisez pas la communication à distance PowerShell, lisez la description du paramètre ComputerName des applets de commande.To find the cmdlets that have a ComputerName parameter but do not use PowerShell remoting, read the description of the ComputerName parameter of the cmdlets.

CONFIGURATION SYSTÈME REQUISESYSTEM REQUIREMENTS

Pour exécuter des sessions à distance sur Windows PowerShell 3,0, les ordinateurs locaux et distants doivent disposer des éléments suivants :To run remote sessions on Windows PowerShell 3.0, the local and remote computers must have the following:

  • Windows PowerShell 3,0 ou version ultérieureWindows PowerShell 3.0 or later
  • Le Microsoft .NET Framework 4 ou version ultérieureThe Microsoft .NET Framework 4 or later
  • Windows Remote Management 3,0Windows Remote Management 3.0

Pour exécuter des sessions à distance sur Windows PowerShell 2,0, les ordinateurs locaux et distants doivent disposer des éléments suivants :To run remote sessions on Windows PowerShell 2.0, the local and remote computers must have the following:

  • Windows PowerShell 2,0 ou version ultérieureWindows PowerShell 2.0 or later
  • Le Microsoft .NET Framework 2,0 ou version ultérieureThe Microsoft .NET Framework 2.0 or later
  • Windows Remote Management 2,0Windows Remote Management 2.0

Vous pouvez créer des sessions à distance entre des ordinateurs exécutant Windows PowerShell 2,0 et Windows PowerShell 3,0.You can create remote sessions between computers running Windows PowerShell 2.0 and Windows PowerShell 3.0. Toutefois, les fonctionnalités qui s’exécutent uniquement sur Windows PowerShell 3,0, telles que la possibilité de se déconnecter et de se reconnecter aux sessions, sont disponibles uniquement lorsque les deux ordinateurs exécutent Windows PowerShell 3,0.However, features that run only on Windows PowerShell 3.0, such as the ability to disconnect and reconnect to sessions, are available only when both computers are running Windows PowerShell 3.0.

Pour rechercher le numéro de version d’une version installée de PowerShell, utilisez la variable automatique $PSVersionTable.To find the version number of an installed version of PowerShell, use the $PSVersionTable automatic variable.

Windows Remote Management (WinRM) 3,0 et Microsoft .NET Framework 4 sont inclus dans Windows 8, Windows Server 2012 et les versions plus récentes du système d’exploitation Windows.Windows Remote Management (WinRM) 3.0 and Microsoft .NET Framework 4 are included in Windows 8, Windows Server 2012, and newer releases of the Windows operating system. WinRM 3,0 est inclus dans Windows Management Framework 3,0 pour les systèmes d’exploitation plus anciens.WinRM 3.0 is included in Windows Management Framework 3.0 for older operating systems. Si l’ordinateur ne dispose pas de la version requise de WinRM ou du Framework Microsoft .NET, l’installation échoue.If the computer does not have the required version of WinRM or the Microsoft .NET Framework, the installation fails.

AUTORISATIONS DE L’UTILISATEURUSER PERMISSIONS

Pour créer des sessions à distance et exécuter des commandes à distance, par défaut, l’utilisateur actuel doit être membre du groupe Administrateurs sur l’ordinateur distant ou fournir les informations d’identification d’un administrateur.To create remote sessions and run remote commands, by default, the current user must be a member of the Administrators group on the remote computer or provide the credentials of an administrator. Sinon, la commande échoue.Otherwise, the command fails.

Les autorisations requises pour créer des sessions et exécuter des commandes sur un ordinateur distant (ou dans une session à distance sur l’ordinateur local) sont établies par la configuration de session (également appelée « point de terminaison ») sur l’ordinateur distant auquel la session se connecte.The permissions required to create sessions and run commands on a remote computer (or in a remote session on the local computer) are established by the session configuration (also known as an "endpoint") on the remote computer to which the session connects. Plus précisément, le descripteur de sécurité de la configuration de session détermine qui a accès à la configuration de session et qui peut l’utiliser pour se connecter.Specifically, the security descriptor on the session configuration determines who has access to the session configuration and who can use it to connect.

Les descripteurs de sécurité sur les configurations de session par défaut, Microsoft. PowerShell, Microsoft. PowerShell32 et Microsoft. PowerShell. Workflow, autorisent l’accès uniquement aux membres du groupe administrateurs.The security descriptors on the default session configurations, Microsoft.PowerShell, Microsoft.PowerShell32, and Microsoft.PowerShell.Workflow, allow access only to members of the Administrators group.

Si l’utilisateur actuel n’est pas autorisé à utiliser la configuration de session, la commande permettant d’exécuter une commande (qui utilise une session temporaire) ou de créer une session persistante sur l’ordinateur distant échoue.If the current user doesn't have permission to use the session configuration, the command to run a command (which uses a temporary session) or create a persistent session on the remote computer fails. L’utilisateur peut utiliser le paramètre ConfigurationName des applets de commande qui créent des sessions pour sélectionner une autre configuration de session, si celle-ci est disponible.The user can use the ConfigurationName parameter of cmdlets that create sessions to select a different session configuration, if one is available.

Les membres du groupe Administrateurs sur un ordinateur peuvent déterminer qui est autorisé à se connecter à distance à l’ordinateur en modifiant les descripteurs de sécurité sur les configurations de session par défaut et en créant de nouvelles configurations de session avec des descripteurs de sécurité différents.Members of the Administrators group on a computer can determine who has permission to connect to the computer remotely by changing the security descriptors on the default session configurations and by creating new session configurations with different security descriptors.

Pour plus d’informations sur les configurations de session, consultez about_session_configurations.For more information about session configurations, see about_Session_Configurations.

EMPLACEMENTS RÉSEAU WINDOWSWINDOWS NETWORK LOCATIONS

À compter de Windows PowerShell 3,0, l’applet de commande Enable-PSRemoting peut activer la communication à distance sur les versions client et serveur de Windows sur des réseaux privés, de domaine et publics.Beginning in Windows PowerShell 3.0, the Enable-PSRemoting cmdlet can enable remoting on client and server versions of Windows on private, domain, and public networks.

Sur les versions serveur de Windows avec des réseaux privés et de domaine, l’applet de commande Enable-PSRemoting crée des règles de pare-feu qui autorisent l’accès à distance illimité.On server versions of Windows with private and domain networks, the Enable-PSRemoting cmdlet creates firewall rules that allow unrestricted remote access. Il crée également une règle de pare-feu pour les réseaux publics qui autorise l’accès à distance uniquement à partir d’ordinateurs situés dans le même sous-réseau local.It also creates a firewall rule for public networks that allows remote access only from computers in the same local subnet. Cette règle de pare-feu de sous-réseau local est activée par défaut sur les versions serveur de Windows sur les réseaux publics, mais Enable-PSRemoting réapplique la règle en cas de modification ou de suppression.This local subnet firewall rule is enabled by default on server versions of Windows on public networks, but Enable-PSRemoting reapplies the rule in case it was changed or deleted.

Sur les versions client de Windows avec des réseaux privés et de domaine, par défaut, l’applet de commande Enable-PSRemoting crée des règles de pare-feu qui autorisent l’accès à distance illimité.On client versions of Windows with private and domain networks, by default, the Enable-PSRemoting cmdlet creates firewall rules that allow unrestricted remote access.

Pour activer la communication à distance sur les versions client de Windows avec des réseaux publics, utilisez le paramètre SkipNetworkProfileCheck de l’applet de commande Enable-PSRemoting.To enable remoting on client versions of Windows with public networks, use the SkipNetworkProfileCheck parameter of the Enable-PSRemoting cmdlet. Il crée une règle de pare-feu qui autorise l’accès à distance uniquement à partir d’ordinateurs situés dans le même sous-réseau local.It creates a firewall rule that allows remote access only from computers in the same local subnet.

Pour supprimer la restriction de sous-réseau local sur les réseaux publics et autoriser l’accès à distance à partir de tous les emplacements sur les versions client et serveur de Windows, utilisez l’applet de commande Set-NetFirewallRule dans le module netsecurity.To remove the local subnet restriction on public networks and allow remote access from all locations on client and server versions of Windows, use the Set-NetFirewallRule cmdlet in the NetSecurity module. Exécutez la commande suivante :Run the following command:

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

Dans Windows PowerShell 2,0, sur les versions serveur de Windows, Enable-PSRemoting crée des règles de pare-feu qui autorisent l’accès à distance sur tous les réseaux.In Windows PowerShell 2.0, on server versions of Windows, Enable-PSRemoting creates firewall rules that permit remote access on all networks.

Dans Windows PowerShell 2,0, sur les versions client de Windows, Enable-PSRemoting ne crée des règles de pare-feu que sur les réseaux privés et de domaine.In Windows PowerShell 2.0, on client versions of Windows, Enable-PSRemoting creates firewall rules only on private and domain networks. Si l’emplacement réseau est public, Enable-PSRemoting échoue.If the network location is public, Enable-PSRemoting fails.

EXÉCUTER EN TANT QU’ADMINISTRATEURRUN AS ADMINISTRATOR

Des privilèges d’administrateur sont requis pour les opérations de communication à distance suivantes :Administrator privileges are required for the following remoting operations:

  • Établissement d’une connexion à distance à l’ordinateur local.Establishing a remote connection to the local computer. Ce scénario est communément appelé « bouclage ».This is commonly known as a "loopback" scenario.

  • Gestion des configurations de session sur l’ordinateur local.Managing session configurations on the local computer.

  • Affichage et modification des paramètres de WS-Management sur l’ordinateur local.Viewing and changing WS-Management settings on the local computer. Il s’agit des paramètres du nœud LocalHost du lecteur WSMAN :.These are the settings in the LocalHost node of the WSMAN: drive.

Pour effectuer ces tâches, vous devez démarrer PowerShell avec l’option « Exécuter en tant qu’administrateur », même si vous êtes membre du groupe Administrateurs sur l’ordinateur local.To perform these tasks, you must start PowerShell with the "Run as administrator" option even if you are a member of the Administrators group on the local computer.

Dans Windows 7 et Windows Server 2008 R2, pour démarrer Windows PowerShell avec l’option « Exécuter en tant qu’administrateur » :In Windows 7 and in Windows Server 2008 R2, to start Windows PowerShell with the "Run as administrator" option:

  1. Cliquez sur Démarrer, sur tous les programmes, sur accessoires, puis sur le dossier Windows PowerShell.Click Start, click All Programs, click Accessories, and then click the Windows PowerShell folder.
  2. Cliquez avec le bouton droit sur Windows PowerShell, puis cliquez sur Exécuter en tant qu’administrateur.Right-click Windows PowerShell, and then click "Run as administrator".

Pour démarrer Windows PowerShell avec l’option « Exécuter en tant qu’administrateur » :To start Windows PowerShell with the "Run as administrator" option:

  1. Cliquez sur Démarrer, sur tous les programmes, puis sur le dossier Windows PowerShell.Click Start, click All Programs, and then click the Windows PowerShell folder.
  2. Cliquez avec le bouton droit sur Windows PowerShell, puis cliquez sur Exécuter en tant qu’administrateur.Right-click Windows PowerShell, and then click "Run as administrator".

L’option « Exécuter en tant qu’administrateur » est également disponible dans d’autres entrées de l’Explorateur Windows pour Windows PowerShell, y compris les raccourcis.The "Run as administrator" option is also available in other Windows Explorer entries for Windows PowerShell, including shortcuts. Il vous suffit de cliquer avec le bouton droit sur l’élément, puis de cliquer sur « Exécuter en tant qu’administrateur ».Just right-click the item, and then click "Run as administrator".

Quand vous démarrez Windows PowerShell à partir d’un autre programme, tel que Cmd.exe, utilisez l’option « Exécuter en tant qu’administrateur » pour démarrer le programme.When you start Windows PowerShell from another program such as Cmd.exe, use the "Run as administrator" option to start the program.

COMMENT CONFIGURER VOTRE ORDINATEUR POUR LA COMMUNICATION À DISTANCEHOW TO CONFIGURE YOUR COMPUTER FOR REMOTING

Les ordinateurs exécutant toutes les versions de Windows prises en charge peuvent établir des connexions à distance à et exécuter des commandes distantes dans PowerShell sans aucune configuration.Computers running all supported versions of Windows can establish remote connections to and run remote commands in PowerShell without any configuration. Toutefois, pour recevoir des connexions et autoriser les utilisateurs à créer des sessions PowerShell locales et distantes gérées par l’utilisateur (« sessions PSSession ») et à exécuter des commandes sur l’ordinateur local, vous devez activer la communication à distance PowerShell sur l’ordinateur.However, to receive connections, and allow users to create local and remote user-managed PowerShell sessions ("PSSessions") and run commands on the local computer, you must enable PowerShell remoting on the computer.

Windows Server 2012 et les versions plus récentes de Windows Server sont activés par défaut pour la communication à distance PowerShell.Windows Server 2012 and newer releases of Windows Server are enabled for PowerShell remoting by default. Si les paramètres sont modifiés, vous pouvez restaurer les paramètres par défaut en exécutant l’applet de commande Enable-PSRemoting.If the settings are changed, you can restore the default settings by running the Enable-PSRemoting cmdlet.

Sur toutes les autres versions prises en charge de Windows, vous devez exécuter l’applet de commande Enable-PSRemoting pour activer la communication à distance PowerShell.On all other supported versions of Windows, you need to run the Enable-PSRemoting cmdlet to enable PowerShell remoting.

Les fonctionnalités de communication à distance de PowerShell sont prises en charge par le service WinRM, qui est l’implémentation Microsoft du protocole WS-Management (Web Services for Management).The remoting features of PowerShell are supported by the WinRM service, which is the Microsoft implementation of the Web Services for Management (WS-Management) protocol. Lorsque vous activez la communication à distance PowerShell, vous modifiez la configuration par défaut de WS-Management et ajoutez la configuration du système qui permet aux utilisateurs de se connecter à WS-Management.When you enable PowerShell remoting, you change the default configuration of WS-Management and add system configuration that allow users to connect to WS-Management.

Pour configurer PowerShell pour recevoir des commandes à distance :To configure PowerShell to receive remote commands:

  1. Démarrez PowerShell avec l’option « Exécuter en tant qu’administrateur ».Start PowerShell with the "Run as administrator" option.
  2. À l’invite de commandes, tapez : Enable-PSRemotingAt the command prompt, type: Enable-PSRemoting

Pour vérifier que la communication à distance est correctement configurée, exécutez une commande de test telle que la commande suivante, qui crée une session à distance sur l’ordinateur local.To verify that remoting is configured correctly, run a test command such as the following command, which creates a remote session on the local computer.

New-PSSession

Si la communication à distance est correctement configurée, la commande crée une session sur l’ordinateur local et retourne un objet qui représente la session.If remoting is configured correctly, the command will create a session on the local computer and return an object that represents the session. La sortie doit ressembler à l’exemple de sortie suivant :The output should resemble the following sample output:

Id Name        ComputerName    State    ConfigurationName
-- ----        ------------    -----    -----
1  Session1    localhost       Opened   Microsoft.PowerShell

Si la commande échoue, pour obtenir de l’aide, consultez about_Remote_Troubleshooting.If the command fails, for assistance, see about_Remote_Troubleshooting.

COMPRENDRE LES STRATÉGIESUNDERSTAND POLICIES

Lorsque vous travaillez à distance, vous utilisez deux instances de PowerShell, l’une sur l’ordinateur local et l’autre sur l’ordinateur distant.When you work remotely, you use two instances of PowerShell, one on the local computer and one on the remote computer. Par conséquent, votre travail est affecté par les stratégies Windows et les stratégies PowerShell sur les ordinateurs locaux et distants.As a result, your work is affected by the Windows policies and the PowerShell policies on the local and remote computers.

En général, avant de vous connecter et lorsque vous établissez la connexion, les stratégies sur l’ordinateur local sont activées.In general, before you connect and as you are establishing the connection, the policies on the local computer are in effect. Lorsque vous utilisez la connexion, les stratégies sur l’ordinateur distant sont en vigueur.When you are using the connection, the policies on the remote computer are in effect.

Limitations de l’authentification de base sur Linux et macOSBasic Authentication Limitations on Linux and macOS

Lors de la connexion d’un système Linux ou macOS à Windows, l’authentification de base sur HTTP n’est pas prise en charge.When connecting from a Linux or macOS system to Windows, Basic Authentication over HTTP is not supported. L’authentification de base peut être utilisée sur HTTPs en installant un certificat sur le serveur cible.Basic Authentication can be used over HTTPS by installing a certificate on the target server. Le certificat doit avoir un nom CN qui correspond au nom d’hôte, n’a pas expiré ou n’a pas été révoqué.The certificate must have a CN name that matches the hostname, is not expired or revoked. Un certificat auto-signé peut être utilisé à des fins de test.A self-signed certificate may be used for testing purposes.

Pour plus d’informations, consultez procédure : configurer WINRM pour HTTPS .See How To: Configure WINRM for HTTPS for additional details.

La commande suivante, exécutée à partir d’une invite de commandes avec élévation de privilèges, configure l’écouteur HTTPs sur Windows avec le certificat installé.The following command, run from an elevated command prompt, will configure the HTTPS listener on Windows with the installed certificate.

$hostinfo = '@{Hostname="<DNS_NAME>"; CertificateThumbprint="<THUMBPRINT>"}'
winrm create winrm/config/Listener?Address=*+Transport=HTTPS $hostinfo

Sur le côté Linux ou macOS, sélectionnez de base pour authentification et-UseSSl.On the Linux or macOS side, select Basic for authentication and -UseSSl.

Remarque : l’authentification de base ne peut pas être utilisée avec les comptes de domaine ; un compte local est requis et le compte doit se trouver dans le groupe administrateurs.NOTE: Basic authentication cannot be used with domain accounts; a local account is required and the account must be in the Administrators group.

# The specified local user must have administrator rights on the target machine.
# Specify the unqualified username.
$cred = Get-Credential username
$session = New-PSSession -Computer <hostname> -Credential $cred `
  -Authentication Basic -UseSSL

Une alternative à l’authentification de base sur HTTPs est Negotiate.An alternative to Basic Authentication over HTTPS is Negotiate. Cela entraîne l’authentification NTLM entre le client et le serveur, et la charge utile est chiffrée via HTTP.This results in NTLM authentication between the client and server and payload is encrypted over HTTP.

L’exemple suivant illustre l’utilisation de Negotiate avec New-PSSession :The following illustrates using Negotiate with New-PSSession:

# The specified user must have administrator rights on the target machine.
$cred = Get-Credential username@hostname
$session = New-PSSession -Computer <hostname> -Credential $cred `
  -Authentication Negotiate

Notes

Windows Server nécessite un paramètre de Registre supplémentaire pour permettre aux administrateurs, autres que l’administrateur intégré, de se connecter à l’aide de NTLM.Windows Server requires an additional registry setting to enable administrators, other than the built in administrator, to connect using NTLM. Reportez-vous au paramètre de Registre LocalAccountTokenFilterPolicy sous négocier l’authentification dans l’authentification pour les connexions à distanceRefer to the LocalAccountTokenFilterPolicy registry setting under Negotiate Authentication in Authentication for Remote Connections

VOIR AUSSISEE ALSO

about_Remoteabout_Remote

about_Remote_Variablesabout_Remote_Variables

about_PSSessionsabout_PSSessions

Invoke-CommandInvoke-Command

Enter-PSSessionEnter-PSSession

New-PSSessionNew-PSSession