检索 Active Directory (AD) 用户的显示名称是 IT 团队常见的管理任务。显示名称是大多数用户和应用程序看到的内容,而非技术标识符如 sAMAccountName 或 DistinguishedName (DN),并广泛应用于企业通讯录、邮件客户端、审计报告和身份管理系统。在大型组织中管理用户账户时,快速查找或导出显示名称可以减少错误并节省时间。虽然 PowerShell 提供了可靠的方法,但基于 GUI 的工具如 ManageEngine ADManager Plus 通过提供 批量管理功能、导出选项和内置报告,使操作更加简便。
以下是使用 Windows PowerShell 和 ManageEngine ADManager Plus 获取 AD 用户显示名称的比较。
前提条件
打开 Windows PowerShell 并导入 Active Directory 模块:
Import-Module ActiveDirectory
获取 AD 用户显示名称
要获取已知用户的显示名称,请指定用户身份(例如 sAMAccountName、UserPrincipalName 或 DistinguishedName),并明确请求 DisplayName 属性。将“username”替换为实际的用户登录名:
Get-ADUser -Identity "username" -Properties DisplayName | Select-Object DisplayName
想编辑显示名称?了解 ADManager Plus 如何帮助您 修改 AD 用户属性。
返回 SAM 账户名为 “jdoe” 的用户的显示名称属性。
Get-ADUser -Identity "jdoe" -Properties DisplayName | Select-Object DisplayName
列出 AD 中每个用户的登录名和显示名称。
Get-ADUser -Filter * -Properties DisplayName | Select-Object Name, DisplayName
将所有用户的名称和显示名称导出到 CSV 文件。
Get-ADUser -Filter * -Properties DisplayName | Select-Object Name, DisplayName | Export-Csv -Path "C:\AllUserDisplayNames.csv" -NoTypeInformation
如果只知道部分显示名称,此方法有助于查找用户。
Get-ADUser -Filter "DisplayName -like '*John*'" -Properties DisplayName | Select-Object SamAccountName, DisplayName
搜索显示名称完全匹配 “John Doe” 的用户。
Get-ADUser -Filter {DisplayName -eq "John Doe"} -Properties SamAccountName | Select-Object SamAccountName, DisplayName
导入包含用户显示名称的 CSV 文件,并输出如 sAMAccountName 和电子邮件地址等属性。
$users = Import-Csv -Path "C:\Path\To\UsersByDisplayName.csv"
foreach ($user in $users) {
$adUser = Get-ADUser -Filter {DisplayName -eq $user.DisplayName} -Properties SamAccountName, DisplayName, EmailAddress, Title
if ($adUser) {
# If multiple users with same display name, return all
foreach ($u in $adUser) {
Write-Output "DisplayName: $($u.DisplayName), SamAccountName: $($u.SamAccountName), Email: $($u.EmailAddress), Title: $($u.Title)"
}
} else {
Write-Output "User with DisplayName '$($user.DisplayName)' not found."
}
}
以下参数对于使用 PowerShell 检索用户显示名称非常有用:
| 参数 | 描述 |
|---|---|
| -Identity | 指定要查询的用户(SAM 账户名、DN、GUID 或 SID) |
| -Filter | 启用按 DisplayName 或其他属性过滤 |
| -Properties | 请求结果中包含额外属性(如 DisplayName) |
| -SearchBase | 限制搜索范围到特定 OU 或容器 |
| -Server | 指定要查询的域控制器 |
| -Credential | 使用替代凭据运行 |
| -AuthType | 选择身份验证方法,如 Negotiate 和 Basic。 |
虽然功能强大,但仅依赖 PowerShell 进行广泛的用户报告可能会带来挑战:
ADManager Plus 弥合了强大 AD 报告与易用性之间的差距。以下是它为何成为许多 IT 团队更佳选择的原因:
运行以下命令搜索显示名称,并包含唯一标识符如 SamAccountName 或 DistinguishedName:
Get-ADUser -Filter {DisplayName -eq "John Smith"} -Properties SamAccountName, DistinguishedName |
Select-Object DisplayName, SamAccountName, DistinguishedName
运行此命令获取显示名称及组成员身份:
Get-ADUser -Filter * -Properties DisplayName |
Select-Object DisplayName, @{Name="Groups";Expression={(Get-ADPrincipalGroupMembership $_ | Select-Object -ExpandProperty Name) -join ","}}
另外,ADManager Plus 提供预构建报告,帮助您列出 AD 组成员及其用户显示名称。
ADManager Plus 提供功能,帮助您批量更新 AD 用户属性,如显示名称、登录名等,避免重复操作和脚本错误。
要使用 PowerShell 批量更新,首先准备一个包含SamAccountName和DisplayName列的 CSV 文件(例如 C:\DisplayNames.csv)。然后运行:
Import-Csv "C:\DisplayNames.csv" | ForEach-Object {
Set-ADUser -Identity $_.SamAccountName -DisplayName $_.DisplayName
}
运行以下脚本,通过用户显示名称查找登录名:
Get-ADUser -Filter {DisplayName -eq "John Doe"} -Properties SamAccountName | Select-Object SamAccountName, DisplayName