Я пытаюсь запустить сценарий, требующий повышения прав для установки определенных значений реестра, чтобы разрешить CredSSP на локальных и удаленных компьютерах, и во время выполнения этого сценария мне нужно получить доступ к сетевому ресурсу как учетная запись без повышенных прав.
Моя первая мысль была попробовать
Invoke-Command -ScriptBlock { [IO.Directory]::GetFiles($networkShare) } -Credential $cred
где $cred — это учетные данные не повышенных пользователей. К сожалению, это не работает из-заэтот баг.
Предложенный обходной путь заключается в использовании -ComputerName localhost
, но для этого требуется, чтобы мой локальный компьютер был настроен для PS Remote, чего я не хочу делать.
Лучший выход, который я нашел, — это использовать
$foo = Start-Job -Credential $cred -ScriptBlock { [IO.Directory]::GetFiles($networkShare) }
$out = Receive-Job $foo
Это работает, но выглядит ужасно... Может ли кто-нибудь помочь мне найти лучшее решение?