Udostępnij za pośrednictwem


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-PSSessionConfigurationtworzy 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 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 Disable-PSRemoting programu Windows PowerShell 3.0 lub nowszych jest odpowiednikiem Set-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local