Eu tenho o Windows Server 2012 (e Server 2008, mas é a próxima prioridade) para monitorá-lo usando txwinrm . Biblioteca txwinrm internamente está usando o protocolo WinRS. Eu tenho que monitorá-lo usando o usuário menos privilegiado, mas não sei como configurar o acesso para ele.
Tudo o que consegui fazer - é configurar a sessão remota do Powershell para o meu usuário, mas parece que as sessões do winrs e do powershell têm descritores de segurança diferentes:
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.
A configuração do meu usuário é a seguinte:
(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)
(Em cada descritor de segurança, meu usuário recebe acesso geral ao objeto protegido).
Então, qual descritor de segurança devo definir para que a consulta winrs funcione para usuários não administradores?
UPD: Recentemente, descobri que eu poderia recuperar informações sobre shells winrm :
winrm enumerate shell
Shell
ShellId = 3793B153-CCCF-4500-99FB-8534074E1738
ResourceUri = http://schemas.microsoft.com/wbem/wsman/1/windows/shell/cmd
E não encontrei esse URI de recurso no diretório WSMan:\localhost\Plugin
. :( Documentação declara:
The resource URI can be used to retrieve plug-in configuration that is specific to the shell instance.
Mas como recuperar essa configuração de plug-in e como alterá-la?