打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
AD域批量删除用户对象:Remove
userphoto

2023.01.11 广东

关注
目录
域账户管理批量删除用户对象概述
通过导入 CSV 数据列表删除用户对象
通过 SAM 账户名删除属于子项/子集/子树的用户对象
通过搜索并删除指定组织单位(OU)容器内的用户对象

域账户管理批量删除用户对象概述

如果删除单个账户,我们可以使用 Remove-ADUser -Identity zhangsan -Confirm:$false 命令执行,一般正常情况下可以成功执行,但是会有以下两种常见问题:

一、如果要同时删除 10 个或 100 个甚至更多账户,就不能一个一个执行;

二、如果账户还包含子树目录的场景下执行 Remove-ADUser 就会报错 Remove-ADUser : 目录服务只可以在一个页状对象上运行要求的操作。

Remove-ADUser : 目录服务只可以在一个页状对象上运行要求的操作。
所在位置 行:5 字符: 1
+ Remove-ADUser -Identity    test_del_myaccount    -Confirm:$false
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (test_del_myaccount:ADUser) [Remove-ADUser], ADException
    + FullyQualifiedErrorId : ActiveDirectoryServer:8213,Microsoft.ActiveDirectory.Management.Commands.RemoveADUser

经查微软 PowerShell 文档,删除子项(子树)需要使用如下删除域对象 Remove-ADObject 命令:
Remove-ADObject -Identity zhangsan -Recursive

通过导入 CSV 数据列表删除用户对象

import-csv .\del.csv | foreach{Get-ADUser -Identity $_.name} | foreach{Remove-ADObject -Identity $_.ObjectGUID -Recursive -Confirm:$False}

以上即是通过导入计划删除域账户的明细 csv 表格数据,经过两个循环执行命令来删除用户:

代码段一:导入账户明细

import-csv .\del.csv

指定路径或在当前目录下导入 CSV 表格数据 import-csv .\del.csv

注意:CSV 表格数据,成员列表需要使用 SamAccountName 属性;

代码段二:获取账户信息

foreach{Get-ADUser -Identity $_.name}

循环获取域账户信息;

-Identity $_.name 中的 name 需要与上述 CSV 表格数据成员列表表头对应;

Get-ADUser hexingxing


DistinguishedName : CN=何星星,OU=Admins,OU=IC,OU=InformationAndNewTechnologyDept.,OU=CN,OU=GlobalAdmin,DC=hxx,DC=tt
Enabled           : True
GivenName         : 星星
Name              : 何星星
ObjectClass       : user
ObjectGUID        : 68ba9331-c728-1100-b8b2-26b7948763b2
SamAccountName    : hexingxing
SID               : S-1-5-21-1306568705-3882769175-3968532009-9238
Surname           : 何
UserPrincipalName : hexingxing@hxx.tt

代码段三:删除用户对象

foreach{Remove-ADObject -Identity $_.ObjectGUID -Recursive -Confirm:$False}

1. Remove-ADObject 删除对象命令,可以是账户、计算机、组织等;

2. -Identity $_.ObjectGUID 指定以对象的 GUID 来查询账户并删除,根据微软 PowerShell 文档 Remove-ADObject 命令的运用规则,其中 ObjectGUID 也可以替换为 DN(CN=AmyAl-LPTOP,CN=Computers,DC=FABRIKAM,DC=COM) 名称 来使用,

3. -Recursive 循环删除账户及子项,即解决使用 Remove-ADUser 报错【Remove-ADUser : 目录服务只可以在一个页状对象上运行要求的操作。】;

4. -Confirm:$False 不需要确认,直接执行。

通过 SAM 账户名删除属于子项/子集/子树的用户对象

如果需求是只要删除一个用户,但是用户还有子项/子集/子树,使用 Remove-ADUser 还是不能直接删除,根据以上的实例,我们可以使用以上完整代码中的后两个部分即可,即使用 Get-ADUser 来获取用户信息,再使用 Remove-ADObject 获取用户 ObjectGUID 定位精确用户以删除。

Get-ADUser -Identity zhangsan | foreach{Remove-ADObject -Identity $_.ObjectGUID -Recursive -Confirm:$False}

通过搜索并删除指定组织单位(OU)容器内的用户对象

Get-ADUser -Filter * -SearchBase "OU=cnList,OU=testGroup,DC=hxx,DC=tt" | foreach{Remove-ADObject -Identity $_.ObjectGUID -Recursive -Confirm:$False}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
利用Powershell分析最近一段时间使用手机的activesync 协议进行连接的用户和相关的账户信息!
域控powershell实例(收集整理)
Powershell管理系列(三)2012 AD域用户UPN名称还原
如何还原 Active Directory 中已删除的对象
认识smack中的基本对象 - Registration
【VBA字典对象】六招式之Remove方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服