![使用非提升权限的凭据从提升权限的 powershell 调用命令](https://linux22.com/image/1469513/%E4%BD%BF%E7%94%A8%E9%9D%9E%E6%8F%90%E5%8D%87%E6%9D%83%E9%99%90%E7%9A%84%E5%87%AD%E6%8D%AE%E4%BB%8E%E6%8F%90%E5%8D%87%E6%9D%83%E9%99%90%E7%9A%84%20powershell%20%E8%B0%83%E7%94%A8%E5%91%BD%E4%BB%A4.png)
我正在尝试运行一个需要提升权限的脚本来设置某些注册表值以允许在本地和远程计算机上使用 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
这可行,但它太丑了...有人能帮我找到更好的解决方案吗?