如何删除Jenkins中自动创建的无法手动删除的用户?
Jenkins 2.426.3批量删除自动生成Git用户的可行方案
一、批量删除:用Groovy脚本控制台(最高效)
Jenkins内置的脚本控制台可直接调用用户管理API,批量清理这类自动生成的用户:
- 进入Jenkins后台,路径:
Manage Jenkins->Script Console - 执行以下Groovy脚本(根据你的用户特征调整匹配规则):
def userManager = Jenkins.instance.getUserManager() // 自定义匹配规则:筛选名字/邮箱符合Git提交者特征的用户 def targetUsers = userManager.getAllUsers().findAll { user -> // 示例:匹配邮箱为Git仓库提交者格式,或用户名是提交者ID user.emailAddress ==~ /.*@your-git-repo-domain.com/ || user.id.matches(/^[a-z0-9-]+$/) } targetUsers.each { user -> println "正在删除用户:${user.id}(${user.fullName})" userManager.delete(user) } println "完成,共删除${targetUsers.size()}个用户"
注意:执行前务必调整
findAll内的匹配条件,确保只删除目标用户,避免误删正常账号。
二、手动删除(针对少量用户)
若提示无法删除,通常是用户被关联了权限或构建记录,需先解除关联再操作:
- 进入用户详情页:
Manage Jenkins->Manage Users-> 点击目标用户 - 移除所有权限:切换到「权限」标签,删除该用户的所有权限配置
- 清理关联构建:若用户是部分构建的执行者,可通过
Manage Jenkins->Manage Old Builds清理旧构建记录,或用脚本解除关联 - 回到用户列表,尝试删除用户
三、阻止后续自动创建
除Git插件的选项外,检查以下配置避免再生成这类用户:
- 全局安全配置:
Manage Jenkins->Configure Global Security,确认未开启「自动创建用户」或「允许任何人注册」 - 其他SCM插件:检查GitHub、GitLab等插件设置,关闭自动创建用户的相关选项
- Pipeline脚本:排查流水线代码中是否存在自动创建用户的逻辑
内容的提问来源于stack exchange,提问作者CCLee
相关产品推荐
相关产品推荐

