Enable-PSRemoting
Configure l’ordinateur pour recevoir des commandes distantes.
Syntaxe
Enable-PSRemoting
[-Force]
[-SkipNetworkProfileCheck]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cette applet de commande est disponible uniquement sur la plateforme Windows.
L’applet de commande Enable-PSRemoting
configure l’ordinateur pour recevoir des commandes à distance PowerShell envoyées à l’aide de la technologie WS-Management. WS-Management communication à distance PowerShell basée sur PowerShell 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 devez exécuter cette commande une seule fois sur chaque ordinateur qui reçoit 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, il est prudent de l’exécuter uniquement là où elle 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 de 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
lors de l’exécution de PowerShell 6.2, un point de terminaison de communication à distance est configuré pour exécuter PowerShell 6.2. Si vous exécutez Enable-PSRemoting
lors de l’exécution de 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 de 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 de l'Invoke-Command
,New-PSSession
,Enter-PSSession
applets de commande. Pour plus d’informations, consultez l’exemple 4.
L’applet de commande Enable-PSRemoting
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 sur le 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 effectuer les modifications précédentes.
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.
Prudence
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 qui sont hébergés par Windows PowerShell, exécutez l’applet de commande Enable-PSRemoting
à partir d’une session Windows PowerShell.
Pour plus d’informations sur l’utilisation de la communication à distance PowerShell, consultez les articles suivants :
Exemples
Exemple 1 : Configurer un ordinateur pour recevoir des commandes distantes
Cette commande configure l’ordinateur pour recevoir des commandes distantes.
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 recevoir des commandes distantes. Le paramètre Forcer 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é 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, 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 Forcer pour supprimer les messages de confirmation.
Le paramètre SkipNetworkProfileCheck n’affecte pas les versions du 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 de commande Set-NetFirewallRule
dans le 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 variable $PSVersionTable
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
Note
Le nom de la règle de pare-feu peut être différent en fonction de la version de Windows. Utilisez l’applet de commande Get-NetFirewallRule
pour répertorier les noms des règles sur votre système.
Paramètres
-Confirm
Vous invite à confirmer avant d’exécuter l’applet de commande.
Type: | SwitchParameter |
Alias: | cf |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Force
Force l’exécution de la commande sans demander la confirmation de l’utilisateur.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 qui autorise l’accès à distance uniquement à 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 des réseaux publics, utilisez l’applet de commande Set-NetFirewallRule
dans le module NetSecurity.
Ce paramètre a été introduit dans PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-WhatIf
Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande n’est pas exécutée.
Type: | SwitchParameter |
Alias: | wi |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
None
Vous ne pouvez pas diriger les objets vers cette applet de commande.
Sorties
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 de commande Set-NetFirewallRule
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 réservées à une utilisation locale.