无法使用其他用户的凭据启动 PowerShell 脚本文件

Can't start PowerShell script file with credentials of other user

我有一个使用 PowerShell Studio 创建并导出为 PS1 文件的 GUI。我现在正尝试通过使用另一个用户的凭据调用它来启动此 GUI。

当我 运行 代码时,它甚至没有给出错误消息。 PowerShell 弹出并在几秒钟内再次关闭,并且没有启动任何内容。以下 this thread,我想我遵循了正确的语法。

$Script = 'S:\Prod\Script center\GUI Script.ps1'
$Credentials = Get-Credential
$powershellArguments = "-file '$Script'", "-noexit", "-verb runas"
Start-Process powershell -Credential $Credentials -ArgumentList $powershellArguments

这些也不起作用:

Start-Process powershell -Credential $Credentials -ArgumentList "-noprofile -command &{Start-Process powershell -verb runas -File 'S:\Prod\Script center\GUI Script.ps1'}"
Start-Process powershell -Credential $Credentials -ArgumentList "-noprofile -command &{Start-Process $script -verb runas}"

虽然这些凭证已保存在变量 $Credentials 中,但此人正在询问我凭据。但是,启动的 powershell 控制台并未以凭据中的用户身份启动:(

$cmd = 'powershell.exe'
$arguments = "-NoExit", "-NoProfile", "-WindowStyle Maximized", '-NoLogo', "Credential $Credentials", "File '$script'"
Start-Process $cmd -ArgumentList $arguments -Verb runAs

我确定它与 GUI 脚本无关,因为它工作得很好:

& 'S:\Prod\Script center\GUI Script.ps1'

非常感谢任何帮助。

也许你的错误只是在参数单引号上$powershellArguments = "-file '$Script'";应该使用双引号。

Start-Process -FilePath "powershell" -Credential $cred -ArgumentList @("-file 'cred.ps1'") # doesn't work
Start-Process -FilePath "powershell" -Credential $cred -ArgumentList @("-file ""cred.ps1""") # works