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

时间:2015-03-30 08:18:30

标签: powershell arguments runas

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

当我运行代码时,它甚至没有给出错误消息。 PowerShell弹出并在几秒钟后再次关闭,并且没有启动任何内容。 Follwoing 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'

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

也许你的错误只出现在参数单引号$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