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 des commandes à distance PowerShell envoyées à l’aide de la technologie WS-Management. La communication à distance PowerShell basée sur la gestion WS 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 réactiver la communication à distance si elle est désactivée.

Vous devez exécuter cette commande 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 distantes, il est prudent de l’exécuter uniquement là où il 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é pour exécuter PowerShell 6.2. Si vous exécutez Enable-PSRemoting PowerShell 7-preview, un point de terminaison de communication à distance est configuré pour exécuter 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 assurées d’être activées. Les configurations créées sont identiques, mais ont des noms différents. Un nom simple correspond à 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 à l’aide du nom simple PowerShell.6. Vous pouvez également vous connecter à une version d’hôte PowerShell spécifique à l’aide du 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 distante à l’aide des Invoke-Commandapplets 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 longue 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 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 distantes

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 distantes 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. Permet Get-NetFirewallRule d’afficher la liste des règles. Avant d’activer la règle de pare-feu, affichez les paramètres de sécurité de la règle pour vérifier que la configuration est appropriée pour votre environnement.

Get-NetFirewallRule -Name 'WINRM*' | Select-Object -Property 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, crée des Enable-PSRemoting 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 serveur du système d’exploitation Windows, qui autorisent l’accès à distance à partir de réseaux publics dans le même sous-réseau local par défaut.

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 des emplacements dans différents sous-réseaux.

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

Cet exemple montre comment activer la communication à distance PowerShell sur un ordinateur, rechercher les noms de points de terminaison configurés et créer une session distante 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 le même ordinateur, en spécifiant le point de terminaison PowerShell.7 par nom. La session à distance sera hébergée avec la dernière version de PowerShell 7 (7.3.0).

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.7

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.7
PSVersion     : 7.3
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\INTERACTIVE AccessAllowed,
                BUILTIN\Administrators AccessAllowed,
                BUILTIN\Remote Management Users AccessAllowed

Name          : PowerShell.7.3.0
PSVersion     : 7.3
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

Remarque

Le nom de la règle de pare-feu peut être différent en fonction de 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 du 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 Set-NetFirewallRule de 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 les objets 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 autorisent 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, Enable-PSRemoting crée des règles de pare-feu pour les réseaux privés et de domaine qui autorisent un accès à distance illimité. 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 $Truede session sur .

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