Disable-PSRemoting
Empêche les utilisateurs distants d’exécuter des commandes sur l’ordinateur local.
Syntaxe
Default (Par défaut)
Disable-PSRemoting
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
La cmdlet Disable-PSRemoting empêche les utilisateurs sur d’autres ordinateurs d’exécuter des commandes sur l’ordinateur local.
Disable-PSRemoting bloque l’accès à distance à toutes les configurations de session sur l’ordinateur local. Cela empêche les utilisateurs distants de créer des sessions temporaires ou persistantes sur l’ordinateur local. disable-PSRemoting n’empêche pas les utilisateurs de l’ordinateur local de créer des sessions (PSSessions) sur l’ordinateur local ou les ordinateurs distants.
Pour réactiver l’accès à distance à toutes les configurations de session, utilisez l’applet de commande Enable-PSRemoting. Pour activer l’accès à distance aux configurations de session sélectionnées, utilisez le paramètre AccessMode de l’applet de commande Set-PSSessionConfiguration. Vous pouvez également utiliser les applets de commande Enable-PSSessionConfiguration et Disable-PSSessionConfiguration pour activer et désactiver les configurations de session pour tous les utilisateurs. Pour plus d’informations sur les configurations de session, consultez about_Session_Configurations.
Dans Windows PowerShell 2.0, Disable-PSRemoting empêche tous les utilisateurs de créer des sessions gérées par l’utilisateur sur l’ordinateur local. Dans Windows PowerShell 3.0, Disable-PSRemoting empêche les utilisateurs sur d’autres ordinateurs de créer des sessions gérées par l’utilisateur sur l’ordinateur local, mais permet aux utilisateurs de l’ordinateur local de créer des sessions de bouclage gérées par l’utilisateur.
Pour exécuter cette applet de commande, démarrez Windows PowerShell avec l’option Exécuter en tant qu’administrateur.
ATTENTION : Sur les systèmes qui ont à la fois Windows PowerShell 3.0 et le moteur Windows PowerShell 2.0, n’utilisez pas Windows PowerShell 2.0 pour exécuter les Enable-PSRemoting et Disable-PSRemoting applets de commande. Les commandes peuvent sembler réussir, mais la communication à distance n’est pas configurée correctement. Les commandes à distance et les tentatives ultérieures d’activation et de désactivation de la communication à distance sont susceptibles d’échouer.
Exemples
Exemple 1 : Empêcher l’accès à distance à toutes les configurations de session
PS C:\> Disable-PSRemoting
Cette commande empêche l’accès à distance à toutes les configurations de session sur l’ordinateur.
Exemple 2 : Empêcher l’accès à distance à toutes les configurations de session sans invite de confirmation
PS C:\> Disable-PSRemoting -Force
Cette commande empêche l’accès à distance à toutes les configurations de session sur l’ordinateur sans demander d’invite.
Exemple 3 : Effets de l’exécution de cette applet de commande
PS C:\> Disable-PSRemoting -Force
[ADMIN] PS C:\> New-PSSession -ComputerName localhost
Id Name ComputerName State Configuration Availability
-- ---- ------------ ----- ------------- ------------
1 Session1 Server02... Opened Microsoft.PowerShell Available
# On Server02 remote computer:
PS C:\> New-PSSession -ComputerName Server01
[SERVER01] Connecting to remote server failed with the following error
message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionOpenFailed
Cet exemple montre l’effet de l’utilisation de l’applet de commande Disable-PSRemoting. Pour exécuter cette séquence de commandes, démarrez Windows PowerShell avec l’option Exécuter en tant qu’administrateur.
La première commande utilise l’applet de commande Disable-PSRemoting pour désactiver toutes les configurations de session inscrites sur l’ordinateur Server01.
La deuxième commande utilise l’applet de commande New-PSSession pour créer une session distante sur l’ordinateur local (également appelée « bouclage »). La commande réussit.
La troisième commande est exécutée sur l’ordinateur distant Server02. La commande utilise la cmdlet New-PSSession pour créer une session sur l’ordinateur distant Server01. Étant donné que l’accès à distance est désactivé, la commande échoue.
Exemple 4 : Effets de l’exécution de cette applet de commande et de Enable-PSRemoting
PS C:\> Disable-PSRemoting -force
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32 NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
WithProfile NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
[ADMIN] PS C:\> Enable-PSRemoting -Force
WinRM already is set up to receive requests on this machine.
WinRM already is set up for remote management on this machine.
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
Name Permission
---- ----------
microsoft.powershell BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow BUILTIN\Administrators AccessAllowed
microsoft.powershell32 BUILTIN\Administrators AccessAllowed
microsoft.ServerManager BUILTIN\Administrators AccessAllowed
WithProfile BUILTIN\Administrators AccessAllowed
Cet exemple montre l’effet sur les configurations de session d’utilisation des applets de commande Disable-PSRemoting et Enable-PSRemoting.
La première commande utilise l’applet de commande Disable-PSRemoting pour désactiver l’accès à distance à toutes les configurations de session. Le paramètre Forcer supprime toutes les invites de l’utilisateur.
La deuxième commande utilise l’applet de commande Get-PSSessionConfiguration pour afficher les configurations de session sur l’ordinateur. La commande utilise un opérateur de pipeline pour envoyer les résultats à une commande Format-Table, qui affiche uniquement les propriétés Nom et Autorisation des configurations d’une table.
La sortie indique que seuls les utilisateurs distants ont refusé l’accès aux configurations. Les membres du groupe Administrateurs sur l’ordinateur local sont autorisés à utiliser les configurations de session. La sortie montre également que la commande affecte toutes les configurations de session qui incluent la configuration de session WithProfile créée par l’utilisateur.
La troisième commande utilise l’applet de commande Enable-PSRemoting pour réactiver l’accès à distance à toutes les configurations de session sur l’ordinateur. La commande utilise le paramètre Forcer pour supprimer toutes les invites utilisateur et redémarrer le service WinRM sans invite.
La quatrième commande utilise les applets de commande Get-PSSessionConfiguration et Format-Table pour afficher les noms et autorisations des configurations de session. Les résultats montrent que les descripteurs de sécurité AccessDenied ont été supprimés de toutes les configurations de session.
Exemple 5 : Empêcher l’accès à distance aux configurations de session qui ont des descripteurs de sécurité personnalisés
PS C:\> Register-PSSessionConfiguration -Name Test -FilePath .\TestEndpoint.pssc -ShowSecurityDescriptorUI
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap
Name Permission
---- ----------
microsoft.powershell BUILTIN\Administrators AccessAllowed
Test NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
DOMAIN01\User01 AccessAllowed
[ADMIN] PS C:\> Disable-PSRemoting -Force
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
Test NT AUTHORITY\NETWORK AccessDenied, NTAUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed, DOMAIN01\User01 AccessAllowed
# Domain01\User01
PS C:\> New-PSSession -ComputerName Server01 -ConfigurationName Test
[Server01] Connecting to remote server failed with the following error message : Access is denied. For more information, see the about_Rem
ote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionOpenFailed
Cet exemple montre que l’applet de commande Disable-PSRemoting désactive l’accès à distance à toutes les configurations de session qui incluent des configurations de session avec des descripteurs de sécurité personnalisés.
La première commande utilise l’applet de commande Register-PSSessionConfiguration pour créer la configuration de session de test. La commande utilise le paramètre FilePath pour spécifier un fichier de configuration de session qui personnalise la session et le paramètre ShowSecurityDescriptorUI pour afficher une boîte de dialogue qui définit les autorisations pour la configuration de session. Dans la boîte de dialogue Autorisations, nous créons des autorisations d’accès complet personnalisées pour l’utilisateur Domain01\User01.
La deuxième commande utilise les applets de commande Get-PSSessionConfiguration et Format-Table pour afficher les configurations de session et leurs propriétés. La sortie indique que la configuration de session de test autorise l’accès interactif et les autorisations spéciales pour l’utilisateur Domain01\User01.
La troisième commande utilise l’applet de commande Disable-PSRemoting pour désactiver l’accès à distance à toutes les configurations de session.
La quatrième commande utilise les applets de commande Get-PSSessionConfiguration et Format-Table pour afficher les configurations de session et leurs propriétés. La sortie indique qu’un descripteur de sécurité AccessDenied pour tous les utilisateurs réseau est ajouté à toutes les configurations de session qui incluent la configuration de session de test. Bien que les autres descripteurs de sécurité ne soient pas modifiés, le descripteur de sécurité « network_deny_all » est prioritaire.
La cinquième commande indique que la commande Disable-PSRemoting empêche même l’utilisateur Domain01\User01 disposant d’autorisations spéciales pour la configuration de la session de test à l’aide de la configuration de session de test pour se connecter à distance à l’ordinateur.
Exemple 6 : réactiver l’accès à distance aux configurations de session sélectionnées
PS C:\> Disable-PSRemoting -Force
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32 NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
WithProfile NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
[ADMIN] PS C:\> Set-PSSessionConfiguration -Name Microsoft.ServerManager -AccessMode Remote -Force
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32 NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager BUILTIN\Administrators AccessAllowed
WithProfile NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
Cet exemple montre comment réactiver l’accès à distance uniquement aux configurations de session sélectionnées.
La première commande utilise l’applet de commande Disable-PSRemoting pour désactiver l’accès à distance à toutes les configurations de session.
La deuxième commande utilise les applets de commande Get-PSSessionConfiguration et Format-Table pour afficher les configurations de session et leurs propriétés. La sortie indique qu’un descripteur de sécurité AccessDenied pour tous les utilisateurs réseau est ajouté à toutes les configurations de session.
La troisième commande utilise l’applet de commande Set-PSSessionConfiguration.
La commande utilise le paramètre AccessMode
La quatrième commande utilise les applets de commande Get-PSSessionConfiguration et Format-Table pour afficher les configurations de session et leurs propriétés. La sortie indique que le descripteur de sécurité AccessDenied pour tous les utilisateurs du réseau est supprimé, ce qui restaure l’accès à distance à la configuration de session Microsoft.ServerManager.
Paramètres
-Confirm
Vous invite à confirmer avant d’exécuter l’applet de commande.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | cf |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Force
Force l’exécution de la commande sans demander la confirmation de l’utilisateur.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-WhatIf
Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande ne s’exécute pas.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | Wi |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
CommonParameters
Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.
Entrées
None
Vous ne pouvez pas diriger d'entrée vers cette applet de commande.
Sorties
None
Cette applet de commande ne retourne aucun objet.
Notes
La désactivation des configurations de session n’annule pas toutes les modifications apportées par les applets de commande Enable-PSRemoting ou Enable-PSSessionConfiguration. Vous devrez peut-être annuler manuellement les modifications suivantes.
Arrêtez et désactivez le service WinRM.
2. Supprimez l’écouteur qui accepte les demandes sur n’importe quelle adresse IP.
3. Désactivez les exceptions de pare-feu pour les communications WS-Management.
4. Restaurez la valeur de LocalAccountTokenFilterPolicy sur 0, ce qui limite l’accès à distance aux membres du groupe Administrateurs sur l’ordinateur.
Une configuration de session est un groupe de paramètres qui définissent l’environnement d’une session. Chaque session qui se connecte à l’ordinateur doit utiliser l’une des configurations de session inscrites sur l’ordinateur. En refusant l’accès à distance à toutes les configurations de session, vous empêchez efficacement les utilisateurs distants d’établir des sessions qui se connectent à l’ordinateur.
Dans Windows PowerShell 2.0, Disable-PSRemoting ajoute une entrée Deny_All aux descripteurs de sécurité de toutes les configurations de session. Ce paramètre empêche tous les utilisateurs de créer des sessions gérées par l’utilisateur sur l’ordinateur local. Dans Windows PowerShell 3.0, Disable-PSRemoting ajoute une entrée Network_Deny_All aux descripteurs de sécurité de toutes les configurations de session. Ce paramètre empêche les utilisateurs sur d’autres ordinateurs de créer des sessions gérées par l’utilisateur sur l’ordinateur local, mais permet aux utilisateurs de l’ordinateur local de créer des sessions de bouclage gérées par l’utilisateur.
Dans Windows PowerShell 2.0, disable-PSRemoting est l’équivalent de Disable-PSSessionConfiguration -Name *.
Dans Windows PowerShell 3.0 et versions ultérieures, disable-PSRemoting est l’équivalent de Set-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local
Dans Windows PowerShell 2.0, Disable-PSRemoting est une fonction. À compter de Windows PowerShell 3.0, il s’agit d’une applet de commande.