Share via


Enable-PSRemoting

Configure l'ordinateur pour recevoir des commandes à distance.

Syntax

Enable-PSRemoting
      [-Force]
      [-SkipNetworkProfileCheck]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

Cette applet de commande est disponible uniquement sur la plateforme Windows.

L’applet Enable-PSRemoting de commande configure l’ordinateur pour recevoir les commandes à distance PowerShell envoyées à l’aide de la technologie WS-Management. WS-Management la communication à distance PowerShell basée est actuellement prise en charge uniquement sur la plateforme Windows.

La communication à distance PowerShell est activée par défaut sur les plateformes Windows Server. Vous pouvez utiliser Enable-PSRemoting pour activer la communication à distance PowerShell sur d’autres versions prises en charge de Windows et pour réactiver la communication à distance si elle est désactivée.

Vous ne devez exécuter cette commande qu’une seule fois sur chaque ordinateur qui recevra des commandes. Vous n’avez pas besoin de l’exécuter sur des ordinateurs qui envoient uniquement des commandes. Étant donné que la configuration démarre les écouteurs pour accepter les connexions à distance, il est prudent de l’exécuter uniquement là où cela est nécessaire.

L’activation de la communication à distance PowerShell sur les versions clientes de Windows lorsque l’ordinateur se trouve sur un réseau public est normalement interdite, mais vous pouvez ignorer cette restriction à l’aide du paramètre SkipNetworkProfileCheck . Pour plus d'informations, consultez la description du paramètre SkipNetworkProfileCheck.

Plusieurs installations PowerShell peuvent exister côte à côte sur un seul ordinateur. L’exécution Enable-PSRemoting configure un point de terminaison de communication à distance pour la version d’installation spécifique dans laquelle vous exécutez l’applet de commande. Par conséquent, si vous exécutez Enable-PSRemoting PowerShell 6.2, un point de terminaison de communication à distance est configuré qui exécute PowerShell 6.2. Si vous exécutez Enable-PSRemoting en exécutant PowerShell 7-preview, un point de terminaison de communication à distance est configuré qui exécute PowerShell 7-preview.

Enable-PSRemoting crée deux configurations de point de terminaison de communication à distance en fonction des besoins. Si les configurations de point de terminaison existent déjà, elles sont simplement activées. Les configurations créées sont identiques, mais ont des noms différents. L’un d’eux aura un nom simple correspondant à la version de PowerShell qui héberge la session. L’autre nom de configuration contient des informations plus détaillées sur la version de PowerShell qui héberge la session. Par exemple, lors de l’exécution Enable-PSRemoting dans PowerShell 6.2, vous obtenez deux points de terminaison configurés nommés PowerShell.6, PowerShell.6.2.2. Cela vous permet de créer une connexion à la dernière version de l’hôte PowerShell 6 en utilisant le nom simple PowerShell.6. Vous pouvez également vous connecter à une version d’hôte PowerShell spécifique en utilisant le nom plus long PowerShell.6.2.2.

Pour utiliser les points de terminaison de communication à distance nouvellement activés, vous devez les spécifier par nom avec le paramètre ConfigurationName lors de la création d’une connexion à distance à l’aide Invoke-Commanddes applets de commande ,New-PSSessionEnter-PSSession. Pour plus d’informations, consultez Exemple 4.

L’applet Enable-PSRemoting de commande effectue les opérations suivantes :

  • Exécute l’applet de commande Set-WSManQuickConfig , qui effectue les tâches suivantes :
    • Démarre le service WinRM.
    • Définit le type de démarrage du service WinRM sur automatique.
    • Crée un écouteur pour accepter les demandes sur n’importe quelle adresse IP.
    • Active une exception de pare-feu pour les communications WS-Management.
    • Crée les configurations de point de terminaison de session de nom simple et long si nécessaire.
    • Active toutes les configurations de session.
    • Modifie le descripteur de sécurité de toutes les configurations de session pour autoriser l’accès à distance.
  • Redémarre le service WinRM pour que les modifications précédentes prennent effet.

Pour exécuter cette applet de commande sur la plateforme Windows, démarrez PowerShell à l’aide de l’option Exécuter en tant qu’administrateur. Cette applet de commande n’est pas disponible sur les versions Linux ou MacOS de PowerShell.

Attention

Cette applet de commande n’affecte pas les configurations de point de terminaison distantes créées par Windows PowerShell. Elle affecte uniquement les points de terminaison créés avec PowerShell version 6 et ultérieure. Pour activer et désactiver les points de terminaison de communication à distance PowerShell hébergés par Windows PowerShell, exécutez l’applet Enable-PSRemoting de commande à partir d’une session Windows PowerShell.

Exemples

Exemple 1 : Configurer un ordinateur pour recevoir des commandes à distance

Cette commande configure l'ordinateur pour qu'il reçoive les commandes à distance.

Enable-PSRemoting

WARNING: PowerShell remoting has been enabled only for PowerShell Core configurations and does not
affect Windows PowerShell remoting configurations. Run this cmdlet in Windows PowerShell to affect
all PowerShell remoting configurations.

Exemple 2 : Configurer un ordinateur pour recevoir des commandes à distance sans invite de confirmation

Cette commande configure l'ordinateur pour qu'il reçoive les commandes à distance. Le paramètre Force supprime les invites de l’utilisateur.

Enable-PSRemoting -Force

WARNING: PowerShell remoting has been enabled only for PowerShell Core configurations and does not
affect Windows PowerShell remoting configurations. Run this cmdlet in Windows PowerShell to affect
all PowerShell remoting configurations.

Exemple 3 : Autoriser l’accès à distance sur les clients

Cet exemple montre comment autoriser l’accès à distance à partir de réseaux publics sur les versions clientes du système d’exploitation Windows. Le nom de la règle de pare-feu peut être différent pour différentes versions de Windows. Utilisez Get-NetFirewallRule pour afficher une liste de règles. Avant d’activer la règle de pare-feu, affichez les paramètres de sécurité dans la règle pour vérifier que la configuration est appropriée pour votre environnement.

Get-NetFirewallRule -Name 'WINRM*' | Select-Object Name

Name
----
WINRM-HTTP-In-TCP-NoScope
WINRM-HTTP-In-TCP
WINRM-HTTP-Compat-In-TCP-NoScope
WINRM-HTTP-Compat-In-TCP

Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-NetFirewallRule -Name 'WINRM-HTTP-In-TCP' -RemoteAddress Any

Par défaut, Enable-PSRemoting crée des règles réseau qui autorisent l’accès à distance à partir de réseaux privés et de domaine. La commande utilise le paramètre SkipNetworkProfileCheck pour autoriser l'accès à distance à partir de réseaux publics dans le même sous-réseau local. La commande spécifie le paramètre Force pour supprimer les messages de confirmation.

Le paramètre SkipNetworkProfileCheck n’affecte pas les versions de serveur du système d’exploitation Windows, qui autorisent par défaut l’accès à distance à partir de réseaux publics dans le même sous-réseau local.

L’applet Set-NetFirewallRule de commande du module NetSecurity ajoute une règle de pare-feu qui autorise l’accès à distance à partir de réseaux publics à partir de n’importe quel emplacement distant. Cela inclut les emplacements dans différents sous-réseaux.

Exemple 4 : Create une session distante à la configuration du point de terminaison nouvellement activée

Cet exemple montre comment activer la communication à distance PowerShell sur un ordinateur, rechercher les noms de point de terminaison configurés et créer une session à distance sur l’un des points de terminaison.

La première commande active la communication à distance PowerShell sur l’ordinateur.

La deuxième commande répertorie les configurations de point de terminaison.

La troisième commande crée une session PowerShell distante sur la même machine, en spécifiant le point de terminaison PowerShell.6 par son nom. La session à distance sera hébergée avec la dernière version de PowerShell 6 (6.2.2).

La dernière commande accède à la $PSVersionTable variable dans la session distante pour afficher la version de PowerShell qui héberge la session.

Enable-PSRemoting -Force

Get-PSSessionConfiguration

$session = New-PSSession -ComputerName localhost -ConfigurationName PowerShell.6

Invoke-Command -Session $session -ScriptBlock { $PSVersionTable }

WARNING: PowerShell remoting has been enabled only for PowerShell Core configurations and does not
affect Windows PowerShell remoting configurations. Run this cmdlet in Windows PowerShell to affect
all PowerShell remoting configurations.

Name          : PowerShell.6
PSVersion     : 6.2
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
                BUILTIN\Remote Management Users AccessAllowed

Name          : PowerShell.6.2.2
PSVersion     : 6.2
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
                BUILTIN\Remote Management Users AccessAllowed

Name                           Value
----                           -----
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSEdition                      Core
PSRemotingProtocolVersion      2.3
Platform                       Win32NT
SerializationVersion           1.1.0.1
GitCommitId                    6.2.2
WSManStackVersion              3.0
PSVersion                      6.2.2
OS                             Microsoft Windows 10.0.18363

Notes

Le nom de la règle de pare-feu peut être différent selon la version de Windows. Utilisez l’applet Get-NetFirewallRule de commande pour répertorier les noms des règles sur votre système.

Paramètres

-Confirm

Vous demande une confirmation avant d’exécuter l’applet de commande.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Force l’exécution de la commande sans demander la confirmation de l’utilisateur.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipNetworkProfileCheck

Indique que cette applet de commande active la communication à distance sur les versions clientes du système d’exploitation Windows lorsque l’ordinateur se trouve sur un réseau public. Ce paramètre active une règle de pare-feu pour les réseaux publics. Celle-ci n'autorise l'accès à distance qu'à partir d'ordinateurs du même sous-réseau local.

Ce paramètre n’affecte pas les versions serveur du système d’exploitation Windows, qui, par défaut, ont une règle de pare-feu de sous-réseau local pour les réseaux publics. Si la règle de pare-feu de sous-réseau local est désactivée sur une version de serveur, Enable-PSRemoting la réactive, quelle que soit la valeur de ce paramètre.

Pour supprimer la restriction de sous-réseau local et activer l’accès à distance à partir de tous les emplacements sur les réseaux publics, utilisez l’applet de Set-NetFirewallRule commande dans le module NetSecurity .

Ce paramètre a été introduit dans PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Montre ce qui se passe en cas d’exécution de l’applet de commande. L’applet de commande n’est pas exécutée.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entrées

None

Vous ne pouvez pas diriger d'entrée vers cette applet de commande.

Sorties

String

Cette applet de commande retourne des chaînes qui décrivent ses résultats.

Notes

Cette applet de commande est disponible uniquement sur les plateformes Windows.

Sur les versions serveur du système d’exploitation Windows, Enable-PSRemoting crée des règles de pare-feu pour les réseaux privés et de domaine qui autorisent l’accès à distance, et crée une règle de pare-feu pour les réseaux publics qui autorise l’accès à distance uniquement à partir d’ordinateurs du même sous-réseau local.

Sur les versions clientes du système d’exploitation Windows, crée des Enable-PSRemoting règles de pare-feu pour les réseaux privés et de domaine qui autorisent un accès à distance sans restriction. Pour créer une règle de pare-feu pour les réseaux publics qui autorise l'accès à distance à partir du même sous-réseau local, utilisez le paramètre SkipNetworkProfileCheck.

Sur les versions client ou serveur du système d’exploitation Windows, pour créer une règle de pare-feu pour les réseaux publics qui supprime la restriction de sous-réseau local et autorise l’accès à distance , utilisez l’applet Set-NetFirewallRule de commande dans le module NetSecurity pour exécuter la commande suivante : Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

Enable-PSRemoting active toutes les configurations de session en définissant la valeur de la propriété Enabled de toutes les configurations de session sur $True.

Enable-PSRemoting supprime les paramètres Deny_All et Network_Deny_All . Cela fournit un accès à distance aux configurations de session qui étaient réservées à une utilisation locale.