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

如何在PowerShell脚本中合并禁用AD用户与移动OU操作?

整合后的AD用户批量禁用与OU移动脚本

可以将两个操作合并到同一个循环中,同时优化查询逻辑减少AD服务器的重复请求,具体实现脚本如下:

# 读取待处理的用户名列表
$users = Get-Content C:\disableusers.txt
# 替换为你实际的"Disabled Users" OU的distinguishedName
$targetOU = "OU=Disabled Users,DC=yourdomain,DC=com"

foreach ($userName in $users) {
    # 一次性获取AD用户对象,避免重复查询AD
    $adUser = Get-ADUser -Identity $userName -ErrorAction SilentlyContinue

    if ($adUser) {
        # 执行禁用账户操作
        Disable-ADAccount -Identity $adUser
        Write-Host "用户 $userName 已成功禁用"

        # 执行移动到目标OU操作
        Move-ADObject -Identity $adUser -TargetPath $targetOU
        Write-Host "用户 $userName 已成功移动到目标OU"
    } else {
        Write-Host "警告:未找到用户 $userName" -ForegroundColor Yellow
    }
}

核心优化与说明

  • 减少AD交互次数:每个用户仅调用一次Get-ADUser获取对象,后续的禁用和移动操作直接复用该对象,比原脚本两次查询AD的效率更高。
  • 容错处理:通过-ErrorAction SilentlyContinue和对象存在性判断,避免因单个用户不存在导致整个脚本中断,同时给出明确的警告提示。
  • 操作反馈:通过Write-Host输出每一步的执行结果,方便实时查看进度和排查问题。

使用注意事项

  1. 确保运行脚本的账号拥有禁用AD用户和移动用户到目标OU的权限。
  2. 务必将$targetOU的值替换为你实际环境中“Disabled Users” OU的distinguishedName,可通过AD管理工具查看该OU的属性获取。
  3. 建议先选取少量用户测试脚本,确认执行正常后再进行批量处理。

内容的提问来源于stack exchange,提问作者S.Mahmood

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 05:30:47