Udostępnij za pomocą


Disable-PSRemoting

Uniemożliwia użytkownikom zdalnym uruchamianie poleceń na komputerze lokalnym.

Składnia

Default (domyślnie)

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

Opis

Polecenie cmdlet Disable-PSRemoting uniemożliwia użytkownikom na innych komputerach uruchamianie poleceń na komputerze lokalnym.

Disable-PSRemoting blokuje dostęp zdalny do wszystkich konfiguracji sesji na komputerze lokalnym. Uniemożliwia to użytkownikom zdalnym tworzenie tymczasowych lub trwałych sesji na komputerze lokalnym. Disable-PSRemoting nie uniemożliwia użytkownikom komputera lokalnego tworzenie sesji (pssessions) na komputerze lokalnym lub komputerach zdalnych.

Aby ponownie włączyć dostęp zdalny do wszystkich konfiguracji sesji, użyj polecenia cmdlet Enable-PSRemoting. 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.

W programie Windows PowerShell 2.0 Disable-PSRemoting uniemożliwia wszystkim użytkownikom tworzenie sesji zarządzanych przez użytkownika na komputerze lokalnym. W programie Windows PowerShell 3.0 Disable-PSRemoting 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.

Aby uruchomić to polecenie cmdlet, uruchom program Windows PowerShell z opcją Uruchom jako administrator.

UWAGA: W systemach z aparatem Windows PowerShell 3.0 i Windows PowerShell 2.0 nie należy używać programu Windows PowerShell 2.0 do uruchamiania poleceń cmdlet Enable-PSRemoting i Disable-PSRemoting poleceń cmdlet. Polecenia mogą się wydawać pomyślne, ale komunikacja zdalna nie jest poprawnie skonfigurowana. Polecenia zdalne, a później próby włączenia i wyłączenia komunikacji zdalnej mogą zakończyć się niepowodzeniem.

Przykłady

Przykład 1: Zapobieganie dostępowi zdalnemu do wszystkich konfiguracji sesji

PS C:\> Disable-PSRemoting

To polecenie uniemożliwia zdalny dostęp do wszystkich konfiguracji sesji na komputerze.

Przykład 2: Uniemożliwianie dostępu zdalnego do wszystkich konfiguracji sesji bez monitu o potwierdzenie

PS C:\> Disable-PSRemoting -Force

To polecenie uniemożliwia dostęp zdalny do wszystkich konfiguracji sesji na komputerze bez monitowania.

Przykład 3. Efekty uruchamiania tego polecenia cmdlet

PS C:\> Disable-PSRemoting -Force


[ADMIN] PS C:\> New-PSSession -ComputerName localhost


Id Name       ComputerName    State    Configuration         Availability
-- ----       ------------    -----    -------------         ------------
1 Session1   Server02...     Opened   Microsoft.PowerShell     Available
# On Server02 remote computer:
PS C:\> New-PSSession -ComputerName Server01

[SERVER01] Connecting to remote server failed with the following error
message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
+ CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionOpenFailed

W tym przykładzie pokazano efekt użycia polecenia cmdlet Disable-PSRemoting. Aby uruchomić tę sekwencję poleceń, uruchom program Windows PowerShell z opcją Uruchom jako administrator.

Pierwsze polecenie używa polecenia cmdlet Disable-PSRemoting, aby wyłączyć wszystkie zarejestrowane konfiguracje sesji na komputerze Server01.

Drugie polecenie używa polecenia cmdlet New-PSSession, aby utworzyć sesję zdalną na komputerze lokalnym (znanym również jako "sprzężenie zwrotne"). Polecenie kończy się pomyślnie.

Trzecie polecenie jest uruchamiane na komputerze zdalnym Server02. Polecenie używa polecenia cmdlet New-PSSession, aby utworzyć sesję na komputerze zdalnym Server01. Ponieważ dostęp zdalny jest wyłączony, polecenie kończy się niepowodzeniem.

Przykład 4. Efekty uruchamiania tego polecenia cmdlet i Enable-PSRemoting

PS C:\> Disable-PSRemoting -force

[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto

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


[ADMIN] PS C:\> Enable-PSRemoting -Force
WinRM already is set up to receive requests on this machine.
WinRM already is set up for remote management on this machine.

[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto

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

W tym przykładzie pokazano wpływ na konfiguracje sesji przy użyciu poleceń cmdlet Disable-PSRemoting i Enable-PSRemoting.

Pierwsze polecenie używa polecenia cmdlet Disable-PSRemoting, aby wyłączyć dostęp zdalny do wszystkich konfiguracji sesji. Parametr Force pomija wszystkie monity użytkownika.

Drugie polecenie używa polecenia cmdlet Get-PSSessionConfiguration do wyświetlania konfiguracji sesji na komputerze. Polecenie używa operatora potoku do wysyłania wyników do polecenia Format-Table, które wyświetla tylko właściwości Nazwa i Uprawnienie konfiguracji w tabeli.

Dane wyjściowe pokazują, że tylko użytkownicy zdalni nie mają dostępu do konfiguracji. Członkowie grupy Administratorzy na komputerze lokalnym mogą używać konfiguracji sesji. Dane wyjściowe pokazują również, że polecenie ma wpływ na wszystkie konfiguracje sesji, które obejmują konfigurację sesji utworzonej przez użytkownika za pomocą aplikacji WithProfile.

Trzecie polecenie używa polecenia cmdlet Enable-PSRemoting w celu ponownego włączenia dostępu zdalnego do wszystkich konfiguracji sesji na komputerze. Polecenie używa parametru Force, aby pominąć wszystkie monity użytkownika i ponownie uruchomić usługę WinRM bez monitowania.

Czwarte polecenie używa poleceń cmdlet Get-PSSessionConfiguration i Format-Table polecenia cmdlet do wyświetlania nazw i uprawnień konfiguracji sesji. Wyniki pokazują, że deskryptory zabezpieczeń AccessDenied zostały usunięte ze wszystkich konfiguracji sesji.

Przykład 5: Zapobieganie dostępowi zdalnemu do konfiguracji sesji, które mają niestandardowe deskryptory zabezpieczeń

PS C:\> Register-PSSessionConfiguration -Name Test -FilePath .\TestEndpoint.pssc -ShowSecurityDescriptorUI

[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap

Name                          Permission
----                          ----------
microsoft.powershell          BUILTIN\Administrators AccessAllowed
Test                          NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
DOMAIN01\User01 AccessAllowed

[ADMIN] PS C:\> Disable-PSRemoting -Force


[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap

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

# Domain01\User01

PS C:\> New-PSSession -ComputerName Server01 -ConfigurationName Test
[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

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ń.

Pierwsze polecenie używa polecenia cmdlet Register-PSSessionConfiguration do utworzenia konfiguracji sesji testowej. Polecenie używa parametru FilePath, aby określić plik konfiguracji sesji, który dostosowuje sesję i ShowSecurityDescriptorUI parametru, aby wyświetlić okno dialogowe ustawiające uprawnienia do konfiguracji sesji. W oknie dialogowym Uprawnienia tworzymy niestandardowe uprawnienia pełnego dostępu dla użytkownika Domain01\User01.

Drugie polecenie używa poleceń cmdlet Get-PSSessionConfiguration i Format-Table polecenia cmdlet do wyświetlania konfiguracji sesji i ich właściwości. Dane wyjściowe pokazują, że konfiguracja sesji testowej umożliwia interakcyjny dostęp i specjalne uprawnienia dla użytkownika Domain01\User01.

Trzecie polecenie używa polecenia cmdlet Disable-PSRemoting, aby wyłączyć dostęp zdalny do wszystkich konfiguracji sesji.

Czwarte polecenie używa poleceń cmdlet Get-PSSessionConfiguration i Format-Table poleceń cmdlet, aby wyświetlić konfiguracje sesji i ich właściwości. Dane wyjściowe pokazują, że deskryptor zabezpieczeń AccessDenied dla wszystkich użytkowników sieciowych jest dodawany do wszystkich konfiguracji sesji, które obejmują konfigurację sesji testowej. Mimo że inne deskryptory zabezpieczeń nie są zmieniane, deskryptor zabezpieczeń "network_deny_all" ma pierwszeństwo.

Piąte polecenie pokazuje, że polecenie Disable-PSRemoting uniemożliwia nawet użytkownikowi Domain01\User01, który ma specjalne uprawnienia do konfiguracji sesji testowej z użyciem konfiguracji sesji testowej w celu zdalnego nawiązania połączenia z komputerem.

Przykład 6. Ponowne włączanie dostępu zdalnego do wybranych konfiguracji sesji

PS C:\> Disable-PSRemoting -Force


[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto

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

[ADMIN] PS C:\> Set-PSSessionConfiguration -Name Microsoft.ServerManager -AccessMode Remote -Force

[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto

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

W tym przykładzie pokazano, jak ponownie włączyć dostęp zdalny tylko do wybranych konfiguracji sesji.

Pierwsze polecenie używa polecenia cmdlet Disable-PSRemoting, aby wyłączyć dostęp zdalny do wszystkich konfiguracji sesji.

Drugie polecenie używa poleceń cmdlet Get-PSSessionConfiguration i Format-Table polecenia cmdlet do wyświetlania konfiguracji sesji i ich właściwości. Dane wyjściowe pokazują, że deskryptor zabezpieczeń AccessDenied dla wszystkich użytkowników sieciowych jest dodawany do wszystkich konfiguracji sesji.

Trzecie polecenie używa polecenia cmdlet Set-PSSessionConfiguration. Polecenie używa parametru AccessMode z wartością Remote, aby umożliwić zdalny dostęp do konfiguracji sesji Microsoft.ServerManager. Można również użyć parametru AccessMode, aby włączyć dostęp lokalny i wyłączyć konfiguracje sesji.

Czwarte polecenie używa poleceń cmdlet Get-PSSessionConfiguration i Format-Table poleceń cmdlet, aby wyświetlić konfiguracje sesji i ich właściwości. Dane wyjściowe pokazują, że deskryptor zabezpieczeń AccessDenied dla wszystkich użytkowników sieci jest usuwany, przywracając w ten sposób zdalny dostęp do konfiguracji sesji Microsoft.ServerManager.

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 przekazać danych wejściowych potoku do tego polecenia cmdlet.

Dane wyjściowe

None

To polecenie cmdlet nie zwraca żadnego obiektu.

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.

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 zdalny dostęp 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

W programie Windows PowerShell 2.0 Disable-PSRemoting jest funkcją. Począwszy od programu Windows PowerShell 3.0, jest to polecenie cmdlet.