小编Mik*_*ike的帖子

从 Azure DevOps Release Pipeline 调用控制台应用程序

尝试拥有在本地安装了部署代理的 Azure DevOps 发布管道,以有权访问本地数据库的特定用户身份运行控制台应用程序。

这是工作流程

Azure 发布管道调用-> 本地代理运行-> PS 脚本运行-> 控制台 exe

我正在通过以下内联脚本在管道中使用 PowerShell 任务:

$CMD = '$CMD = 'C:\ScheduledScripts\Adm\SpecToHobImport\SpecToHobImport.exe''
$user = $Env:userid
$password = $Env:pass
$dates = '$(startDate) $(endDate)'

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

Start-Process -FilePath $CMD -Credential $credential -ArgumentList "$(startDate) $(endDate)" 
Run Code Online (Sandbox Code Playgroud)

我知道用户 ID 和密码以及命令行参数正在正确传递,但无论控制台应用程序多么简单,当代理运行 powershell 脚本时它都会崩溃。我尝试在各种服务帐户(系统、管理员等)下运行 DevOps 代理服务,我可以在安装了代理的服务器上手动运行脚本,并且脚本和控制台应用程序手动运行良好。

当我运行 Release 管道时,它会在 DevOps 中报告它运行成功,我只能从代理服务器上的 Windows 事件日志中检测到控制台应用程序已运行并立即崩溃。

我在 EventLog 中得到以下两个条目:

Faulting application name: conhost.exe, version: 6.3.9600.17415, time stamp: 0x5450410b
Faulting module name: USER32.dll, …
Run Code Online (Sandbox Code Playgroud)

console powershell azure-devops azure-pipelines azure-pipelines-release-pipeline

9
推荐指数
1
解决办法
2877
查看次数