Disable-PSRemoting
Запрещает удаленным пользователям выполнять команды на локальном компьютере.
Синтаксис
Disable-PSRemoting
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет Disable-PSRemoting запрещает пользователям на других компьютерах выполнять команды на локальном компьютере.
Disable-PSRemoting блокирует удаленный доступ ко всем конфигурациям сеансов на локальном компьютере. Это позволяет удаленным пользователям создавать временные или постоянные сеансы на локальном компьютере. Disable-PSRemoting не запрещает пользователям локального компьютера создавать сеансы (PSSessions) на локальном компьютере или удаленных компьютерах.
Чтобы повторно включить удаленный доступ ко всем конфигурациям сеанса, используйте командлет Enable-PSRemoting. Чтобы включить удаленный доступ к выбранным конфигурациям сеансов, используйте параметр AccessMode командлета Set-PSSessionConfiguration. Вы также можете использовать командлеты Enable-PSSessionConfiguration и Disable-PSSessionConfiguration для включения и отключения конфигураций сеансов для всех пользователей. Дополнительные сведения о конфигурациях сеансов см. в about_Session_Configurations.
В Windows PowerShell 2.0 Disable-PSRemoting запрещает всем пользователям создавать управляемые пользователем сеансы на локальном компьютере. В Windows PowerShell 3.0 Disable-PSRemoting запрещает пользователям создавать сеансы, управляемые пользователем на локальном компьютере, но позволяют пользователям локального компьютера создавать сеансы, управляемые пользователем.
Чтобы запустить этот командлет, запустите Windows PowerShell с параметром "Запуск от имени администратора".
ВНИМАНИЕ. В системах с Windows PowerShell 3.0 и подсистемой Windows PowerShell 2.0 не используйте Windows PowerShell 2.0 для запуска enable-PSRemoting и командлетов Disable-PSRemoting. Команды могут оказаться успешными, но удаленное взаимодействие настроено неправильно. Удаленные команды и более поздние попытки включить и отключить удаленное взаимодействие, скорее всего, завершаются сбоем.
Примеры
Пример 1. Запрет удаленного доступа ко всем конфигурациям сеанса
PS C:\> Disable-PSRemoting
Эта команда предотвращает удаленный доступ ко всем конфигурациям сеансов на компьютере.
Пример 2. Запрет удаленного доступа ко всем конфигурациям сеанса без запроса подтверждения
PS C:\> Disable-PSRemoting -Force
Эта команда предотвращает удаленный доступ ко всем конфигурациям сеансов на компьютере без запроса.
Пример 3. Эффекты выполнения этого командлета
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
В этом примере показан эффект использования командлета Disable-PSRemoting. Чтобы запустить эту последовательность команд, запустите Windows PowerShell с параметром "Запуск от имени администратора".
Первая команда использует командлет disable-PSRemoting
Вторая команда использует командлет New-PSSession для создания удаленного сеанса на локальном компьютере (также называемого "loopback"). Команда успешно выполнена.
Третья команда выполняется на удаленном компьютере Server02. Команда использует командлет New-PSSession для создания сеанса на удаленном компьютере Server01. Так как удаленный доступ отключен, команда завершается ошибкой.
Пример 4. Эффекты выполнения этого командлета и 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
В этом примере показано влияние на конфигурации сеанса с помощью командлетов disable-PSRemoting и Enable-PSRemoting.
Первая команда использует командлет disable-PSRemoting
Вторая команда использует командлет Get-PSSessionConfiguration для отображения конфигураций сеанса на компьютере. Команда использует оператор конвейера для отправки результатов в команду Format-Table, которая отображает только свойства имени и разрешения конфигураций в таблице.
В выходных данных показано, что доступ к конфигурациям запрещен только удаленным пользователям. Члены группы администраторов на локальном компьютере могут использовать конфигурации сеанса. В выходных данных также показано, что команда влияет на все конфигурации сеансов, включающие конфигурацию сеанса, созданную пользователем, WithProfile.
Третья команда использует командлет Enable-PSRemoting для повторного включения удаленного доступа ко всем конфигурациям сеансов на компьютере. Команда использует параметр Force для подавления всех запросов пользователей и перезапуска службы WinRM без запроса.
Четвертая команда использует командлеты Get-PSSessionConfiguration и командлеты Format-Table для отображения имен и разрешений конфигураций сеанса. Результаты показывают, что дескрипторы безопасности AccessDenied были удалены из всех конфигураций сеансов.
Пример 5. Запрет удаленного доступа к конфигурациям сеансов с пользовательскими дескрипторами безопасности
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
В этом примере показано, что командлет disable-PSRemoting отключает удаленный доступ ко всем конфигурациям сеансов, включая конфигурации сеансов с пользовательскими дескрипторами безопасности.
Первая команда использует командлет Register-PSSessionConfiguration для создания конфигурации сеанса тестирования. Команда использует параметр FilePath для указания файла конфигурации сеанса, который настраивает сеанс и параметр ShowSecurityDescriptorUI для отображения диалогового окна, которое задает разрешения для конфигурации сеанса. В диалоговом окне "Разрешения" мы создадим пользовательские разрешения полного доступа для пользователя Domain01\User01.
Вторая команда использует командлеты Get-PSSessionConfiguration и командлеты Format-Table для отображения конфигураций сеансов и их свойств. В выходных данных показано, что конфигурация тестового сеанса разрешает интерактивный доступ и специальные разрешения для пользователя Domain01\User01.
Третья команда использует командлет disable-PSRemoting disable-PSRemoting, чтобы отключить удаленный доступ ко всем конфигурациям сеанса.
Четвертая команда использует командлеты Get-PSSessionConfiguration и format-Table для отображения конфигураций сеансов и их свойств. В выходных данных показано, что дескриптор безопасности AccessDenied для всех сетевых пользователей добавляется во все конфигурации сеансов, включая конфигурацию тестового сеанса. Хотя другие дескрипторы безопасности не изменяются, дескриптор безопасности network_deny_all имеет приоритет.
Пятая команда показывает, что команда disable-PSRemoting запрещает даже пользователю Domain01\User01, у которого есть специальные разрешения на настройку сеанса тестирования, с помощью конфигурации сеанса тестирования для удаленного подключения к компьютеру.
Пример 6. Повторное включение удаленного доступа к выбранным конфигурациям сеанса
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
В этом примере показано, как повторно включить удаленный доступ только к выбранным конфигурациям сеанса.
Первая команда использует командлет disable-PSRemoting
Вторая команда использует командлеты Get-PSSessionConfiguration и командлеты Format-Table для отображения конфигураций сеансов и их свойств. В выходных данных показано, что дескриптор безопасности AccessDenied для всех сетевых пользователей добавляется во все конфигурации сеанса.
Третья команда использует командлет Set-PSSessionConfiguration. Команда использует параметр AccessMode со значением Remote, чтобы включить удаленный доступ к конфигурации сеанса Microsoft.ServerManager. Можно также использовать параметр AccessMode для включения локального доступа и отключения конфигураций сеансов.
Четвертая команда использует командлеты Get-PSSessionConfiguration и format-Table для отображения конфигураций сеансов и их свойств. В выходных данных показано, что дескриптор безопасности AccessDenied для всех сетевых пользователей удаляется, тем самым восстанавливая удаленный доступ к конфигурации сеанса Microsoft.ServerManager.
Параметры
-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
Этот командлет не возвращает объект.
Примечания
Отключение конфигураций сеанса не отменяет все изменения, внесенные командлетами Enable-PSRemoting или Enable-PSSessionConfiguration. Возможно, вам придется отменить следующие изменения вручную.
Остановите и отключите службу WinRM.
2. Удалите прослушиватель, принимаюющий запросы на любой IP-адрес.
3. Отключите исключения брандмауэра для WS-Management связи.
4. Восстановите значение LocalAccountTokenFilterPolicy до 0, которое ограничивает удаленный доступ к членам группы администраторов на компьютере.
Конфигурация сеанса — это группа параметров, определяющих среду для сеанса. Каждый сеанс, подключающийся к компьютеру, должен использовать одну из конфигураций сеансов, зарегистрированных на компьютере. Запретив удаленный доступ ко всем конфигурациям сеансов, удаленные пользователи не могут устанавливать сеансы, подключающиеся к компьютеру.
В Windows PowerShell 2.0 Disable-PSRemoting добавляет запись Deny_All в дескрипторы безопасности всех конфигураций сеансов. Этот параметр запрещает всем пользователям создавать сеансы, управляемые пользователем, на локальном компьютере. В Windows PowerShell 3.0 Disable-PSRemoting добавляет запись Network_Deny_All в дескрипторы безопасности всех конфигураций сеансов. Этот параметр запрещает пользователям на других компьютерах создавать сеансы, управляемые пользователем, на локальном компьютере, но позволяет пользователям локального компьютера создавать сеансы, управляемые пользователем.
В Windows PowerShell 2.0 Disable-PSRemoting эквивалентен Disable-PSSessionConfiguration -Name *
.
В Windows PowerShell 3.0 и более поздних выпусках Disable-PSRemoting эквивалентен Set-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local
В Windows PowerShell 2.0 Disable-PSRemoting — это функция. Начиная с Windows PowerShell 3.0, это командлет.