Disable-PSRemoting
Zapobiega odbieraniu połączeń zdalnych przez punkty końcowe programu PowerShell.
Składnia
Disable-PSRemoting
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Opis
Polecenie Disable-PSRemoting
cmdlet blokuje zdalny dostęp do wszystkich konfiguracji punktów końcowych sesji programu Windows PowerShell na komputerze lokalnym. Obejmuje to wszystkie punkty końcowe utworzone przez program PowerShell 6 lub nowszy.
Aby ponownie włączyć zdalny dostęp do wszystkich konfiguracji sesji, użyj Enable-PSRemoting
polecenia cmdlet . Obejmuje to wszystkie punkty końcowe utworzone przez program PowerShell 6 lub nowszy. Aby włączyć zdalny dostęp do wybranych konfiguracji sesji, użyj parametru Set-PSSessionConfiguration
AccessMode polecenia cmdlet.
Można również użyć Enable-PSSessionConfiguration
poleceń cmdlet i Disable-PSSessionConfiguration
, aby włączyć i wyłączyć konfiguracje sesji dla wszystkich użytkowników. Aby uzyskać więcej informacji na temat konfiguracji sesji, zobacz Informacje o konfiguracjach sesji.
Uwaga
Nawet po uruchomieniu Disable-PSRemoting
można nadal tworzyć połączenia sprzężenia zwrotnego na komputerze lokalnym. Połączenie sprzężenia zwrotnego to sesja zdalna programu PowerShell, która pochodzi z tej samej maszyny lokalnej i nawiązuje połączenie z tą samą maszyną lokalną. Sesje zdalne ze źródeł zewnętrznych pozostają zablokowane. W przypadku połączeń sprzężenia zwrotnego należy użyć niejawnych poświadczeń wraz z parametrem EnableNetworkAccess . Aby uzyskać więcej informacji na temat połączeń sprzężenia zwrotnego, zobacz New-PSSession.
Aby uruchomić to polecenie cmdlet, uruchom program Windows PowerShell z opcją Uruchom jako administrator .
Przykłady
Przykład 1: Zapobieganie dostępowi zdalnemu do wszystkich konfiguracji sesji
Ten przykład uniemożliwia zdalny dostęp do wszystkich konfiguracji punktów końcowych sesji programu PowerShell na komputerze.
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.
Przykład 2: Uniemożliwianie dostępu zdalnego do wszystkich konfiguracji sesji bez monitu o potwierdzenie
Ten przykład uniemożliwia dostęp zdalny do wszystkich konfiguracji punktów końcowych sesji programu PowerShell na komputerze bez monitowania.
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.
Przykład 3. Efekty uruchamiania tego polecenia cmdlet
W tym przykładzie pokazano efekt użycia Disable-PSRemoting
polecenia cmdlet . Aby uruchomić tę sekwencję poleceń, uruchom program PowerShell przy użyciu opcji Uruchom jako administrator .
Po wyłączeniu konfiguracji New-PSSession
sesji polecenie cmdlet próbuje utworzyć sesję zdalną na komputerze lokalnym (znanym również jako "sprzężenie zwrotne"). Ponieważ dostęp zdalny jest wyłączony na komputerze lokalnym, polecenie kończy się niepowodzeniem.
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
Przykład 4. Efekty uruchamiania tego polecenia cmdlet i Enable-PSRemoting
W tym przykładzie pokazano wpływ na konfiguracje sesji przy użyciu Disable-PSRemoting
poleceń cmdlet i Enable-PSRemoting
.
Disable-PSRemoting
Służy do wyłączania dostępu zdalnego do wszystkich konfiguracji punktów końcowych sesji programu PowerShell. Parametr Force pomija wszystkie monity użytkownika. Polecenia Get-PSSessionConfiguration
cmdlet i Format-Table
wyświetlają konfiguracje sesji na komputerze.
Dane wyjściowe pokazują, że wszyscy użytkownicy zdalni z tokenem sieciowym nie mają dostępu do konfiguracji punktu końcowego. Administratorzy grupy na komputerze lokalnym mogą uzyskiwać dostęp do konfiguracji punktów końcowych, o ile łączą się lokalnie (znane również jako sprzężenie zwrotne) i używają niejawnych poświadczeń.
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
Polecenie Enable-PSRemoting
cmdlet ponownie włącza zdalny dostęp do wszystkich konfiguracji punktów końcowych sesji programu PowerShell na komputerze. Parametr Force pomija wszystkie monity użytkownika i uruchamia ponownie usługę WinRM bez monitowania. Nowe dane wyjściowe pokazują, że deskryptory zabezpieczeń AccessDenied zostały usunięte ze wszystkich konfiguracji sesji.
Przykład 5. Połączenia sprzężenia zwrotnego z wyłączonymi konfiguracjami punktów końcowych sesji
W tym przykładzie pokazano, jak są wyłączone konfiguracje punktów końcowych i pokazano, jak nawiązać pomyślne połączenie sprzężenia zwrotnego z wyłączonym punktem końcowym. Disable-PSRemoting
wyłącza wszystkie konfiguracje punktów końcowych sesji programu 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
Pierwsze użycie New-PSSession
prób utworzenia sesji zdalnej na komputerze lokalnym. Ten typ połączenia przechodzi przez stos sieciowy i nie jest sprzężenia zwrotnego. W związku z tym próba nawiązania połączenia z wyłączonym punktem końcowym kończy się niepowodzeniem z powodu błędu odmowy dostępu.
Drugie użycie New-PSSession
programu próbuje również utworzyć sesję zdalną na maszynie lokalnej.
W takim przypadku zakończy się powodzeniem, ponieważ jest to połączenie sprzężenia zwrotnego, które pomija stos sieciowy.
Połączenie sprzężenia zwrotnego jest tworzone po spełnieniu następujących warunków:
- Nazwa komputera do nawiązania połączenia to "localhost".
- Nie są przekazywane żadne poświadczenia. Bieżący zalogowany użytkownik (niejawne poświadczenia) jest używany na potrzeby połączenia.
- Jest używany parametr przełącznika EnableNetworkAccess .
Aby uzyskać więcej informacji na temat połączeń sprzężenia zwrotnego, zobacz dokument New-PSSession .
Przykład 6: Zapobieganie zdalnym dostępowi do konfiguracji sesji, które mają niestandardowe deskryptory zabezpieczeń
W tym przykładzie Disable-PSRemoting
pokazano, że polecenie cmdlet wyłącza dostęp zdalny do wszystkich konfiguracji sesji, które obejmują konfiguracje sesji z niestandardowymi deskryptorami zabezpieczeń.
Register-PSSessionConfiguration
tworzy konfigurację sesji testowej. Parametr FilePath określa plik konfiguracji sesji, który dostosowuje sesję. Parametr ShowSecurityDescriptorUI wyświetla okno dialogowe, które ustawia uprawnienia do konfiguracji sesji. W oknie dialogowym Uprawnienia tworzymy niestandardowe uprawnienia pełnego dostępu dla wskazanego użytkownika.
Polecenia Get-PSSessionConfiguration
cmdlet i Format-Table
wyświetlają konfiguracje sesji i ich właściwości. Dane wyjściowe pokazują, że konfiguracja sesji testowej umożliwia interakcyjny dostęp i specjalne uprawnienia dla wskazanego użytkownika.
Disable-PSRemoting
wyłącza dostęp zdalny do wszystkich konfiguracji sesji.
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
Teraz polecenia Get-PSSessionConfiguration
cmdlet i Format-Table
pokazują, że deskryptor zabezpieczeń AccessDenied dla wszystkich użytkowników sieciowych jest dodawany do wszystkich konfiguracji sesji, w tym do konfiguracji sesji testowej. Mimo że inne deskryptory zabezpieczeń nie są zmieniane, deskryptor zabezpieczeń "network_deny_all" ma pierwszeństwo. Jest to zilustrowane przez próbę New-PSSession
nawiązania połączenia z konfiguracją sesji testowej.
Przykład 7. Ponowne włączanie dostępu zdalnego do wybranych konfiguracji sesji
W tym przykładzie pokazano, jak ponownie włączyć dostęp zdalny tylko do wybranych konfiguracji sesji. Po wyłączeniu wszystkich konfiguracji sesji ponownie włączymy określoną sesję.
Polecenie Set-PSSessionConfiguration
cmdlet służy do zmiany firmy Microsoft. Konfiguracja sesji ServerManager . Parametr AccessMode z wartością Remote ponownie umożliwia zdalny dostęp do konfiguracji.
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
Parametry
-Confirm
Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Force
Wymusza uruchomienie polecenia bez monitowania o potwierdzenie użytkownika.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-WhatIf
Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
None
Nie można potokować obiektów do tego polecenia cmdlet.
Dane wyjściowe
None
To polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Uwagi
Wyłączenie konfiguracji sesji nie powoduje cofnięcia wszystkich zmian wprowadzonych przez
Enable-PSRemoting
polecenia cmdlet lubEnable-PSSessionConfiguration
. Może być konieczne ręczne cofnięcie następujących zmian.- Zatrzymaj i wyłącz usługę WinRM.
- Usuń odbiornik, który akceptuje żądania na dowolnym adresie IP.
- Wyłącz wyjątki zapory dla komunikacji WS-Management.
- Przywróć wartość LocalAccountTokenFilterPolicy na 0, co ogranicza dostęp zdalny do członków grupy Administratorzy na komputerze.
Konfiguracja sesji to grupa ustawień, które definiują środowisko dla sesji. Każda sesja łącząca się z komputerem musi używać jednej z konfiguracji sesji zarejestrowanych na komputerze. Odmawiając dostępu zdalnego do wszystkich konfiguracji sesji, można skutecznie uniemożliwić użytkownikom zdalnym ustanawianie sesji łączących się z komputerem.
W programie Windows PowerShell 2.0
Disable-PSRemoting
dodaje wpis Deny_All do deskryptorów zabezpieczeń wszystkich konfiguracji sesji. To ustawienie uniemożliwia wszystkim użytkownikom tworzenie sesji zarządzanych przez użytkownika na komputerze lokalnym. W programie Windows PowerShell 3.0Disable-PSRemoting
dodaje wpis Network_Deny_All do deskryptorów zabezpieczeń wszystkich konfiguracji sesji. To ustawienie uniemożliwia użytkownikom na innych komputerach tworzenie sesji zarządzanych przez użytkownika na komputerze lokalnym, ale umożliwia użytkownikom komputera lokalnego tworzenie sesji sprzężenia zwrotnego zarządzanego przez użytkownika.W programie Windows PowerShell 2.0
Disable-PSRemoting
jest odpowiednikiem .Disable-PSSessionConfiguration -Name *
W wersjachDisable-PSRemoting
programu Windows PowerShell 3.0 lub nowszych jest odpowiednikiemSet-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local