通过启动进程运行cmd.exe但无法将命令传递给cmd.exe

时间:2018-05-16 09:22:12

标签: powershell start-process

我想在不同的用户下使用cmd.exe运行一个groovy脚本。

我已经使用Start-Process,当脚本执行时,它只是在屏幕上以不同的用户打开提示但不处理$command

所以我的问题是“如何在使用PowerShell运行cmd.exe后传递命令?

这是我到目前为止所做的:

$username = "abc"
$pwd = ConvertTo -SecureString "xyz" -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username $pw

$command = "filepath/.groovy"

try {
    Start-Process 'cmd' -Credential $cred -ArgumentList $command
    Write-Host $LASTEXITCODE
    if($LASTEXITCODE -ne 0) {
        throw "Error occured"
    } else {
        return 0
    }
} catch {
    Write-Error "Error Desc:$_Error.InnerException.Message";
}

1 个答案:

答案 0 :(得分:1)

根据CMD documentation,您可以指定参数/c/k来执行命令。

Start-Process 'cmd' -Credential $cred -ArgumentList "/c $command"