Estou tentando executar um script que requer elevação para definir determinados valores do Registro para permitir o CredSSP em computadores locais e remotos e, durante esse script, preciso acessar um compartilhamento de rede como uma conta não elevada.
Meu pensamento inicial foi tentar
Invoke-Command -ScriptBlock { [IO.Directory]::GetFiles($networkShare) } -Credential $cred
em que $ cred é uma credencial de usuários não elevados. Infelizmente, isso não funciona devido a este bug .
A solução dada é usar -ComputerName localhost
, mas isso requer que minha máquina local seja configurada para o PS Remote, o que eu não quero fazer.
A melhor solução encontrada é usar
$foo = Start-Job -Credential $cred -ScriptBlock { [IO.Directory]::GetFiles($networkShare) }
$out = Receive-Job $foo
Isso funciona, mas é tão feio ... alguém pode me ajudar a encontrar uma solução melhor?