Get-ADUser cmdlet 是筛选和导出 Active Directory 中活动用户帐户的主要工具。无论是进行合规审计还是管理用户许可证,了解如何获取启用的 AD 用户都是必不可少的。
在 PowerShell 中获取启用用户有两种主要方法:使用简化的 -Filter 参数或更复杂的 -LDAPFilter 参数。我们推荐使用简化的 -Filter 方法,以便更清晰和易用。
使用 Get-ADUser cmdlet 通过 PowerShell 获取启用用户报告的步骤:
方法 1:使用 Get-ADUser Filter(推荐)
Import-Module ActiveDirectory
Get-ADUser -Filter {Enabled -eq $true} -Properties * |
Select-Object Name, SamAccountName, Title, Department, EmailAddress |
Export-Csv -Path "C:\Scripts\AD_EnabledUsers.csv" -NoTypeInformation
方法 2:使用 LDAP Filter
Import-Module ActiveDirectory
Get-ADUser -LDAPFilter "(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))" -Properties sAMAccountName, givenName, sn, enabled |
Select-Object sAMAccountName, givenName, sn, enabled |
Export-Csv -Path "C:\Scripts\LDAP_EnabledUsers.csv" -NoTypeInformation
使用 ADManager Plus 生成并导出启用的 AD 用户到 CSV(及其他格式):
使用 PowerShell 生成所有启用用户列表并创建简单的活动用户报告。
Get-ADUser -Filter {Enabled -eq $true} | Export-CSV "C:\AD_EnabledUsers.csv" -NoTypeInformation
此命令导出所有活动帐户的默认属性,便于快速审计。
使用 Get-ADUser filter(enabled true)和特定属性创建详细报告。
Get-ADUser -Filter {Enabled -eq $true} -Properties Department,Manager,LastLogonDate,EmailAddress | Select Name,SamAccountName,Department,Manager,LastLogonDate,EmailAddress | Export-CSV "C:\DetailedEnabledUsers.csv" -NoTypeInformation
此 PowerShell 脚本导出活动的 AD 用户,并提供全面的详细信息以供人力资源报告使用。
从特定组织单位生成 PowerShell 启用用户列表报告。
Get-ADUser -Filter {Enabled -eq $true} -SearchBase "OU=Sales,DC=contoso,DC=com" -Properties * | Select Name,Title,Department,Office | Export-CSV "C:\SalesEnabledUsers.csv" -NoTypeInformation
虽然可以使用 PowerShell 获取用户的最后登录详情,但存在多个限制。
该命令专门筛选销售 OU 中的启用用户,适用于部门审计。
| 参数 | 描述 |
|---|---|
| -Identity | 通过区分名称、GUID、安全标识符或 SAM 帐户名指定 AD 用户对象 |
| -Filter | 使用 PowerShell 表达式语言指定查询字符串以检索多个对象 |
| -SearchBase | 指定要搜索的 AD 路径(OU 或容器的区分名称 (DN)) |
| -SearchScope | 指定 AD 搜索范围(Base、OneLevel 或 Subtree) |
| -Properties | 指定要检索的用户属性(默认返回有限属性集) |
| -LDAPFilter | 指定用于筛选用户的 LDAP 查询字符串 |
Get-ADUser -Filter {Enabled -eq $true} -Properties * | Select Name,SamAccountName,Enabled
Export-CSV "$env:USERPROFILE\Desktop\EnabledUsers.csv" -NoTypeInformation
Export-CSV "C:\EnabledUsers.csv" -NoTypeInformation -Encoding UTF8
Get-ADUser -Filter {Enabled -eq $true} -Properties MemberOf | Select Name,@{N='Groups';E={$_.MemberOf -join ';'}}