Invoke-Command из повышенного PowerShell с не повышенными кредитами

1

Я пытаюсь запустить сценарий, который требует повышения прав для установки определенных значений реестра, чтобы разрешить 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

Это работает, но это так ужасно ... Может кто-нибудь помочь мне найти лучшее решение?

Кайрос
источник
Это язык сценариев. Иногда уродливый единственный вариант. Что именно вы считаете уродливым в своем решении?
EBGreen
Ну, я пришел к выводу, что Receive-Job на самом деле не работает так горячо, как я не могу получить доступ к результатам из AccessNetworkShare ()
Kairos
Что такое AccessNetworkShare ()?
EBGreen
Список файлов на сетевом ресурсе. У пользователя без повышенных прав есть права на общий ресурс, но у локального администратора, запускающего командную строку с повышенными правами, этого нет
Kairos
Так это имя массива? Я просто запутался, потому что это неверный синтаксис PowerShell.
EBGreen