Disable-PSRemoting

Empêche les points de terminaison PowerShell de recevoir des connexions à distance.

Syntax

Disable-PSRemoting
       [-Force]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Description

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

L’applet Disable-PSRemoting de commande bloque l’accès à distance à toutes les configurations de point de terminaison de session PowerShell version 6 et supérieure sur l’ordinateur local. Elle n’affecte pas les configurations de point de terminaison Windows PowerShell. Pour désactiver les configurations de point de terminaison de session Windows PowerShell, exécutez Disable-PSRemoting la commande à partir d’une session Windows PowerShell.

Pour réactiver l’accès à distance à toutes les configurations de point de terminaison de session PowerShell version 6 et supérieure, utilisez l’applet Enable-PSRemoting de commande. Pour réactiver l’accès à distance à toutes les configurations de point de terminaison de session Windows PowerShell, exécutez-le Enable-PSRemoting à partir d’une session Windows PowerShell.

Remarque

Si vous souhaitez désactiver tout l’accès à distance PowerShell à un ordinateur Windows local, vous devez exécuter cette commande à partir d’une session PowerShell version 6 ou ultérieure et à partir d’une session Windows PowerShell. Windows PowerShell est installé sur tous les ordinateurs Windows par défaut.

Pour désactiver et réactiver l’accès à distance à des configurations de point de terminaison de session spécifiques, utilisez les applets de commande et Disable-PSSessionConfiguration les Enable-PSSessionConfiguration applets de commande. Pour définir des configurations d’accès spécifiques de points de terminaison individuels, utilisez l’applet Set-PSSessionConfiguration de commande avec le paramètre AccessMode . Pour plus d'informations sur les configurations de session, consultez about_Session_Configurations.

Remarque

Même après l’exécution Disable-PSRemoting , vous pouvez toujours établir des connexions de bouclage sur l’ordinateur local. Une connexion de bouclage est une session distante PowerShell qui provient et se connecte au même ordinateur local. Les sessions distantes provenant de sources externes restent bloquées. Pour les connexions de bouclage, vous devez utiliser des informations d’identification implicites le long du paramètre EnableNetworkAccess . Pour plus d’informations sur les connexions de bouclage, consultez New-PSSession.

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

Exemples

Exemple 1 : Empêcher l’accès à distance à toutes les configurations de session PowerShell

Cet exemple empêche l’accès à distance à toutes les configurations de point de terminaison de session PowerShell sur l’ordinateur.

Disable-PSRemoting

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

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

Exemple 2 : Empêcher l’accès à distance à toutes les configurations de session PowerShell sans invite de confirmation

Cet exemple empêche l’accès à distance à toutes les configurations de point de terminaison de session PowerShell sur l’ordinateur sans demander d’invite.

Disable-PSRemoting -Force

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

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

Exemple 3 : Effets de l’exécution de cette applet de commande

Cet exemple montre l’effet de l’utilisation de l’applet Disable-PSRemoting de commande. Pour exécuter cette séquence de commandes, démarrez PowerShell avec l’option Exécuter en tant qu’administrateur .

Après avoir désactivé les configurations de sessions, l’applet New-PSSession de commande tente de créer une session distante sur l’ordinateur local (également appelée « bouclage »). Étant donné que l’accès à distance est désactivé sur l’ordinateur local, la commande échoue.

Disable-PSRemoting -Force
New-PSSession -ComputerName localhost -ConfigurationName PowerShell.6

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

New-PSSession : [localhost] Connecting to remote server localhost failed with the following error
 message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:1
+ New-PSSession -ComputerName localhost -ConfigurationName PowerShell.6
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : OpenError: (System.Management.A\u2026tion.RemoteRunspace:RemoteRunspace)
 [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed

Exemple 4 : Effets de l’exécution de cette applet de commande et Enable-PSRemoting

Cet exemple montre l’effet sur les configurations de session de l’utilisation des applets de commande et Enable-PSRemoting des Disable-PSRemoting applets de commande.

Disable-PSRemoting est utilisé pour désactiver l’accès à distance à toutes les configurations de point de terminaison de session PowerShell. Le paramètre Force supprime toutes les invites de l’utilisateur. Les Get-PSSessionConfiguration applets de commande affichent Format-Table les configurations de session sur l’ordinateur.

La sortie indique que tous les utilisateurs distants disposant d’un jeton réseau sont refusés d’accéder aux configurations de point de terminaison. Administration istrators groupe sur l’ordinateur local sont autorisés à accéder aux configurations de point de terminaison tant qu’elles se connectent localement (également appelée bouclage) et utilisent des informations d’identification implicites.

Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize

Enable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize

Name               Permission
----               ----------
PowerShell.6       NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...
PowerShell.6.2.0   NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...

Name               Permission
----               ----------
PowerShell.6       NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...
PowerShell.6.2.0   NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...

L’applet Enable-PSRemoting de commande réactive l’accès à distance à toutes les configurations de point de terminaison de session PowerShell sur l’ordinateur. Le paramètre Force supprime toutes les invites de l’utilisateur et redémarre le service WinRM sans invite. La nouvelle sortie indique que les descripteurs de sécurité AccessDenied ont été supprimés de toutes les configurations de session.

Exemple 5 : Connexions de bouclage avec des configurations de point de terminaison de session désactivées

Cet exemple montre comment les configurations de point de terminaison sont désactivées et comment établir une connexion de bouclage réussie à un point de terminaison désactivé. Disable-PSRemoting désactive toutes les configurations de point de terminaison de session PowerShell.

Disable-PSRemoting -Force

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

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

New-PSSession -ComputerName localhost -ConfigurationName powershell.6 -Credential (Get-Credential)

PowerShell credential request
Enter your credentials.
User: UserName
Password for user UserName: ************

New-PSSession: [localhost] Connecting to remote server localhost failed with the following error message
 : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.

New-PSSession -ComputerName localhost -ConfigurationName powershell.6 -EnableNetworkAccess

Id Name       Transport ComputerName  ComputerType   State   ConfigurationName   Availability
 -- ----       --------- ------------  ------------   -----   -----------------   ------------
 1  Runspace1  WSMan     localhost     RemoteMachine  Opened  powershell.6           Available

La première utilisation des tentatives de création d’une New-PSSession session distante sur l’ordinateur local. Le paramètre ConfigurationName est utilisé pour spécifier un point de terminaison PowerShell désactivé. Les informations d’identification sont transmises explicitement à la commande via le paramètre Credential . Ce type de connexion passe par la pile réseau et n’est pas un bouclage. Par conséquent, la tentative de connexion au point de terminaison désactivé échoue avec une erreur Access refusée .

La deuxième utilisation tente également de New-PSSession créer une session à distance sur l’ordinateur local. Dans ce cas, il réussit, car il s’agit d’une connexion de bouclage qui contourne la pile réseau.

Une connexion de bouclage est créée lorsque les conditions suivantes sont remplies :

  • Le nom de l’ordinateur auquel se connecter est « localhost ».
  • Aucune information d’identification n’est transmise. L’utilisateur connecté actuel (informations d’identification implicites) est utilisé pour la connexion.
  • Le paramètre de commutateur EnableNetworkAccess est utilisé.

Pour plus d’informations sur les connexions de bouclage, consultez le document New-PSSession .

Exemple 6 : Désactivation de toutes les configurations de point de terminaison de communication à distance PowerShell

Cet exemple montre comment exécuter la Disable-PSRemoting commande n’affecte pas les configurations de point de terminaison Windows PowerShell. Get-PSSessionConfiguration s’exécuter dans Windows PowerShell affiche toutes les configurations de point de terminaison. Nous voyons que les configurations de point de terminaison Windows PowerShell ne sont pas désactivées.

Disable-PSRemoting -Force
powershell.exe -command 'Get-PSSessionConfiguration'

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

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

Name          : microsoft.powershell
PSVersion     : 5.1
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed, BUILTIN\Remote
                Management Users AccessAllowed

Name          : microsoft.powershell.workflow
PSVersion     : 5.1
StartupScript :
RunAsUser     :
Permission    : BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllowed

Name          : microsoft.powershell32
PSVersion     : 5.1
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed, BUILTIN\Remote
                Management Users AccessAllowed

Name          : PowerShell.6
PSVersion     : 6.2
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\NETWORK AccessDenied, 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\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
                AccessAllowed, BUILTIN\Remote Management Users AccessAllowed

powershell.exe -command 'Disable-PSRemoting -Force'
powershell.exe -command 'Get-PSSessionConfiguration'

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting or
Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to members of the
Administrators group on the computer.

Name          : microsoft.powershell
PSVersion     : 5.1
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
                AccessAllowed, BUILTIN\Remote Management Users AccessAllowed

Name          : microsoft.powershell.workflow
PSVersion     : 5.1
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management
                Users AccessAllowed

Name          : microsoft.powershell32
PSVersion     : 5.1
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
                AccessAllowed, BUILTIN\Remote Management Users AccessAllowed

Name          : PowerShell.6
PSVersion     : 6.2
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\NETWORK AccessDenied, 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\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
                AccessAllowed, BUILTIN\Remote Management Users AccessAllowed

Pour désactiver ces configurations de point de terminaison, la Disable-PSRemoting commande doit être exécutée à partir d’une session Windows PowerShell. À présent, Get-PSSessionConfiguration l’exécution à partir de Windows PowerShell indique que toutes les configurations de point de terminaison sont désactivées.

Exemple 7 : Empêcher l’accès à distance aux configurations de session qui ont des descripteurs de sécurité personnalisés

Cet exemple montre que l’applet de commande désactive l’accès Disable-PSRemoting à distance à toutes les configurations de session qui incluent des configurations de session avec des descripteurs de sécurité personnalisés.

Register-PSSessionConfiguration crée la configuration de session de test . Le paramètre FilePath spécifie un fichier de configuration de session qui personnalise la session. Le paramètre ShowSecurityDescriptorUI affiche une boîte de dialogue qui définit des 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 indiqué.

Les Get-PSSessionConfiguration applets de commande affichent Format-Table les configurations de session et leurs propriétés. La sortie indique que la configuration de la session de test autorise l’accès interactif et les autorisations spéciales pour l’utilisateur indiqué.

Disable-PSRemoting désactive l’accès à distance à toutes les configurations de session.

Register-PSSessionConfiguration -Name Test -FilePath .\TestEndpoint.pssc -ShowSecurityDescriptorUI -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap

Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap
New-PSSession -ComputerName localhost -ConfigurationName Test

Name               Permission
----               ----------
PowerShell.6       NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
                   BUILTIN\Remote Management Users AccessAllowed
PowerShell.6.2.0   NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
                   BUILTIN\Remote Management Users AccessAllowed
Test               NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
                   User01 AccessAllowed

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

Name               Permission
----               ----------
PowerShell.6       NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed,
                   BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
PowerShell.6.2.0   NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed,
                   BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Test               NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed,
                   BUILTIN\Administrators AccessAllowed, User01 AccessAllowed

New-PSSession : [localhost] Connecting to remote server localhost failed with the following error message
 : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:1
+ New-PSSession -ComputerName localhost -ConfigurationName Test
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : OpenError: (System.Management.A\u2026tion.RemoteRunspace:RemoteRunspace)
 [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed

À présent, les Get-PSSessionConfiguration applets de commande et Format-Table les applets de commande indiquent qu’un descripteur de sécurité AccessDenied pour tous les utilisateurs réseau est ajouté à toutes les configurations de session, y compris la configuration de la 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. Cela est illustré par la tentative d’utilisation New-PSSession pour se connecter à la configuration de session de test .

Exemple 8 : réactiver l’accès à distance aux configurations de session sélectionnées

Cet exemple illustre comment réactiver l'accès à distance uniquement pour les configurations de session sélectionnées. Après avoir désactivé toutes les configurations de session, nous réactivons une session spécifique.

L’applet Set-PSSessionConfiguration de commande est utilisée pour modifier la configuration de session PowerShell.6 . Le paramètre AccessMode avec la valeur Remote réactive l’accès à distance à la configuration.

Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize

Set-PSSessionConfiguration -Name PowerShell.6 -AccessMode Remote -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

Name                 Permission
----                 ----------
PowerShell.6         NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Adm ...
PowerShell.6.2.0     NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Adm ...

Name                 Permission
----                 ----------
PowerShell.6         NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed, BUILTIN\ ...
PowerShell.6.2.0     NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Adm ...

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

-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

None

Cette applet de commande ne retourne pas de sortie.

Notes

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

  • La désactivation des configurations de session n’annule pas toutes les modifications apportées par les applets de commande ou Enable-PSSessionConfiguration les Enable-PSRemoting applets de commande. Vous devrez peut-être annuler manuellement les modifications suivantes.

    1. Arrêter et désactiver le service WinRM.
    2. Supprimer l'écouteur qui accepte les demandes sur toutes les adresses IP.
    3. Désactiver les exceptions de pare-feu pour les communications WS-Management.
    4. Restaurer la valeur de LocalAccountTokenFilterPolicy sur 0, ce qui restreint l'accès à distance aux membres du groupe Administrateurs sur l'ordinateur.
  • Une configuration de point de terminaison 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 point de terminaison de session inscrites sur l’ordinateur. En refusant l’accès à distance à toutes les configurations de point de terminaison de session, vous empêchez efficacement les utilisateurs distants d’établir des sessions qui se connectent à l’ordinateur.