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 aus externen Quellen werden erneut blockiert Standard 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-PSRemotingEnable-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.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Erzwingt die Ausführung des Befehls ohne Aufforderung zur Bestätigung durch den Benutzer.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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-Cmdlets Enable-PSSessionConfiguration vorgenommen wurden. Möglicherweise müssen Sie Änderungen wie folgt manuell rückgängig machen.

    1. Beenden und deaktivieren Sie den WinRM-Dienst.
    2. Löschen Sie den Listener, der Anforderungen auf beliebigen IP-Adressen akzeptiert.
    3. Deaktivieren Sie die Firewallausnahmen für die WS-Verwaltungskommunikation.
    4. 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.0 Disable-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 von Disable-PSSessionConfiguration -Name *. In Windows PowerShell 3.0 und höheren Versionen Disable-PSRemoting entspricht dies der Set-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local