gpt4 book ai didi

powershell - 从Azure DevOps发布管道调用控制台应用程序

转载 作者:行者123 更新时间:2023-12-02 22:10:39 24 4
gpt4 key购买 nike

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

这是工作流程

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)"

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

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

我在EventLog中得到以下两个条目:
Faulting application name: conhost.exe, version: 6.3.9600.17415, time stamp: 0x5450410b
Faulting module name: USER32.dll, version: 6.3.9600.19478, time stamp: 0x5d6aa558
Exception code: 0xc0000142
Fault offset: 0x00000000000ecf30
Faulting process id: 0x770
Faulting application start time: 0x01d5bcdf64d0ac17
Faulting application path: C:\Windows\system32\conhost.exe
Faulting module path: USER32.dll
Report Id: a292ad24-28d2-11ea-8103-0050569f788f
Faulting package full name:
Faulting package-relative application ID:

和此条目:
Faulting application name: SpecToHobImport.exe, version: 1.0.0.0, time stamp: 0x5e06463f
Faulting module name: KERNELBASE.dll, version: 6.3.9600.18895, time stamp: 0x5a4b127e
Exception code: 0xc0000142
Fault offset: 0x0009d4e2
Faulting process id: 0x40c
Faulting application start time: 0x01d5bcdf64d0ac17
Faulting application path: C:\ScheduledScripts\Adm\SpecToHobImport\SpecToHobImport.exe
Faulting module path: KERNELBASE.dll
Report Id: a2a5c015-28d2-11ea-8103-0050569f788f
Faulting package full name:
Faulting package-relative application ID:

即使主应用程序为空的控制台应用程序也会导致应用程序崩溃。

最佳答案

该发行版结束后,该发行版中启动的所有过程都将完成。如果您不希望关闭该进程,请尝试设置变量 Process.clean = false
但是,下次创建新发行版时,需要先停止进程,然后再启动它。
Azure devops release pipeline variables process.clean=false

关于powershell - 从Azure DevOps发布管道调用控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59504976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com