如何使用 PowerShell 删除 Active Directory 用户

最后更新于:

删除 Active Directory (AD) 用户账户是一个关键的管理任务,关系到安全性和 AD 清理。此操作是永久性的,且如果没有适当的 AD 备份,将无法恢复。删除 AD 用户的方法不止一种,本文将介绍三种主要方法:使用 Active Directory Users and Computers (ADUC)、PowerShell 以及简单且安全的替代方案 ADManager Plus

删除与禁用 AD 用户:应该选择哪种?

  • 删除 AD 用户 删除 AD 用户时,用户对象、其 SID 及其属性都会被移除。只有当员工永久离开公司且所有数据保留期限已过时,才应删除 AD 对象。
  • 禁用 AD 用户 禁用账户时,账户仍保留在 AD 中,但无法用于登录。这是临时休假、安全调查或作为永久删除前的第一步的最佳做法。
  • PowerShell
  • ADUC
  • ADManager Plus
  • 原生工具的限制
  • 为什么选择 ADManager Plus
  • 常见问题解答
 

如何使用 PowerShell 删除 AD 用户

使用 PowerShell 的 Remove-ADUser cmdlet 是删除 AD 用户最灵活的方法。操作前,请确保已使用此脚本安装了 PowerShell 的 Active Directory 模块。

# Import the Active Directory module
Import-Module ActiveDirectory

您可以通过 sAMAccountName、Distinguished Name (DN) 或 User Principal Name (UPN) 来识别用户。

# This command will prompt for confirmation
Remove-ADUser -Identity "jdoe"
  # To skip the confirmation prompt in a script, use -Confirm:$false
Remove-ADUser -Identity "jdoe" -Confirm:$false

示例脚本和使用案例

以下是一些使用 PowerShell 中 Remove-ADUser cmdlet 可完成的示例脚本和使用案例。

示例 1:从 CSV 批量删除 AD 用户

这是管理员使用 PowerShell 删除 AD 用户时最常用的脚本。创建一个包含待删除用户列表的 CSV 文件,然后运行以下脚本。

# Import the list of users from the CSV
$users = Import-Csv -Path "C:\temp\users-to-delete.csv"
  # Loop through each user in the list and remove them
foreach ($user in $users) {
$sam = $user.samaccountname
Write-Host "Attempting to delete user: $sam"
  # Use -ErrorAction SilentlyContinue so one bad name doesn't stop the script
Remove-ADUser -Identity $sam -Confirm:$false -ErrorAction SilentlyContinue
}

示例 2:查找并删除不活跃的 AD 用户

一个关键的清理任务是删除在设定时间内未登录的 AD 用户。

# Set the time for inactivity
$inactiveDays = 90
$cutoffDate = (Get-Date).AddDays(-$inactiveDays)
  # Find inactive users
$inactiveUsers = Get-ADUser -Filter { LastLogonDate -lt $cutoffDate } -Properties LastLogonDate
  # Loop through and delete each inactive user
foreach ($user in $inactiveUsers) {
$name = $user.SamAccountName
Write-Host "Deleting inactive user: $name (Last Logon: $($user.LastLogonDate))"
  # Use -WhatIf first to test! Remove -WhatIf to perform the actual deletion.
Remove-ADUser -Identity $name -WhatIf
}

如何在 ADUC 中删除 AD 用户

使用 ADUC 控制台是删除单个用户的最直接方法。

  1. 在您的域控制器或安装了 RSAT 的 PC 上,按下 Windows + R,输入 dsa.msc,然后按 Enter
  2. 浏览 OU 树以定位用户账户。如果您不知道用户的 OU,右键点击您的域名,点击 查找 以搜索并定位用户。
  3. 右键点击您想要删除的用户对象,点击 删除
  4. 在确认对话框中点击
在 ADUC 中删除 AD 用户。

如何使用 ADManager Plus 安全删除 AD 用户

虽然原生工具可用,但存在严重缺陷。ADUC 对于批量任务过于手动,PowerShell 脚本中的一个错误可能导致错误地永久删除整个 OU。

ADManager Plus 是一款 AD 管理 工具,提供安全且直观的界面,将复杂脚本简化为几次简单点击,允许您安全地将任务委派给帮助台人员,而无需授予他们高权限的域权限。

如何使用 ADManager Plus 批量删除 AD 用户

  1. 登录到 ADManager Plus。
  2. 导航至 Management > User Management > Bulk User Modification > Delete Users
  3. 选择域并导入包含用户列表的 CSV 文件。您也可以通过搜索栏搜索并定位用户。点击 开始
  4. 从列表中选择用户账户,点击 应用
使用 ADManager Plus 仅通过 CSV 文件批量删除 AD 用户。

ADManager Plus 简化了整个过程,消除了错误,并为所有 AD 用户管理操作提供了简单的解决方案。

使用 ADUC 和 PowerShell 删除 AD 用户的限制

虽然功能齐全,但内置工具存在显著缺陷:

  • 易出错: 使用 PowerShell 删除 AD 用户是不可逆的。脚本中的拼写错误可能导致意外删除数千名用户,且无法简单撤销。
  • 权限风险: 删除用户需要拥有删除用户权限,这属于高权限。将此任务委派给帮助台技术人员存在安全风险,因为他们可能删除错误的对象。
  • 学习曲线陡峭: 编写安全有效的脚本需要理解错误处理、确认参数等知识。
  • 缺乏可扩展性: ADUC 仅适合一次删除一个用户,无法用于批量清理。
  • 无审计跟踪: 使用这些工具难以获得清晰、简单的报告,说明谁在何时删除了什么。

使用 ADManager Plus 删除 AD 用户的优势

ADManager Plus 旨在克服原生工具的所有限制,提供安全高效的解决方案。

  • 安全且细粒度的委派 使用帮助台角色,授予帮助台技术人员仅在特定 OU 内删除用户的权限。
  • 批量修改 通过导入简单的 CSV 文件批量删除 AD 用户。
  • 基于报告的清理 运行报告,如“非活动用户”或“已禁用用户”,并通过报告界面几次点击直接删除账户。
  • 基于审批的工作流 实施审批工作流,要求经理批准后用户账户才能被永久删除。
  • 完整的注销 自动化策略可以同时删除 AD 用户、撤销其 Microsoft 365 许可证、清空邮箱并删除其主文件夹,一次操作完成。

常见问题解答

可以,如果您启用了 Active Directory 回收站,则可以恢复已删除的 AD 用户。必须在用户被删除之前启用该功能。如果未启用,则必须从 AD 备份执行复杂的权威还原。

用户的 SID 会随用户对象永久删除。如果您创建一个同名的新用户,他们将获得一个新的 SID。该新用户无法访问之前可访问的任何文件、文件夹或资源。

不会。删除用户对象仅从 AD 中移除该对象,不会自动删除用户的 Microsoft 365 或 Exchange 邮箱或其个人文件共享。这些必须单独注销。不过,ADManager Plus 可以帮助您自动化整个工作流程,简化 AD 注销

立即使用 ADManager Plus 快速注销 AD 用户!

Active Directory管理与报告的一站式解决方案
电子邮件下载链接 Email the ADManager Plus download link