Enable-PSRemoting
Configure l'ordinateur pour recevoir des commandes à distance.
Syntaxe
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-Command
applets de commande ,New-PSSession
Enter-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 |
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. 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 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
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 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 $True
de 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.