Disable-PSRemoting
Запрещает конечным точкам PowerShell получать удаленные подключения.
Синтаксис
Disable-PSRemoting
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Этот командлет доступен только на платформе Windows.
Командлет Disable-PSRemoting
блокирует удаленный доступ ко всем конфигурациям конечных точек сеанса PowerShell версии 6 и более поздних версий на локальном компьютере. Это не влияет на конфигурации конечных точек Windows PowerShell. Чтобы отключить конфигурации конечных точек сеанса Windows PowerShell, выполните команду Disable-PSRemoting
из сеанса Windows PowerShell.
Чтобы повторно включить удаленный доступ ко всем конфигурациям конечных точек сеанса PowerShell версии 6 и более поздних версий, используйте командлет Enable-PSRemoting
. Чтобы повторно включить удаленный доступ ко всем конфигурациям конечных точек сеанса Windows PowerShell, запустите Enable-PSRemoting
из сеанса Windows PowerShell.
Заметка
Если вы хотите отключить весь удаленный доступ PowerShell к локальному компьютеру Windows, необходимо выполнить эту команду как из сеанса PowerShell версии 6, так и из сеанса Windows PowerShell. Windows PowerShell устанавливается на всех компьютерах Windows по умолчанию.
Чтобы отключить и повторно включить удаленный доступ к определенным конфигурациям конечных точек сеанса, используйте командлеты Enable-PSSessionConfiguration
и Disable-PSSessionConfiguration
. Чтобы задать определенные конфигурации доступа отдельных конечных точек, используйте командлет Set-PSSessionConfiguration
вместе с параметром AccessMode. Дополнительные сведения о конфигурациях сеансов см. в about_Session_Configurations.
Заметка
Даже после выполнения Disable-PSRemoting
вы по-прежнему можете выполнять подключения обратного цикла на локальном компьютере. Подключение к циклу — это удаленный сеанс PowerShell, исходящий из и подключающийся к одному локальному компьютеру. Удаленные сеансы из внешних источников остаются заблокированными. Для подключений к циклу необходимо использовать неявные учетные данные вдоль параметра EnableNetworkAccess. Дополнительные сведения о подключениях обратного цикла см. в New-PSSession.
Этот командлет доступен только на платформе Windows. Он недоступен в версиях PowerShell для Linux или macOS. Чтобы запустить этот командлет, запустите PowerShell с параметром запуск от имени администратора.
Примеры
Пример 1. Запрет удаленного доступа ко всем конфигурациям сеанса PowerShell
Этот пример запрещает удаленный доступ ко всем конфигурациям конечных точек сеанса PowerShell на компьютере.
Disable-PSRemoting
WARNING: PowerShell remoting has been disabled only for PowerShell 6+ configurations and does not affect
Windows PowerShell remoting configurations. Run this cmdlet in Windows PowerShell to affect all PowerShell
remoting configurations.
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.
Пример 2. Запрет удаленного доступа ко всем конфигурациям сеанса PowerShell без запроса подтверждения
Этот пример предотвращает удаленный доступ ко всем конфигурациям конечных точек сеанса PowerShell на компьютере без запроса.
Disable-PSRemoting -Force
WARNING: PowerShell remoting has been disabled only for PowerShell 6+ configurations and does not affect
Windows PowerShell remoting configurations. Run this cmdlet in Windows PowerShell to affect all PowerShell
remoting configurations.
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.
Пример 3. Эффекты выполнения этого командлета
В этом примере показан эффект использования командлета Disable-PSRemoting
. Чтобы запустить эту последовательность команд, запустите PowerShell с параметром запуск от имени администратора.
После отключения конфигураций сеансов командлет New-PSSession
пытается создать удаленный сеанс на локальном компьютере (также называется "цикл обратной связью"). Так как удаленный доступ отключен на локальном компьютере, команда завершается ошибкой.
Disable-PSRemoting -Force
New-PSSession -ComputerName localhost -ConfigurationName PowerShell.6
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
Пример 4. Эффекты выполнения этого командлета и Enable-PSRemoting
В этом примере показано влияние на конфигурации сеанса с помощью командлетов Disable-PSRemoting
и Enable-PSRemoting
.
Disable-PSRemoting
используется для отключения удаленного доступа ко всем конфигурациям конечных точек сеанса PowerShell. Параметр Force подавляет все запросы пользователей. Командлеты Get-PSSessionConfiguration
и Format-Table
отображают конфигурации сеансов на компьютере.
В выходных данных показано, что всем удаленным пользователям с сетевым маркером запрещен доступ к конфигурациям конечных точек. Администраторы группы на локальном компьютере могут получить доступ к конфигурациям конечных точек, если они подключаются локально (также называются циклом) и используют неявные учетные данные.
Disable-PSRemoting -force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
Enable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
Name Permission
---- ----------
PowerShell.6 NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...
PowerShell.6.2.0 NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...
Name Permission
---- ----------
PowerShell.6 NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...
PowerShell.6.2.0 NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...
Командлет Enable-PSRemoting
повторно включает удаленный доступ ко всем конфигурациям конечных точек сеанса PowerShell на компьютере. Параметр Force подавляет все запросы пользователей и перезапускает службу WinRM без запроса. В новых выходных данных показано, что AccessDenied дескрипторы безопасности были удалены из всех конфигураций сеансов.
Пример 5. Подключение к циклу с отключенными конфигурациями конечных точек сеанса
В этом примере показано, как отключены конфигурации конечных точек и как сделать успешное подключение к отключенной конечной точке.
Disable-PSRemoting
отключает все конфигурации конечных точек сеанса PowerShell.
Disable-PSRemoting -Force
WARNING: PowerShell remoting has been disabled only for PowerShell 6+ configurations and does not affect
Windows PowerShell remoting configurations. Run this cmdlet in Windows PowerShell to affect all PowerShell
remoting configurations.
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 -ComputerName localhost -ConfigurationName powershell.6 -Credential (Get-Credential)
PowerShell credential request
Enter your credentials.
User: UserName
Password for user UserName: ************
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.
New-PSSession -ComputerName localhost -ConfigurationName powershell.6 -EnableNetworkAccess
Id Name Transport ComputerName ComputerType State ConfigurationName Availability
-- ---- --------- ------------ ------------ ----- ----------------- ------------
1 Runspace1 WSMan localhost RemoteMachine Opened powershell.6 Available
Первое использование New-PSSession
пытается создать удаленный сеанс на локальном компьютере. Параметр ConfigurationName используется для указания отключенной конечной точки PowerShell. Учетные данные явно передаются команде через параметр Credential. Этот тип подключения проходит через сетевой стек и не является циклом обратной связи. Следовательно, попытка подключения к отключенной конечной точке завершается сбоем с ошибкой Access.
Второе использование New-PSSession
также пытается создать удаленный сеанс на локальном компьютере.
В этом случае это происходит успешно, так как это подключение обратного цикла, которое проходит сетевой стек.
Соединение обратного цикла создается при выполнении следующих условий:
- Имя компьютера для подключения — localhost.
- Учетные данные не передаются. Для подключения используется текущий вход пользователя (неявные учетные данные).
- Используется параметр коммутатора EnableNetworkAccess.
Дополнительные сведения о подключениях обратного цикла см. в документе New-PSSession.
Пример 6. Отключение всех конфигураций конечных точек удаленного взаимодействия PowerShell
В этом примере показано, как выполнение команды Disable-PSRemoting
не влияет на конфигурации конечных точек Windows PowerShell.
Get-PSSessionConfiguration
запустить в Windows PowerShell все конфигурации конечных точек. Мы видим, что конфигурации конечных точек Windows PowerShell не отключены.
Disable-PSRemoting -Force
powershell.exe -command 'Get-PSSessionConfiguration'
WARNING: PowerShell remoting has been disabled only for PowerShell 6+ configurations and does not affect
Windows PowerShell remoting configurations. Run this cmdlet in Windows PowerShell to affect all PowerShell
remoting configurations.
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 : microsoft.powershell
PSVersion : 5.1
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed, BUILTIN\Remote
Management Users AccessAllowed
Name : microsoft.powershell.workflow
PSVersion : 5.1
StartupScript :
RunAsUser :
Permission : BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Name : microsoft.powershell32
PSVersion : 5.1
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed, BUILTIN\Remote
Management Users AccessAllowed
Name : PowerShell.6
PSVersion : 6.2
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Name : PowerShell.6.2.2
PSVersion : 6.2
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
powershell.exe -command 'Disable-PSRemoting -Force'
powershell.exe -command 'Get-PSSessionConfiguration'
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 : microsoft.powershell
PSVersion : 5.1
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Name : microsoft.powershell.workflow
PSVersion : 5.1
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management
Users AccessAllowed
Name : microsoft.powershell32
PSVersion : 5.1
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Name : PowerShell.6
PSVersion : 6.2
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Name : PowerShell.6.2.2
PSVersion : 6.2
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Чтобы отключить эти конфигурации конечных точек, команда Disable-PSRemoting
должна выполняться из сеанса Windows PowerShell. Теперь Get-PSSessionConfiguration
запуск из Windows PowerShell показывает, что все конфигурации конечных точек отключены.
Пример 7. Запрет удаленного доступа к конфигурациям сеансов с пользовательскими дескрипторами безопасности
В этом примере показано, что командлет Disable-PSRemoting
отключает удаленный доступ ко всем конфигурациям сеансов, включая конфигурации сеансов с пользовательскими дескрипторами безопасности.
Командлеты Get-PSSessionConfiguration
и Format-Table
отображают конфигурации сеанса и их свойства. В выходных данных показано, что конфигурация сеанса теста
Disable-PSRemoting
отключает удаленный доступ ко всем конфигурациям сеанса.
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
---- ----------
PowerShell.6 NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
BUILTIN\Remote Management Users AccessAllowed
PowerShell.6.2.0 NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
BUILTIN\Remote Management Users AccessAllowed
Test NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
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
---- ----------
PowerShell.6 NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
PowerShell.6.2.0 NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Test NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed, User01 AccessAllowed
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 Test
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.Management.A\u2026tion.RemoteRunspace:RemoteRunspace)
[New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed
Теперь командлеты Get-PSSessionConfiguration
и Format-Table
показывают, что AccessDenied дескриптор безопасности для всех сетевых пользователей добавляется ко всем конфигурациям сеанса, включая конфигурацию сеанса тестирования. Хотя другие дескрипторы безопасности не изменяются, дескриптор безопасности network_deny_all имеет приоритет. Это показано попыткой использовать New-PSSession
для подключения к конфигурации сеанса test.
Пример 8. Повторное включение удаленного доступа к выбранным конфигурациям сеанса
В этом примере показано, как повторно включить удаленный доступ только к выбранным конфигурациям сеанса. После отключения всех конфигураций сеансов мы повторно включите определенный сеанс.
Командлет Set-PSSessionConfiguration
используется для изменения конфигурации сеанса PowerShell.6. Параметр AccessMode со значением Remote повторно включает удаленный доступ к конфигурации.
Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
Set-PSSessionConfiguration -Name PowerShell.6 -AccessMode Remote -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
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
---- ----------
PowerShell.6 NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Adm ...
PowerShell.6.2.0 NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Adm ...
Name Permission
---- ----------
PowerShell.6 NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed, BUILTIN\ ...
PowerShell.6.2.0 NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Adm ...
Параметры
-Confirm
Запрашивает подтверждение перед запуском командлета.
Тип: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Force
Принудительно выполняется команда без запроса подтверждения пользователя.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-WhatIf
Показывает, что произойдет, если командлет выполняется. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
None
Невозможно передать объекты в этот командлет.
Выходные данные
None
Этот командлет не создает выходные данные.
Примечания
Этот командлет доступен только на платформах Windows.
Отключение конфигураций сеанса не отменяет все изменения, внесенные командлетами
Enable-PSRemoting
илиEnable-PSSessionConfiguration
. Возможно, вам придется отменить следующие изменения вручную.- Остановите и отключите службу WinRM.
- Удалите прослушиватель, принимаюющий запросы на любой IP-адрес.
- Отключите исключения брандмауэра для обмена данными WS-Management.
- Восстановите значение LocalAccountTokenFilterPolicy до 0, которое ограничивает удаленный доступ к членам группы администраторов на компьютере.
Конфигурация конечной точки сеанса — это группа параметров, определяющих среду для сеанса. Каждый сеанс, подключающийся к компьютеру, должен использовать одну из конфигураций конечной точки сеанса, зарегистрированных на компьютере. Запретив удаленный доступ ко всем конфигурациям конечных точек сеанса, удаленные пользователи не могут устанавливать сеансы, подключающиеся к компьютеру.