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