Partager via


Disable-PSRemoting

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

Syntaxe

Default (Par défaut)

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

Description

L’applet de commande Disable-PSRemoting bloque l’accès à distance à toutes les configurations de point de terminaison de session Windows PowerShell sur l’ordinateur local. Cela inclut tous les points de terminaison créés par PowerShell 6 ou version ultérieure.

Pour réactiver l’accès à distance à toutes les configurations de session, utilisez l’applet de commande Enable-PSRemoting. Cela inclut tous les points de terminaison créés par PowerShell 6 ou version ultérieure. 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.

Remarque

Même après avoir exécuté 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 .

Pour exécuter cette applet de commande, démarrez Windows PowerShell avec l’option Exécuter en tant qu’administrateur.

Exemples

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

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

Disable-PSRemoting
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 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: 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 de commande Disable-PSRemoting. 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 de commande New-PSSession 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
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 de Enable-PSRemoting

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

Disable-PSRemoting est utilisé pour désactiver l’accès à distance à toutes les configurations de point de terminaison de session PowerShell. Le paramètre Forcer supprime toutes les invites de l’utilisateur. Les applets de commande Get-PSSessionConfiguration et Format-Table affichent 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. Le groupe Administrateurs sur l’ordinateur local est autorisé à accéder aux configurations de point de terminaison tant qu’ils se connectent localement (également appelé 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
----                          ----------
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

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

L’applet de commande Enable-PSRemoting réactive l’accès à distance à toutes les configurations de point de terminaison de session PowerShell sur l’ordinateur. Le paramètre Forcer supprime toutes les invites de l’utilisateur et redémarre le service WinRM sans inviter. 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
New-PSSession -ComputerName localhost
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
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin
   gTransportException
    + FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed

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

La première utilisation de New-PSSession tente de créer une session distante sur l’ordinateur local. 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 est refusée erreur.

La deuxième utilisation de New-PSSession tente également de créer une session distante 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 document new-PSSession.

Exemple 6 : 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 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.

Register-PSSessionConfiguration crée la configuration de session 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 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 indiqué.

Les applets de commande Get-PSSessionConfiguration et Format-Table affichent les configurations de session et leurs propriétés. La sortie indique que la configuration de session 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
----                          ----------
microsoft.powershell          BUILTIN\Administrators AccessAllowed
Test                          NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
DOMAIN01\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
----                          ----------
microsoft.powershell          NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
Test                          NT AUTHORITY\NETWORK AccessDenied, NTAUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed, DOMAIN01\User01 AccessAllowed


[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

À présent, les applets de commande Get-PSSessionConfiguration et Format-Table 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 Test session. 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 de New-PSSession pour se connecter à la configuration de session Test.

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

Cet exemple montre comment réactiver l’accès à distance uniquement aux 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 de commande Set-PSSessionConfiguration est utilisée pour modifier la microsoft. Configuration de session ServerManager. 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 Microsoft.ServerManager -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
----                          ----------
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

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

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 les objets vers cette applet de commande.

Sorties

None

Cette applet de commande ne retourne aucune sortie.

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.

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