与-Credential一起使用时,启动过程会挂起

时间:2019-02-28 10:13:51

标签: powershell start-process

在我的连续交付管道中,我想运行Powershell脚本,该脚本启动用于更新数据库的.NET Core应用程序。问题是用户使用的TFS代理无权连接到MSSQL服务器。这就是为什么我想以其他用户身份运行此过程。我现在正在做的是

$username = 'DOMAIN\username'
$password = 'password'

$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $securePassword

Start-Process -FilePath 'dotnet' -ArgumentList 'MyApp.dll' -NoNewWindow -Wait -Credential $credential

运行此脚本会导致Powershell窗口冻结。我无法做Ctrl+C也不能Ctrl+Z。相同的命令,但没有-Credential部分可以正常工作。在我的本地计算机上,即使使用-Credential,一切都可以正常工作,因此这必须是某种配置问题。

我一直在寻找答案,偶然发现了this SO question,但是this comment并没有太大帮助。

我试图为BypassUnrestricted设置执行策略。我还尝试在本地组策略编辑器>计算机配置> Windows组件> Windows PowerShell中将Turn on Script Execution配置为 允许所有脚本,但也没有任何运气。

1 个答案:

答案 0 :(得分:0)

尝试一下:

Start-Process -FilePath 'dotnet' -ArgumentList 'MyApp.dll' -NoNewWindow -Credential $credential -PassThru| Wait-Process -Timeout 5 -ErrorAction Stop 

与其直接给-Wait

PS:您也可以尝试一下,这样可以帮助您。