Поделиться через


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 disable-PSRemoting, чтобы отключить все зарегистрированные конфигурации сеансов на компьютере Server01.

Вторая команда использует командлет 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 , чтобы отключить удаленный доступ ко всем конфигурациям сеанса. Параметр Force подавляет все запросы пользователей.

Вторая команда использует командлет 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, это командлет.