Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心博客

使用 PowerShell 获取 AD 中已过期用户账户及到期日期列表的方法

使用 PowerShell 获取 AD 中已过期用户账户及到期日期列表的方法

Jan 20, 2025

使用 PowerShell 获取已过期用户账户列表的方法

Active Directory 管理员执行的最重要任务之一,是确保过期用户账户能够及时被报告,并采取措施立即将其删除或禁用。请注意,您设置了到期日期的用户账户只会被临时创建。例如,您可能创建了若干用户账户,以便供应商能够登录到 Active Directory。同样,您也可能为承包商创建了用户账户。若要查看哪些账户已过期,请执行以下 PowerShell 命令:

      Search-ADAccount -Server $ThisDomain -Credential $Creds -AccountExpired -UsersOnly -ResultPageSize 2000 -resultSetSize $null| Select-Object Name, SamAccountName, DistinguishedName
      

请注意,这次再次使用 Search-ADAccount PowerShell cmdlet,但使用的是不同的开关(switch)。我们使用的开关是 AccountExpired 。顾名思义,AccountExpired 开关可帮助你收集已过期的用户帐户。

如何使用 PowerShell 获取帐户到期日期

要获取 Active Directory 中所有已启用用户的 AD account expiration date,你可以使用带有 Get-ADUser cmdlet 和 -AccountExpirationDate 属性。请在 Windows Server 上的 PowerShell ISE 中运行以下脚本:

      Get-ADUser -Filter 'enabled -eq $true' -Properties AccountExpirationDate | Select sAMAccountName, distinguishedName, AccountExpirationDate
      

你将获得 AD 用户完整列表的到期日期和时间。

如果你需要针对特定组生成汇总,需要通过添加 -SearchBase 参数来修改脚本。你可以通过添加 |export-csv <Path> –NoTypeInformation

假设我们需要导出 enterprise.com 域中 “IT” 组织单位的账户到期日期列表,那么将在 DC 上执行的表达式如下:

      Get-ADUser -Filter 'enabled -eq $true' -Searchbase "OU=IT,DC=enterprise,DC=com" -Properties AccountExpirationDate | Select SAMAccountName, distinguishedName, AccountExpirationDate |export-csv C:TempExpiryDate.csv -NoTypeInformation
      

总结一下,只需具备最少量的 Microsoft Powershell 脚本编写能力,结合 Search-ADAccountGet-ADUser,即可帮助你完成许多临时性的 AD 清理与分析任务。

还需要更多用于 Active Directory 的 PowerShell 脚本吗?在一篇博客文章中找到所有最受欢迎的 Active Directory 的 PowerShell 命令

使用 Netwrix Auditor 追踪到期账户并降低风险

立即识别 AD 中的孤立账户和已过期账户

了解更多

分享到

了解更多

关于作者

Nirmal sharma

Nirmal Sharma

Nirmal 是 MCSEx3、MCITP,并因其在目录服务和 Windows 网络方面的贡献而获得 Microsoft MVP 奖项。他专长于 PowerShell 脚本编写、Microsoft Azure、Office 365、目录服务、故障转移群集、Hyper-V 以及 System Center 产品。