Start-Process зависает при использовании с -Credential - PullRequest
0 голосов
/ 28 февраля 2019

Во время конвейера непрерывной доставки я хотел бы запустить скрипт 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, так что это должно быть какой-то проблемой конфигурации.

Я искал ответ и наткнулся на этот ТАК вопрос , но этот комментарий мне мало помогает.

Я попытался настроить политику выполнения на Bypass и Unrestricted.Я также попытался настроить Turn on Script Execution в редакторе локальной групповой политики> Конфигурация компьютера> Компоненты Windows> Windows PowerShell, чтобы разрешить все сценарии, но также безуспешно.

1 Ответ

0 голосов
/ 28 февраля 2019

Попробуйте это:

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

Вместо того, чтобы напрямую давать -Wait.

PS: Вы можете также добавить несколько попыток, которые помогут вам.

...