Disable-PSRemoting
Verhindert, dass Remotebenutzer Befehle auf dem lokalen Computer ausführen.
Syntax
Default (Standard)
Disable-PSRemoting
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Das cmdlet Disable-PSRemoting verhindert, dass Benutzer auf anderen Computern Befehle auf dem lokalen Computer ausführen.
Disable-PSRemoting den Remotezugriff auf alle Sitzungskonfigurationen auf dem lokalen Computer blockiert. Dadurch wird verhindert, dass Remotebenutzer temporäre oder persistente Sitzungen auf dem lokalen Computer erstellen. Disable-PSRemoting verhindert nicht, dass Benutzer des lokalen Computers Sitzungen (PSSessions) auf dem lokalen Computer oder auf Remotecomputern erstellen.
Verwenden Sie das cmdlet Enable-PSRemoting, um den Remotezugriff auf alle Sitzungskonfigurationen erneut zu aktivieren. Um den Remotezugriff auf ausgewählte Sitzungskonfigurationen zu aktivieren, verwenden Sie den AccessMode Parameter des Cmdlets Set-PSSessionConfiguration. Sie können auch die cmdlets Enable-PSSessionConfiguration und Disable-PSSessionConfiguration verwenden, um Sitzungskonfigurationen für alle Benutzer zu aktivieren und zu deaktivieren. Weitere Informationen zu Sitzungskonfigurationen finden Sie unter about_Session_Configurations.
In Windows PowerShell 2.0 verhindert Disable-PSRemoting , dass alle Benutzer benutzerverwaltete Sitzungen auf dem lokalen Computer erstellen. In Windows PowerShell 3.0 verhindert Disable-PSRemoting , dass Benutzer auf anderen Computern benutzerverwaltete Sitzungen auf dem lokalen Computer erstellen, ermöglicht es Benutzern des lokalen Computers jedoch, benutzerverwaltete Loopbacksitzungen zu erstellen.
Um dieses Cmdlet auszuführen, starten Sie Windows PowerShell mit der Option Als Administrator ausführen.
VORSICHT: Verwenden Sie Windows PowerShell 2.0 auf Systemen, die sowohl über Windows PowerShell 3.0 als auch über das Windows PowerShell 2.0-Modul verfügen, nicht zum Ausführen der Cmdlets "Enable-PSRemoting " und "Disable-PSRemoting ". Die Befehle scheinen erfolgreich zu sein, aber die Remoting ist nicht ordnungsgemäß konfiguriert. Remotebefehle und spätere Versuche, Remoting zu aktivieren und zu deaktivieren, schlagen wahrscheinlich fehl.
Beispiele
Beispiel 1: Verhindern des Remotezugriffs auf alle Sitzungskonfigurationen
PS C:\> Disable-PSRemoting
Dieser Befehl verhindert den Remotezugriff auf alle Sitzungskonfigurationen auf dem Computer.
Beispiel 2: Verhindern des Remotezugriffs auf alle Sitzungskonfigurationen ohne Bestätigungsaufforderung
PS C:\> Disable-PSRemoting -Force
Dieser Befehl verhindert den Remotezugriff auf alle Sitzungskonfigurationen auf dem Computer ohne Aufforderung.
Beispiel 3: Auswirkungen der Ausführung dieses Cmdlets
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
In diesem Beispiel wird die Auswirkung der Verwendung des cmdlets Disable-PSRemoting veranschaulicht. Um diese Befehlssequenz auszuführen, starten Sie Windows PowerShell mit der Option Als Administrator ausführen.
Der erste Befehl verwendet die Disable-PSRemoting Cmdlet, um alle registrierten Sitzungskonfigurationen auf dem Server01-Computer zu deaktivieren.
Der zweite Befehl verwendet das Cmdlet New-PSSession zum Erstellen einer Remotesitzung auf dem lokalen Computer (auch bekannt als "Loopback"). Der Befehl ist erfolgreich.
Der dritte Befehl wird auf dem Remotecomputer Server02 ausgeführt. Der Befehl verwendet das Cmdlet New-PSSession zum Erstellen einer Sitzung auf dem Remotecomputer Server01. Da der Remotezugriff deaktiviert ist, schlägt der Befehl fehl.
Beispiel 4: Auswirkungen der Ausführung dieses Cmdlets und 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
In diesem Beispiel werden die Auswirkungen der Verwendung der Cmdlets Disable-PSRemoting und Enable-PSRemoting auf die Sitzungskonfigurationen veranschaulicht.
Der erste Befehl verwendet die Disable-PSRemoting Cmdlet, um den Remotezugriff auf alle Sitzungskonfigurationen zu deaktivieren. Der parameter Force unterdrückt alle Benutzeraufforderungen.
Der zweite Befehl verwendet das Cmdlet Get-PSSessionConfiguration, um die Sitzungskonfigurationen auf dem Computer anzuzeigen. Der Befehl verwendet einen Pipelineoperator, um die Ergebnisse an einen Format-Table-Befehl zu senden, der nur die Eigenschaften Name und Berechtigung der Konfigurationen in einer Tabelle anzeigt.
Die Ausgabe zeigt, dass nur Remotebenutzern der Zugriff auf die Konfigurationen verweigert wird. Mitglieder der Gruppe "Administratoren" auf dem lokalen Computer dürfen die Sitzungskonfigurationen verwenden. Die Ausgabe zeigt auch, dass sich der Befehl auf alle Sitzungskonfigurationen auswirkt, einschließlich der vom Benutzer erstellten WithProfile-Sitzungskonfiguration.
Der dritte Befehl verwendet die Enable-PSRemoting Cmdlet, um den Remotezugriff auf alle Sitzungskonfigurationen auf dem Computer erneut zu aktivieren. Der Befehl verwendet den parameter Force, um alle Benutzereingabeaufforderungen zu unterdrücken und den WinRM-Dienst ohne Aufforderung neu zu starten.
Im vierten Befehl werden die Cmdlets Get-PSSessionConfiguration und Format-Table verwendet, um die Namen und Berechtigungen der Sitzungskonfigurationen anzuzeigen. Die Ergebnisse zeigen, dass die AccessDenied-Sicherheitsbeschreibungen aus allen Sitzungskonfigurationen entfernt wurden.
Beispiel 5: Verhindern des Remotezugriffs auf Sitzungskonfigurationen mit benutzerdefinierten Sicherheitsbeschreibungen
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
In diesem Beispiel wird veranschaulicht, dass das Cmdlet Disable-PSRemoting den Remotezugriff auf alle Sitzungskonfigurationen deaktiviert, die Sitzungskonfigurationen mit benutzerdefinierten Sicherheitsbeschreibungen enthalten.
Der erste Befehl verwendet das cmdlet Register-PSSessionConfiguration zum Erstellen der Testsitzungskonfiguration. Der Befehl verwendet den FilePath Parameter, um eine Sitzungskonfigurationsdatei anzugeben, die die Sitzung und den ShowSecurityDescriptorUI--Parameter angibt, um ein Dialogfeld anzuzeigen, das Berechtigungen für die Sitzungskonfiguration festlegt. Im Dialogfeld "Berechtigungen" erstellen wir benutzerdefinierte Vollzugriffsberechtigungen für den Benutzer "Domain01\User01".
Im zweiten Befehl werden die Cmdlets Get-PSSessionConfiguration und Format-Table verwendet, um die Sitzungskonfigurationen und ihre Eigenschaften anzuzeigen. Die Ausgabe zeigt, dass die Testsitzungskonfiguration interaktiven Zugriff und spezielle Berechtigungen für den Benutzer "Domain01\User01" zulässt.
Der dritte Befehl verwendet die Disable-PSRemoting Cmdlet, um den Remotezugriff auf alle Sitzungskonfigurationen zu deaktivieren.
Der vierte Befehl verwendet die Get-PSSessionConfiguration und Format-Table Cmdlets, um die Sitzungskonfigurationen und deren Eigenschaften anzuzeigen. Die Ausgabe zeigt, dass allen Sitzungskonfigurationen, die die Testsitzungskonfiguration enthalten, eine AccessDenied-Sicherheitsbeschreibung für alle Netzwerkbenutzer hinzugefügt wird. Obwohl die anderen Sicherheitsbeschreibungen nicht geändert werden, hat der Sicherheitsdeskriptor "network_deny_all" Vorrang.
Der fünfte Befehl zeigt, dass der Befehl Disable-PSRemoting verhindert, dass selbst der Benutzer Domain01\User01, der über besondere Berechtigungen für die Testsitzungskonfiguration verfügt, die Testsitzungskonfiguration verwendet, um eine Remoteverbindung mit dem Computer herzustellen.
Beispiel 6: Erneutes Aktivieren des Remotezugriffs auf ausgewählte Sitzungskonfigurationen
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
In diesem Beispiel wird gezeigt, wie Sie den Remotezugriff nur auf ausgewählte Sitzungskonfigurationen erneut aktivieren.
Der erste Befehl verwendet die Disable-PSRemoting Cmdlet, um den Remotezugriff auf alle Sitzungskonfigurationen zu deaktivieren.
Im zweiten Befehl werden die Cmdlets Get-PSSessionConfiguration und Format-Table verwendet, um die Sitzungskonfigurationen und ihre Eigenschaften anzuzeigen. Die Ausgabe zeigt, dass ein AccessDenied-Sicherheitsdeskriptor für alle Netzwerkbenutzer allen Sitzungskonfigurationen hinzugefügt wird.
Für den dritten Befehl wird das Cmdlet Set-PSSessionConfiguration verwendet. Der Befehl verwendet den AccessMode-Parameter mit dem Wert Remote, um den Remotezugriff auf die Microsoft.ServerManager-Sitzungskonfiguration zu ermöglichen. Sie können auch den AccessMode Parameter verwenden, um den lokalen Zugriff zu aktivieren und Sitzungskonfigurationen zu deaktivieren.
Der vierte Befehl verwendet die Get-PSSessionConfiguration und Format-Table Cmdlets, um die Sitzungskonfigurationen und deren Eigenschaften anzuzeigen. Die Ausgabe zeigt, dass der AccessDenied-Sicherheitsdeskriptor für alle Netzwerkbenutzer entfernt wird, wodurch der Remotezugriff auf die Microsoft.ServerManager-Sitzungskonfiguration wiederhergestellt wird.
Parameter
-Confirm
Fordert Sie zur Bestätigung auf, bevor Sie das Cmdlet ausführen.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | vgl |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Force
Erzwingt die Ausführung des Befehls, ohne eine Benutzerbestätigung zu verlangen.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-WhatIf
Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Wi |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
None
Eingaben können nicht an dieses Cmdlet weitergereicht werden.
Ausgaben
None
Dieses Cmdlet gibt kein Objekt zurück.
Hinweise
Durch das Deaktivieren der Sitzungskonfigurationen werden nicht alle Änderungen rückgängig gemacht, die von den Cmdlets Enable-PSRemoting oder Enable-PSSessionConfiguration vorgenommen wurden. Möglicherweise müssen Sie die folgenden Änderungen manuell rückgängig machen.
Beenden sie den WinRM-Dienst, und deaktivieren Sie den WinRM-Dienst.
2. Löschen Sie den Listener, der Anfragen an eine beliebige IP-Adresse akzeptiert.
3. Deaktivieren Sie die Firewall-Ausnahmen für WS-Management Kommunikation.
4. Stellen Sie den Wert von LocalAccountTokenFilterPolicy auf 0 wieder her, wodurch der Remotezugriff auf Mitglieder der Gruppe Administratoren auf dem Computer beschränkt wird.
Eine Sitzungskonfiguration ist eine Gruppe von Einstellungen, die die Umgebung für eine Sitzung definieren. Jede Sitzung, die eine Verbindung mit dem Computer herstellt, muss eine der Sitzungskonfigurationen verwenden, die auf dem Computer registriert sind. Indem Sie den Remotezugriff auf alle Sitzungskonfigurationen verweigern, verhindern Sie effektiv, dass Remotebenutzer Sitzungen einrichten, die eine Verbindung mit dem Computer herstellen.
In Windows PowerShell 2.0 fügt Disable-PSRemoting den Sicherheitsbeschreibungen aller Sitzungskonfigurationen einen Deny_All Eintrag hinzu. Diese Einstellung verhindert, dass alle Benutzer benutzerverwaltete Sitzungen auf dem lokalen Computer erstellen. In Windows PowerShell 3.0 fügt Disable-PSRemoting den Sicherheitsbeschreibungen aller Sitzungskonfigurationen einen Network_Deny_All Eintrag hinzu. Diese Einstellung verhindert, dass Benutzer auf anderen Computern benutzerverwaltete Sitzungen auf dem lokalen Computer erstellen, benutzern des lokalen Computers jedoch das Erstellen von benutzerverwalteten Loopbacksitzungen ermöglichen.
In Windows PowerShell 2.0 entspricht Disable-PSRemoting .Disable-PSSessionConfiguration -Name *
In Windows PowerShell 3.0 und höheren Versionen entspricht Disable-PSRemoting folgenden Versionen Set-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local
In Windows PowerShell 2.0 ist Disable-PSRemoting eine Funktion. Ab Windows PowerShell 3.0 handelt es sich um ein Cmdlet.