【问题标题】:Can't start PowerShell script file with credentials of other user无法使用其他用户的凭据启动 PowerShell 脚本文件
【发布时间】:2015-03-30 08:18:30
【问题描述】:

我有一个使用 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'

非常感谢任何帮助。

【问题讨论】:

    标签: powershell arguments runas


    【解决方案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
    

    【讨论】:

    • 太棒了!这至少会启动 GUI:$powershellArguments = "-File ""$script""", "-verb runas"; Start-Process powershell -Credential $Credentials -ArgumentList $powershellArguments。唯一令人讨厌的是调用者的控制台窗口保持打开状态,因此 GUI 应用程序在其后面的 PowerShell 控制台是可见的。有解决方法吗?我试过-NoNewWindow,但没有帮助。
    • 您正在以另一个用户的身份启动一个新的 PowerShell 进程。它不能在同一个窗口中打开,因为它会使用你的凭据,而不是新的。新窗口打开后,您最好尝试关闭旧窗口。
    • 找到完整的解决方案:$Arguments = "-File ""$Script""", "-verb runas"; Start-Process powershell -Credential $Credentials -ArgumentList $Arguments -WindowStyle hidden
    猜你喜欢
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    相关资源
    最近更新 更多