Udostępnij przez


Disable-PSRemoting

Zapobiega odbieraniu połączeń zdalnych przez punkty końcowe programu PowerShell.

Składnia

Default (domyślnie)

Disable-PSRemoting
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Opis

Polecenie cmdlet Disable-PSRemoting 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ć dostęp zdalny do wszystkich konfiguracji sesji, użyj polecenia cmdlet Enable-PSRemoting. Obejmuje to wszystkie punkty końcowe utworzone przez program PowerShell 6 lub nowszy. Aby włączyć dostęp zdalny do wybranych konfiguracji sesji, użyj parametru AccessMode polecenia cmdlet Set-PSSessionConfiguration. Można również użyć poleceń cmdlet Enable-PSSessionConfiguration 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 about_Session_Configurations.

Uwaga / Notatka

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ń wzdłuż parametru 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 przy użyciu opcji 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 polecenia cmdlet Disable-PSRemoting. Aby uruchomić tę sekwencję poleceń, uruchom program PowerShell przy użyciu opcji Uruchom jako administrator.

Po wyłączeniu konfiguracji sesji polecenie cmdlet New-PSSession 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 poleceń cmdlet Disable-PSRemoting 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 cmdlet Get-PSSessionConfiguration 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 cmdlet Enable-PSRemoting 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óbuje utworzyć sesję zdalną na maszynie lokalnej. 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 odmowy dostępu błędu.

Drugie użycie New-PSSession również próbuje utworzyć sesję zdalną na komputerze lokalnym. 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.
  • Używany jest 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 pokazano, że polecenie cmdlet Disable-PSRemoting wyłącza dostęp zdalny do wszystkich konfiguracji sesji, które obejmują konfiguracje sesji z niestandardowymi deskryptorami zabezpieczeń.

Register-PSSessionConfiguration tworzy konfigurację sesji Test. 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 cmdlet Get-PSSessionConfiguration 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 zdalny dostęp 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 cmdlet Get-PSSessionConfiguration i Format-Table pokazują, że deskryptor zabezpieczeń programu AccessDenied dla wszystkich użytkowników sieciowych jest dodawany do wszystkich konfiguracji sesji, w tym do konfiguracji sesji Test. Mimo że inne deskryptory zabezpieczeń nie są zmieniane, deskryptor zabezpieczeń "network_deny_all" ma pierwszeństwo. Jest to zilustrowane przez próbę użycia New-PSSession do nawiązania połączenia z konfiguracją sesji Test.

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 cmdlet Set-PSSessionConfiguration służy do zmiany microsoft. ServerManager konfiguracji sesji. Parametr AccessMode z wartością Remote ponownie włącza 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

Prosi o potwierdzenie przed uruchomieniem cmdletu.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:por

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Force

Wymusza uruchomienie polecenia bez monitowania o potwierdzenie użytkownika.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-WhatIf

Pokazuje, co się stanie, jeśli polecenie cmdlet zostanie uruchomione. Cmdlet nie jest uruchomiony.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:Wi

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

Dane wejściowe

None

Nie można przekazywać obiektów do tego cmdletu.

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 polecenia cmdlet Enable-PSRemoting lub Enable-PSSessionConfiguration. Może być konieczne ręczne cofnięcie następujących zmian.

    1. Zatrzymaj i wyłącz usługę WinRM.
    2. Usuń odbiornik, który akceptuje żądania na dowolnym adresie IP.
    3. Wyłącz wyjątki zapory dla komunikacji WS-Management.
    4. 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.0 Disable-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 wersjach programu Windows PowerShell 3.0 lub nowszych Disable-PSRemoting jest odpowiednikiem Set-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local