在工作中,有人问我如何让 Azure Devops 的 Windows 自托管代理在系统启动时启动,而不是在用户登录后启动。
查看文档,我看到了
--runAsAutoLogon
选项并尝试了它,提供了用户名和密码。这不起作用。如果我启动系统并在 Windows 锁定屏幕上等待,代理不会上线(我检查网络应用程序)。当我登录时,服务开始工作。
我用来配置代理的确切命令是:
.\config.cmd --unattended --agent '<agent-name>' --pool '<agent-pool-name>' --url '<azure-dev-ops-organization-url>' --auth 'PAT' --token '<token>' --runAsAutoLogon --windowsLogonAccount '<domain\user-name>' --windowsLogonPassword '<windows-password>'
请原谅我对此事的无知,但我是否做错了什么,或者选项
--runAsAutoLogon
没有按照我想象的方式工作?
编辑:我更正了标志名称
编辑:我添加了用于配置它的命令,并删除了有关不相关的服务的最后部分。
将自托管 Windows 代理配置为以交互模式运行(
交互运行)时,可以使用选项“
--runAsAutoLogon
”。
在运行Azure DevOps管道时,如果某些管道步骤需要用户手动执行一些交互操作,通常需要交互模式自托管代理。
例如,在管道作业中运行某些命令行时,其中一个命令行需要您手动输入特定参数的值才能继续后续流程,此时您需要使用交互模式的自托管代理来运行此命令行管道作业。
另一个常见的用例是从管道运行一些特定的测试,这些测试将启动应用程序的 UI 窗口(或网页),要求用户手动执行一些操作。
如果您配置的交互模式自托管Windows代理没有“
--runAsAutoLogon
”选项,则每次使用此代理时,您需要:
.\run.cmd
如果您使用“
--runAsAutoLogon
”选项配置交互模式自托管Windows代理,则每次使用此代理时,您需要:
--runAsAutoLogon
”选项,会自动从Agent安装目录打开命令提示符,并自动运行命令来启动Agent。所以,‘
--runAsAutoLogon
’选项主要是帮助您在手动登录代理机器成功后自动启动代理。代理工作期间必须保持机器在线且屏幕解锁。
对于您的情况,如果您的管道不需要运行一些交互式步骤,您可以将代理配置为以服务模式运行(作为服务运行)。
成功配置服务模式代理后,每次使用该代理时,只需保证代理机器在线即可,无需手动登录机器。一旦代理机上线,代理服务就会自动启动并保持在线状态。