2

有什么方法可以将 VSTS 构建代理设置为在 Windows 启动时以交互模式(作为管理员)运行?

现在,我已安装并配置代理以在交互模式下运行。所以它在控制台中运行。在 Windows 启动中有一个条目:

c:\Windows\System32\cmd.exe /D /S /C start "Agent with AutoLogon" "C:\agent\run.cmd" --startuptype autostartup

因此,无需任何额外更改,它就会在 Windows 启动时启动,并在控制台中启动。但是我需要它以管理员模式运行,所以我点击了这个链接:

https://superuser.com/a/1274970

基本上,这个允许我设置另一个指向原始 cmd.exe(重命名)的 cmd.exe,并且我能够将其标记为在管理员模式下运行。不幸的是,在此更改之后,代理根本不会从 windows 启动。

有什么方法可以调试它或查看日志(无法启动的应用程序)?

有趣的是,当我双击 cmd.exe 时,它​​总是以管理员模式启动......所以机器上有一些阻止程序阻止它在 Windows 启动时执行启动命令。

我已将代理设置为使用计算机上的管理员组中的帐户。我认为它会以管理员身份使用修改后的 cmd 自动启动,该 cmd 设置为始终以提升的权限启动 - 它没有。

非常感谢任何帮助。

谢谢,克里斯

4

2 回答 2

3

我遇到了同样的问题,并通过Task Scheduler中的条目解决了这个问题。该任务设置为以最高权限运行,并在系统启动时触发。

计划任务

结合 UAC 设置为Never notify,上面显示的任务以管理员身份运行,并且不会触发用户交互以进行自动提升。请注意,由于任务在后台运行,因此 CMD 窗口不可见。

编辑:如果 CMD 窗口需要在前台运行,可以为 Windows 机器启用自动登录并将任务配置为仅在用户登录时运行

于 2019-07-26T13:24:56.753 回答
0

捷径解决方案:

  1. 创建一个包含以下内容的runAgent.cmd文件:
call "C:\agent\run.cmd" --startuptype autostartup
  1. 创建runAgent.cmd的快捷方式runAgent.lnk
  2. 对于runAgent.lnk打开属性并启用:快捷方式 > 高级... > 以管理员身份运行
  3. 将Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run中VSTSAgent的注册表键值修改为:
C:\WINDOWS\system32\cmd.exe /D /S /C start "Agent with AutoLogon" "C:\agent\runAgent.lnk"

链接属性

于 2021-04-20T00:02:32.817 回答