У меня Windows Server 2012 (и Server 2008, но это следующий приоритет), чтобы отслеживать его с помощью txwinrm. Внутренняя библиотека txwinrm использует протокол WinRS. Я должен следить за ним с помощью наименее привилегированного пользователя, но не знаю, как настроить для него доступ.
Все, что мне удалось сделать - это настроить удаленный сеанс Powershell для моего пользователя, но похоже, что сеансы winrs и powershell имеют разные дескрипторы безопасности:
Invoke-Command -ComputerName 192.168.173.206 -Credential (credential Administrator $pwd) -ScriptBlock { 2 + 2}
# gives 4
Invoke-Command -ComputerName 192.168.173.206 -Credential (credential lpu1 $pwd) -ScriptBlock { 2 + 2}
# gives 4
winrs -r:192.168.173.206 -u:Administrator -p:$pwd 'powershell -command "2+2"'
# gives 4
winrs -r:192.168.173.206 -u:lpu1 -p:$pwd 'powershell -command "2+2"'
# Gives Winrs error: Access is denied.
Конфигурация для моего пользователя следующая:
(Get-Item WSMan:\localhost\Service\RootSDDL).value
# O:NSG:BAD:P(A;;GA;;;BA)(A;;GA;;;S-1-5-21-3231263931-1371906242-1889625497-1141)S:P(AU;FA;GA;;;WD)(AU;SA;GWGX;;;WD)
(Get-PSSessionConfiguration -name Microsoft.Powershell).SecurityDescriptorSddl
# O:NSG:BAD:P(A;;GA;;;BA)(A;;GA;;;S-1-5-21-3231263931-1371906242-1889625497-1149)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
(В каждом дескрипторе безопасности моему пользователю предоставляется общий доступ к защищенному объекту).
Итак, какой дескриптор безопасности я должен установить, чтобы мой запрос winrs работал для пользователя без прав администратора?
UPD: Недавно я обнаружил, что я может получить информацию об оболочках WinRM:
winrm enumerate shell
Shell
ShellId = 3793B153-CCCF-4500-99FB-8534074E1738
ResourceUri = http://schemas.microsoft.com/wbem/wsman/1/windows/shell/cmd
И я не нашел такого URI ресурса в WSMan:\localhost\Plugin
каталог. :( Документация состояния:
URI ресурса можно использовать для получения конфигурации подключаемого модуля, специфичной для экземпляра оболочки.
Но как получить эту конфигурацию плагина и как ее изменить?
Что работает
winrm configSDDL default
А затем разрешить чтение и выполнение прав. Но странно, что настройки там такие же, как в WSMan:\localhost\Service\RootSDDL
. Это может быть из-за того, что winrm configSDDL перезагружает какой-то кеш или что-то в этом роде, я не знаю ...
Можете ли вы добавить пользователя, используя:
winrm configSDDL http://schemas.microsoft.com/wbem/wsman/1/windows/shell/cmd
вам необходимо добавить пользователей на сервере WinRM в группу «Пользователи удаленного управления»
Это так просто.