Удаленный доступ к WinRM без прав администратора

По умолчанию для удаленного подключения к компьютеру с помощью PowerShell (PowerShell Remoting) нужны права администратора. В этой статье мы покажем, как с помощью группы безопасности, групповой политики и изменения дескриптора сессии PoSh, предоставить права на подключение через PowerShell Remoting (WinRM) для рядовых пользователей без прав администратора.

При попытке создать сессию PowerShell с удаленным компьютером из-под обычного пользователя (Enter-PSSession msk-server1) появляется ошибка доступа:

Enter-PSSession : Connecting to remote server msk-server1 failed with the following error message : Access is denied.

Enter-PSSession : Connecting to remote server msk-server1 failed with the following error message : Access is denied.

Удаленный доступ к WinRM и группа Remote Management Users

Проверим стандартные разрешения для сессии PoSh:

(Get-PSSessionConfiguration -Name Microsoft.PowerShell).Permission

Как мы видим, доступ разрешен для следующих встроенных групп:

  • BUILTIN\Administrators — AccessAllowed,
  • BUILTIN\Remote Management Users — AccessAllowed

Таким образом, чтобы пользователь мог удаленно подключаться через WinRM, ему достаточно состоять во встроенной локальной группе безопасности администраторов или Remote Management Users (группа создается в системе, начиная с версии PowerShell 4.0, имеющегося по умолчанию в Windows 8 / Windows Server 2012 и выше). Данная группа также предоставляется доступ к ресурсам WMI через управляющие протоколы (например, WS-Management)

Нужного пользователя можно включить в группу через оснастку управления компьютером:

Локальная группа Remote Management Usersили с помощью команды:

net localgroup "Remote Management Users" /add aapetrov2

В том случае, если подобный доступ нужно предоставить на множестве компьютеров, можно воспользоваться групповой политикой. Для этого назначьте GPO на нужные компьютеры, и политике Computer Configuration -> Windows Settings -> Security Settings -> Restricted Groups добавьте новую группу Remote Management Users и включим в нее учетные записи или группы, которым нужно предоставить доступ к WinRM.

Групповая политика Restricted GroupsПосле включения пользователя в группу Remote Management Users, он сможет создавать удаленную сессию PowerShell с помощью Enter-PSSession или запускать команды с помощью Invoke-Command. Права пользователя в данной сессии будут ограничены его правами на машине.

Проверьте, заработало ли удаленное подключение.

enter-pssession

Дескриптор безопасности сессии PowerShell

Еще один способ быстро дать пользователю права на использование PowerShell Remoting без включения его в локальную группу безопасности Remote Management Users заключается в модификации дескриптора безопасности текущей сессии Microsoft.PowerShell на локальном компьютере. Этот способ позволит быстро временно (до следующей перезагрузки) предоставить отдельному пользователю права на удаленное подключение через PowerShell.

Следующая команда открывает лист текущих разрешений:

Set-PSSessionConfiguration -Name Microsoft.PowerShell -showSecurityDescriptorUI

В данном диалоговом окне нужно добавить пользователя или группу и предоставить ему права Execute (Invoke).

PowerShell SecurityDescriptorUIПосле сохранения изменений система запросит подтверждение на перезапуск службы WinRM.

В том случае, если нужно изменить дескриптор безопасности автоматизировано (без GUI), придется сначала внести изменения вручную, а потом получить текущий дескриптор доступа в формате SDDL.

(Get-PSSessionConfiguration -Name "Microsoft.PowerShell").SecurityDescriptorSDDL

В нашем примере, команда вернула дескриптор

O:NSG:BAD:P(A;;GA;;;BA)(A;;GXGR;;;S-1-5-21-2373142251-3438396318-2932294317-23761992)(A;;GA;;;RM)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)

posh session SecurityDescriptorSDDLЗатем можно использовать данную SDDL строку для предоставления доступа к PowerShell на любом другом сервере.

$SDDL = “O:NSG:BAD:P(A;;GA;;;BA)(A;;GXGR;;;S-1-5-21-2373142251-3438396318-2932294317-23761992)(A;;GA;;;RM)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)”
Set-PSSessionConfiguration -Name Microsoft.PowerShell -SecurityDescriptorSddl $SDDL

Удаленное управление Hyper-V также требует прав WinRM

В Windows 10 /Windows Server 2016 для удаленного подключения к серверу Hyper-V с помощью Hyper-V Manager стал использоваться протокол PowerShell Remoting. Таким образом, по умолчанию удаленные пользователи без прав администратор не смогут управлять сервером Hyper-V, даже при наличии разрешений в Hyper-V.

При попытке подключиться к серверу Hyper-V с компьютера Windows 10 под обычным пользователем появится ошибка.

An error occurred while attempting to connect to server “server1”, Check that the Virtual Machine Management service is running and that you are authorized to connect to the server

An error occurred while attempting to connect to server “server1”, Check that the Virtual Machine Management service is running and that you are authorized to connect to the server

Чтобы разрешить удаленное подключение к консоли достаточно аналогично добавить пользователя Hyper-V в локальную группу Remote Management Users.


Предыдущая статья Следующая статья


Комментариев: 0 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)