操作教程|JumpServer基于作业中心脚本定时删除Windows Server本地用户

在JumpServer堡垒机的日常运维工作中,管理员经常需要定期清理临时账户、测试账户或者已离职员工的本地用户账户。常规的手动操作方式不仅效率低下,而且也很容易遗漏。

本文向您介绍一种自动删除Windows Server本地用户的方法,利用JumpServer的作业中心功能,创建命令作业并设置定时执行任务。通过该方法,管理员可以定期清理Windows Server上的临时或者过期的本地用户账号,自动化执行用户生命周期管理,减少人工操作,通过实现账号定期清理,提升系统运维管理的效率。具体的操作步骤如下:

1.开启作业中心功能

在JumpServer中依次选择"系统设置"→"功能设置"→"任务中心",在"任务中心"页面开启"作业中心"功能开关,同时点击"提交"按钮,即可全局启用JumpServer的作业中心功能。

▲图1 开启作业中心功能

2.创建命令作业(PowerShell)

在JumpServer中依次选项"工作台"→"作业中心"→"作业管理",在"作业管理"页面点击"创建"按钮,创建命令作业。

▲图2 创建命令作业

然后,在"更新作业"页面依次填写作业名称、模块(这里选择PowerShell)、参数、运行目录、超时时间、资产、运行用户、用户策略等基本信息。

▲图3 配置作业信息1

▲图4 配置作业信息2

其中,参数内容具体参考以下代码(以删除用户"cjk"为例):

c 复制代码
$username = "cjk"
Write-Host "正在删除用户: $username" -ForegroundColor Cyan

# 检查用户是否存在
$userExists = Get-LocalUser -Name $username -ErrorAction SilentlyContinue
if (-not $userExists) {
   Write-Host "用户 $username 不存在" -ForegroundColor Red
   exit
}

# 删除用户
try {
   Remove-LocalUser -Name $username -Confirm:$false
   Write-Host "用户 $username 删除成功" -ForegroundColor Green
} catch {
   Write-Host "删除失败: $_" -ForegroundColor Red
   exit
}

# 删除用户文件夹
$profilePath = "C:\Users\$username"
if (Test-Path $profilePath) {
   Write-Host "正在删除用户文件夹..." -ForegroundColor Cyan
   try {
      Remove-Item -Path $profilePath -Recurse -Force -ErrorAction Stop
      Write-Host "用户文件夹已删除" -ForegroundColor Green
   } catch {
      Write-Host "文件夹可能被占用: $_" -ForegroundColor Yellow
      Write-Host "请重启后手动删除" -ForegroundColor Yellow
   }
} else {
   Write-Host "用户文件夹不存在" -ForegroundColor Yellow
}

Write-Host "操作完成!" -ForegroundColor Green

此外,我们还可以勾选"定时执行"选项,设置定期执行的crontab脚本(例如53**0,即每周日03:05执行一次任务)。所有信息填写完成后,点击"提交"按钮,即可完成一个定时执行作业的创建。

▲图5 设置定期执行作业

3.运行命令作业

作业创建完成后,在"作业管理"页面点击该作业的"运行"按钮,即可执行该作业。

▲图6 执行命令作业

下图是执行命令作业的结果:

▲图7 执行命令作业结果

注意:如果脚本执行出现下图类似的报错信息,可能是Windows Server版本不兼容导致的,替换报错行命令为对应可兼容版本命令即可。

▲图8 脚本报错信息示例

相关推荐
测试员周周12 小时前
【Appium 系列】第16节-WebView-H5上下文切换 — 混合应用的自动化难点
运维·开发语言·人工智能·功能测试·appium·自动化·测试用例
小鹏linux15 小时前
Ubuntu 22.04 部署开源免费具有精美现代web页面的Casdoor账号管理系统
linux·前端·ubuntu·开源·堡垒机
在角落发呆16 小时前
Linux转发配置:解锁网络互联的核心密码
linux·运维·网络
冬奇Lab17 小时前
一天一个开源项目(第108篇):Andrej Karpathy Skills - 用一个 CLAUDE.md 文件修复 LLM 编码的四个顽疾
人工智能·开源·资讯
裴东青18 小时前
10-实战:RuoYi-Cloud的自动化发布
运维·ci/cd·自动化
哎呦,帅小伙哦18 小时前
Linux 时间:从原子钟到 clock_gettime 的每一面
linux·运维·服务器
sxgzzn18 小时前
新能源场站数智化转型:基于数字孪生与AI的智慧运维管理平台解析
大数据·运维·人工智能
张小姐的猫18 小时前
【Linux】多线程 —— 线程互斥
linux·运维·服务器·c++
CodeMartain18 小时前
Dify Windows 原生部署(无 Docker、纯本地)
运维·docker·容器
xxx1x1x18 小时前
极客向:DLL/运行库故障的底层逻辑与自动化修复方案
运维·自动化·dll文件·dll·dll修复·dll缺失·dll一键修复