You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10下Jenkins以System运行启动记事本不可见的问题及身份疑问

这是个很典型的Windows会话隔离问题,我来给你拆解清楚:

问题一:Jenkins以System运行时,如何让记事本显示在桌面?

首先得搞懂为什么看不到:从Windows Vista开始,微软引入了会话0隔离机制——System账户运行的服务默认在「会话0」(非交互式的后台会话),而你登录的userA处于另一个「交互式会话」(通常是会话1)。两个会话完全隔离,所以System启动的记事本只会在会话0后台跑,自然不会出现在你的桌面。

有两种靠谱的解决方式:

  • 用PsExec跨会话启动程序
    这是最稳妥的方案,步骤如下:

    1. 先获取userA的会话ID:打开命令提示符,执行 query session,找到userA对应的数字ID(比如一般是1)。
    2. 在Jenkins的构建步骤里执行命令:
      psexec -i <你的会话ID> -u userA -p <userA的密码> notepad.exe
      
      这条命令会强制记事本在userA的交互式会话中启动,就能直接在桌面看到了。
  • 尝试修改Jenkins服务的交互权限(Win10可能无效)
    Win10默认禁用了服务与桌面交互的选项,但你可以试试:

    1. 打开「服务」管理器,找到Jenkins服务,右键→属性→「登录」选项卡。
    2. 如果坚持用System账户,勾选「允许服务与桌面交互」——不过这个选项在Win10里大概率因为会话0隔离的限制不生效,所以更推荐第一种方法。
问题二:把Jenkins改成以userA身份运行,记事本会正常显示吗?

绝对可以。当你把Jenkins服务的登录账户改成userA后:

  • Jenkins的进程会运行在userA的安全上下文下,而且只要userA已经登录到Windows桌面(哪怕是锁屏状态),Jenkins启动的程序就会和userA处于同一个交互式会话中,记事本会直接显示在你的桌面,和你手动打开的效果完全一样。

这里有两个小细节要注意:

  • 确保userA有足够权限运行Jenkins服务,比如至少要有本地管理员权限,或者具备启动服务、运行程序的相关权限。
  • 如果userA没有登录Windows,Jenkins启动的程序还是会跑到会话0,同样看不到桌面显示——所以必须保证userA处于登录状态。

内容的提问来源于stack exchange,提问作者techy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:34:16