Удаленное взаимодействие PowerShell через WinRM для пользователей без прав администратора
По умолчанию для подключения к удаленному компьютеру с помощью PowerShell (PowerShell Remoting) вам необходимы права администратора. В этой статье мы покажем, как разрешить удаленное подключение с помощью PowerShell Remoting (WinRM) для обычных пользователей (без прав администратора) с помощью группы безопасности, групповой политики и изменения дескриптора сеанса PoSh.
При попытке создать сеанс PowerShell с удаленным компьютером в качестве непривилегированной учетной записи пользователя (Enter-PSSession lon-srv1) возникает ошибка доступа:
Enter-PSSession: Не удалось подключиться к удаленному серверу lon-srv1, появилось следующее сообщение об ошибке: Доступ запрещен.
Удаленный доступ к WinRM и группе пользователей удаленного управления
Проверьте стандартные разрешения сеанса PoSh:
(Get-PSSessionConfiguration -Name Microsoft.PowerShell).Permission
Как видите, доступ разрешен для следующих встроенных групп:
ВСТРОЕН\Администраторы — AccessAllowed,
BUILTIN\Пользователи удаленного управления — AccessAllowed
Итак, чтобы позволить пользователю подключиться к удаленной машине через WinRM, достаточно быть членом встроенной локальной группы администраторов или группы безопасности Пользователи удаленного управления (эта группа создается по умолчанию, начиная с из PowerShell 4.0). Эта группа также имеет доступ к ресурсам WMI через протоколы управления (например, WS-Management).
Добавить пользователя в группу можно с помощью оснастки «Управление компьютером»:
или с помощью команды:
net localgroup "Remote Management Users" /add jsmithЕсли вам необходимо предоставить такие разрешения на нескольких компьютерах, вы можете использовать групповую политику. Для этого назначьте объект групповой политики нужным вам компьютерам и добавьте новую группу Пользователи удаленного управления в Конфигурация компьютера -> Настройки Windows -> Настройки безопасности -> Ограниченные группы политика. Добавьте в политику пользователей или группы, которым необходимо предоставить доступ к WinRM.
После того как пользователь станет членом группы «Пользователи удаленного управления», он сможет создать удаленный сеанс PowerShell с помощью Enter-PSSession или запускать команды с помощью командлета Invoke-Command. Права пользователя в этом сеансе будут ограничены правами пользователя на этом компьютере.
Убедитесь, что удаленное соединение установлено.
Дескриптор безопасности сеанса PowerShell
Другой способ быстро предоставить пользователю разрешение на использование PowerShell Remoting без включения его в локальную группу безопасности «Пользователи удаленного управления» — изменить дескриптор безопасности текущего сеанса Microsoft.PowerShell на локальном компьютере. Этот метод позволит быстро предоставить пользователю временные (до следующего перезапуска) права на удаленное подключение через PowerShell.
Следующая команда отображает список текущих разрешений:
Set-PSSessionConfiguration -Name Microsoft.PowerShell -showSecurityDescriptorUIВ этом диалоговом окне добавьте пользователя или группу и предоставьте им разрешения Выполнение (Вызов).
После сохранения изменений система запросит подтверждение и перезапуск службы WinRM.
Если вам необходимо автоматически изменить дескриптор безопасности (без графического пользовательского интерфейса), вам нужно будет сначала внести изменения вручную, а затем получить текущий дескриптор доступа в формате SDDL.
(Get-PSSessionConfiguration -Name "Microsoft.PowerShell").SecurityDescriptorSDDL
В нашем случае команда вернула следующий дескриптор:
O:NSG:BAD:P(A;;GA;;;BA)(A;;GXGR;;;S-1-5-21-2323243421-3342677354-2633435451-55422122)(A;;GA;;;RM)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
Затем вы можете использовать эту строку SDDL для предоставления доступа к PowerShell на любом другом сервере или рабочей станции.
$SDDL = “O:NSG:BAD:P(A;;GA;;;BA)(A;;GXGR;;;S-1-5-21-2323243421-3342677354-2633435451-55422122)(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 стало использоваться PowerShell Remoting. Таким образом, по умолчанию удаленные пользователи без прав администратора не смогут управлять сервером Hyper-V, даже если у них есть соответствующие разрешения в Hyper-V.
При попытке подключиться к серверу Hyper-V от имени обычного пользователя с компьютера под управлением Windows 10 появляется следующая ошибка:
Произошла ошибка при попытке подключения к серверу «server1». Убедитесь, что служба управления виртуальными машинами запущена и что у вас есть права на подключение к серверу.
Чтобы разрешить удаленное подключение к консоли, достаточно таким же образом добавить пользователя Hyper-V в локальную группу Remote Management Users.






