Partager via


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 avec la valeur Remote pour activer l’accès à distance à la configuration de session Microsoft.ServerManager. Vous pouvez également utiliser le paramètre AccessMode pour activer l’accès local et désactiver 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 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.