Disable-PSRemoting
Verhindert, dass PowerShell-Endpunkte Remoteverbindungen empfangen.
Syntax
Disable-PSRemoting
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Das Disable-PSRemoting
Cmdlet blockiert den Remotezugriff auf alle Konfigurationen des Windows PowerShell-Sitzungsendpunkts auf dem lokalen Computer. Dazu gehören alle Endpunkte, die von PowerShell 6 oder höher erstellt wurden.
Verwenden Sie das Cmdlet, um den Enable-PSRemoting
Remotezugriff auf alle Sitzungskonfigurationen erneut zu aktivieren. Dazu gehören alle Endpunkte, die von PowerShell 6 oder höher erstellt wurden. Verwenden Sie den AccessMode-Parameter des Set-PSSessionConfiguration
Cmdlets, um den Remotezugriff auf ausgewählte Sitzungskonfigurationen zu aktivieren.
Sie können auch die Enable-PSSessionConfiguration
Und-Cmdlets Disable-PSSessionConfiguration
verwenden, um Sitzungskonfigurationen für alle Benutzer zu aktivieren und zu deaktivieren. Weitere Informationen zu Sitzungskonfigurationen finden Sie unter about_Session_Configurations.
Hinweis
Auch nach dem Ausführen Disable-PSRemoting
können Sie weiterhin Loopbackverbindungen auf dem lokalen Computer herstellen. Eine Loopbackverbindung ist eine PowerShell-Remotesitzung, die von derselben lokalen Maschine stammt und eine Verbindung mit demselben lokalen Computer herstellt. Remotesitzungen von externen Quellen bleiben blockiert. Für Loopbackverbindungen müssen Sie implizite Anmeldeinformationen entlang des EnableNetworkAccess-Parameters verwenden. Weitere Informationen zu Loopbackverbindungen finden Sie unter New-PSSession.
Um dieses Cmdlet auszuführen, starten Sie Windows PowerShell mit der Option "Als Administrator ausführen".
Beispiele
Beispiel 1: Verhindern des Remotezugriffs auf alle Sitzungskonfigurationen
In diesem Beispiel wird der Remotezugriff auf alle PowerShell-Sitzungsendpunktkonfigurationen auf dem Computer verhindert.
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.
Beispiel 2: Verhindern des Remotezugriffs auf alle Sitzungskonfigurationen ohne Bestätigungsaufforderung
In diesem Beispiel wird der Remotezugriff auf alle PowerShell-Sitzungsendpunktkonfigurationen auf dem Computer verhindert, ohne dazu aufgefordert zu werden.
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.
Beispiel 3: Auswirkungen der Ausführung dieses Cmdlets
In diesem Beispiel wird der Effekt der Verwendung des Disable-PSRemoting
Cmdlets veranschaulicht. Um diese Befehlssequenz auszuführen, starten Sie PowerShell mit der Option "Als Administrator ausführen".
Nach dem Deaktivieren der Sitzungskonfigurationen versucht das New-PSSession
Cmdlet, eine Remotesitzung auf dem lokalen Computer (auch als "Loopback" bezeichnet) zu erstellen. Da der Remotezugriff auf dem lokalen Computer deaktiviert ist, schlägt der Befehl fehl.
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
Beispiel 4: Auswirkungen der Ausführung dieses Cmdlets und Enable-PSRemoting
In diesem Beispiel wird der Effekt auf die Sitzungskonfigurationen der Verwendung und der Disable-PSRemoting
Enable-PSRemoting
Cmdlets gezeigt.
Disable-PSRemoting
wird verwendet, um den Remotezugriff auf alle PowerShell-Sitzungsendpunktkonfigurationen zu deaktivieren. Der Parameter Force unterdrückt alle Benutzeraufforderungen. Die Get-PSSessionConfiguration
Und Format-Table
Cmdlets zeigen die Sitzungskonfigurationen auf dem Computer an.
Die Ausgabe zeigt, dass allen Remotebenutzern mit einem Netzwerktoken der Zugriff auf die Endpunktkonfigurationen verweigert wird. Administratorengruppe auf dem lokalen Computer kann auf die Endpunktkonfigurationen zugreifen, solange sie eine lokale Verbindung (auch als Loopback bezeichnet) und implizite Anmeldeinformationen verwenden.
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
Das Enable-PSRemoting
Cmdlet ermöglicht den Remotezugriff auf alle PowerShell-Sitzungsendpunktkonfigurationen auf dem Computer erneut. Der Parameter Force unterdrückt alle Benutzeraufforderungen und startet den WinRM-Dienst ohne Aufforderung neu. Die neue Ausgabe zeigt, dass die AccessDenied-Sicherheitsdeskriptoren aus allen Sitzungskonfigurationen entfernt wurden.
Beispiel 5: Loopbackverbindungen mit deaktivierten Sitzungsendpunktkonfigurationen
In diesem Beispiel wird veranschaulicht, wie Endpunktkonfigurationen deaktiviert sind und wie eine erfolgreiche Loopbackverbindung mit einem deaktivierten Endpunkt hergestellt wird. Disable-PSRemoting
deaktiviert alle PowerShell-Sitzungsendpunktkonfigurationen.
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
Die erste Verwendung von New-PSSession
Versuchen, eine Remotesitzung auf dem lokalen Computer zu erstellen. Dieser Verbindungstyp durchläuft den Netzwerkstapel und ist kein Loopback. Folglich schlägt der Verbindungsversuch mit dem deaktivierten Endpunkt mit einem Access-Fehler fehl .
Die zweite Verwendung von New-PSSession
Versuchen, eine Remotesitzung auf dem lokalen Computer zu erstellen.
In diesem Fall ist es erfolgreich, da es sich um eine Loopbackverbindung handelt, die den Netzwerkstapel umgeht.
Eine Loopbackverbindung wird erstellt, wenn die folgenden Bedingungen erfüllt sind:
- Der Computername, mit dem eine Verbindung hergestellt werden soll, ist "localhost".
- Es werden keine Anmeldeinformationen übergeben. Der aktuell angemeldete Benutzer (implizite Anmeldeinformationen) wird für die Verbindung verwendet.
- Der Parameter "EnableNetworkAccess switch" wird verwendet.
Weitere Informationen zu Loopbackverbindungen finden Sie im New-PSSession-Dokument .
Beispiel 6: Verhindern des Remotezugriffs auf Sitzungskonfigurationen mit benutzerdefinierten Sicherheitsdeskriptoren
In diesem Beispiel wird veranschaulicht, dass das Cmdlet den Disable-PSRemoting
Remotezugriff auf alle Sitzungskonfigurationen deaktiviert, die Sitzungskonfigurationen mit benutzerdefinierten Sicherheitsdeskriptoren enthalten.
Register-PSSessionConfiguration
erstellt die Testsitzungskonfiguration . Der Parameter FilePath gibt eine Sitzungskonfigurationsdatei an, die die Sitzung angepasst. Der Parameter ShowSecurityDescriptorUI zeigt ein Dialogfeld an, das Berechtigungen für die Sitzungskonfiguration festlegt. Im Dialogfeld "Berechtigungen" erstellen wir benutzerdefinierte Vollzugriffsberechtigungen für den angegebenen Benutzer.
Die Get-PSSessionConfiguration
Und Format-Table
Cmdlets zeigen die Sitzungskonfigurationen und deren Eigenschaften an. Die Ausgabe zeigt, dass die Testsitzungskonfiguration interaktiven Zugriff und spezielle Berechtigungen für den angegebenen Benutzer zulässt.
Disable-PSRemoting
deaktiviert den Remotezugriff auf alle Sitzungskonfigurationen.
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
Nun zeigen die Get-PSSessionConfiguration
Und Format-Table
Cmdlets an, dass ein AccessDenied-Sicherheitsdeskriptor für alle Netzwerkbenutzer allen Sitzungskonfigurationen hinzugefügt wird, einschließlich der Testsitzungskonfiguration . Obwohl die anderen Sicherheitsbeschreibungen nicht geändert werden, hat der Sicherheitsdeskriptor "network_deny_all" Vorrang. Dies wird durch den Versuch veranschaulicht, eine Verbindung mit der Testsitzungskonfiguration herzustellenNew-PSSession
.
Beispiel 7: Erneutes Aktivieren des Remotezugriffs auf ausgewählte Sitzungskonfigurationen
In diesem Beispiel wird veranschaulicht, wie der Remotezugriff nur auf ausgewählte Sitzungskonfigurationen erneut aktiviert wird. Nach dem Deaktivieren aller Sitzungskonfigurationen aktivieren wir eine bestimmte Sitzung erneut.
Das Set-PSSessionConfiguration
Cmdlet wird zum Ändern des Microsoft-Cmdlets verwendet. ServerManager-Sitzungskonfiguration . Der AccessMode-Parameter mit dem Wert "Remote erneut" ermöglicht den Remotezugriff auf die Konfiguration.
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
Parameter
-Confirm
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Force
Erzwingt die Ausführung des Befehls ohne Aufforderung zur Bestätigung durch den Benutzer.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliase: | wi |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Sie können keine Objekte an dieses Cmdlet weiterleiten.
Ausgaben
None
Dieses Cmdlet gibt keine Ausgabe zurück.
Hinweise
Durch das Deaktivieren der Sitzungskonfigurationen werden nicht alle Änderungen rückgängig gemacht, die von den
Enable-PSRemoting
Oder-CmdletsEnable-PSSessionConfiguration
vorgenommen wurden. Möglicherweise müssen Sie Änderungen wie folgt manuell rückgängig machen.- Beenden und deaktivieren Sie den WinRM-Dienst.
- Löschen Sie den Listener, der Anforderungen auf beliebigen IP-Adressen akzeptiert.
- Deaktivieren Sie die Firewallausnahmen für die WS-Verwaltungskommunikation.
- Setzen Sie den Wert von LocalAccountTokenFilterPolicy auf 0 zurück. Dadurch wird der Remotezugriff auf Mitglieder der Gruppe „Administratoren“ auf dem Computer beschränkt.
Eine Sitzungskonfiguration ist eine Gruppe von Einstellungen, die die Umgebung für eine Sitzung definieren. Jede Sitzung, die mit dem Computer verbunden wird, muss eine der auf dem Computer registrierten Sitzungskonfigurationen verwenden. Indem Sie den Remotezugriff auf alle Sitzungskonfigurationen verweigern, hindern Sie Remotebenutzer effektiv daran, Sitzungen einzurichten, die eine Verbindung mit dem Computer herstellen.
In Windows PowerShell 2.0
Disable-PSRemoting
wird ein Deny_All Eintrag zu den Sicherheitsdeskriptoren aller Sitzungskonfigurationen hinzugefügt. Diese Einstellung verhindert, dass alle Benutzer benutzerverwaltete Sitzungen auf dem lokalen Computer erstellen. In Windows PowerShell 3.0Disable-PSRemoting
wird ein Network_Deny_All Eintrag zu den Sicherheitsdeskriptoren aller Sitzungskonfigurationen hinzugefügt. 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
Disable-PSRemoting
ist das Äquivalent vonDisable-PSSessionConfiguration -Name *
. In Windows PowerShell 3.0 und höheren VersionenDisable-PSRemoting
entspricht dies derSet-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local