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


Disable-PSRemoting

Запрещает конечным точкам PowerShell получать удаленные подключения.

Синтаксис

Default (По умолчанию)

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

Описание

Командлет Disable-PSRemoting блокирует удаленный доступ ко всем конфигурациям конечных точек сеанса Windows PowerShell на локальном компьютере. Сюда входят все конечные точки, созданные PowerShell 6 или более поздней версии.

Чтобы повторно включить удаленный доступ ко всем конфигурациям сеанса, используйте командлет Enable-PSRemoting. Сюда входят все конечные точки, созданные PowerShell 6 или более поздней версии. Чтобы включить удаленный доступ к выбранным конфигурациям сеансов, используйте параметр AccessMode командлета Set-PSSessionConfiguration. Вы также можете использовать командлеты Enable-PSSessionConfiguration и Disable-PSSessionConfiguration для включения и отключения конфигураций сеансов для всех пользователей. Дополнительные сведения о конфигурациях сеансов см. в about_Session_Configurations.

Замечание

Даже после выполнения Disable-PSRemoting вы по-прежнему можете выполнять подключения обратного цикла на локальном компьютере. Подключение к циклу — это удаленный сеанс PowerShell, исходящий из и подключающийся к одному локальному компьютеру. Удаленные сеансы из внешних источников остаются заблокированными. Для подключений к циклу необходимо использовать неявные учетные данные вдоль параметра EnableNetworkAccess. Дополнительные сведения о подключениях обратного цикла см. в New-PSSession.

Чтобы запустить этот командлет, запустите Windows PowerShell с параметром запуск от имени администратора.

Примеры

Пример 1. Запрет удаленного доступа ко всем конфигурациям сеанса

Этот пример запрещает удаленный доступ ко всем конфигурациям конечных точек сеанса PowerShell на компьютере.

Disable-PSRemoting
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 на компьютере без запроса.

Disable-PSRemoting -Force
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
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 -AutoSize

Enable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize
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

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

Командлет Enable-PSRemoting повторно включает удаленный доступ ко всем конфигурациям конечных точек сеанса PowerShell на компьютере. Параметр Force подавляет все запросы пользователей и перезапускает службу WinRM без запроса. В новых выходных данных показано, что AccessDenied дескрипторы безопасности были удалены из всех конфигураций сеансов.

Пример 5. Подключение к циклу с отключенными конфигурациями конечных точек сеанса

В этом примере показано, как отключены конфигурации конечных точек и как сделать успешное подключение к отключенной конечной точке. Disable-PSRemoting отключает все конфигурации конечных точек сеанса PowerShell.

Disable-PSRemoting -Force
New-PSSession -ComputerName localhost
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
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin
   gTransportException
    + FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed

New-PSSession -ComputerName localhost -EnableNetworkAccess
 Id Name       Transport ComputerName  ComputerType   State   ConfigurationName   Availability
 -- ----       --------- ------------  ------------   -----   -----------------   ------------
 1  Runspace1  WSMan     localhost     RemoteMachine  Opened  powershell.6           Available

Первое использование New-PSSession пытается создать удаленный сеанс на локальном компьютере. Этот тип подключения проходит через сетевой стек и не является циклом обратной связи. Следовательно, попытка подключения к отключенной конечной точке завершается сбоем с ошибкой Access.

Второе использование New-PSSession также пытается создать удаленный сеанс на локальном компьютере. В этом случае это происходит успешно, так как это подключение обратного цикла, которое проходит сетевой стек.

Соединение обратного цикла создается при выполнении следующих условий:

  • Имя компьютера для подключения — localhost.
  • Учетные данные не передаются. Для подключения используется текущий вход пользователя (неявные учетные данные).
  • Используется параметр коммутатора EnableNetworkAccess.

Дополнительные сведения о подключениях обратного цикла см. в документе New-PSSession.

Пример 6. Запрет удаленного доступа к конфигурациям сеансов с пользовательскими дескрипторами безопасности

В этом примере показано, что командлет Disable-PSRemoting отключает удаленный доступ ко всем конфигурациям сеансов, включая конфигурации сеансов с пользовательскими дескрипторами безопасности.

Register-PSSessionConfiguration создает конфигурацию сеанса теста. Параметр FilePath указывает файл конфигурации сеанса, который настраивает сеанс. Параметр ShowSecurityDescriptorUI отображает диалоговое окно, которое задает разрешения для конфигурации сеанса. В диалоговом окне "Разрешения" мы создадим пользовательские разрешения полного доступа для указанного пользователя.

Командлеты 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
----                          ----------
microsoft.powershell          BUILTIN\Administrators AccessAllowed
Test                          NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
DOMAIN01\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
----                          ----------
microsoft.powershell          NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
Test                          NT AUTHORITY\NETWORK AccessDenied, NTAUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed, DOMAIN01\User01 AccessAllowed


[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

Теперь командлеты Get-PSSessionConfiguration и Format-Table показывают, что AccessDenied дескриптор безопасности для всех сетевых пользователей добавляется ко всем конфигурациям сеанса, включая конфигурацию сеанса тестирования. Хотя другие дескрипторы безопасности не изменяются, дескриптор безопасности network_deny_all имеет приоритет. Это показано попыткой использовать New-PSSession для подключения к конфигурации сеанса test.

Пример 7. Повторное включение удаленного доступа к выбранным конфигурациям сеанса

В этом примере показано, как повторно включить удаленный доступ только к выбранным конфигурациям сеанса. После отключения всех конфигураций сеансов мы повторно включите определенный сеанс.

Командлет Set-PSSessionConfiguration используется для изменения майкрософт. Конфигурация сеанса ServerManager. Параметр AccessMode со значением Remote повторно включает удаленный доступ к конфигурации.

Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize

Set-PSSessionConfiguration -Name Microsoft.ServerManager -AccessMode Remote -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize
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
----                          ----------
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

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

Параметры

-Confirm

Запрашивает подтверждение перед запуском cmdlet.

Свойства параметров

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:cf

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Force

Принудительно выполняется команда без запроса подтверждения пользователя.

Свойства параметров

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-WhatIf

Показывает, что произойдет, если командлет будет запущен. Командлет не запускается.

Свойства параметров

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:wi

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

Входные данные

None

Невозможно передать объекты в этот командлет.

Выходные данные

None

Этот командлет не возвращает выходные данные.

Примечания

  • Отключение конфигураций сеанса не отменяет все изменения, внесенные командлетами Enable-PSRemoting или Enable-PSSessionConfiguration. Возможно, вам придется отменить следующие изменения вручную.

    1. Остановите и отключите службу 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