如何使用 PowerShell 获取 Active Directory 用户的显示名称

检索 Active Directory (AD) 用户的显示名称是 IT 团队常见的管理任务。显示名称是大多数用户和应用程序看到的内容,而非技术标识符如 sAMAccountName 或 DistinguishedName (DN),并广泛应用于企业通讯录、邮件客户端、审计报告和身份管理系统。在大型组织中管理用户账户时,快速查找或导出显示名称可以减少错误并节省时间。虽然 PowerShell 提供了可靠的方法,但基于 GUI 的工具如 ManageEngine ADManager Plus 通过提供 批量管理功能、导出选项和内置报告,使操作更加简便。

获取 AD 用户显示名称:PowerShell 与 ADManager Plus 对比

以下是使用 Windows PowerShell 和 ManageEngine ADManager Plus 获取 AD 用户显示名称的比较。

Windows PowerShell

前提条件

打开 Windows PowerShell 并导入 Active Directory 模块:

Import-Module ActiveDirectory

获取 AD 用户显示名称

要获取已知用户的显示名称,请指定用户身份(例如 sAMAccountName、UserPrincipalName 或 DistinguishedName),并明确请求 DisplayName 属性。将“username”替换为实际的用户登录名:

Get-ADUser -Identity "username" -Properties DisplayName | Select-Object DisplayName
ADManager Plus
  1. 导航至 Reports > User Reports > General Reports > All Users
  2. 选择域和 OU,然后点击 Generate
  3. 要搜索特定用户,点击 Search 图标并输入用户的 SAMAccountName 或登录名。

想编辑显示名称?了解 ADManager Plus 如何帮助您 修改 AD 用户属性

显示名称的示例脚本与使用案例

示例 1:通过 SAM 账户名获取用户显示名称

返回 SAM 账户名为 “jdoe” 的用户的显示名称属性。

Get-ADUser -Identity "jdoe" -Properties DisplayName | Select-Object DisplayName

示例 2:获取所有用户的显示名称

列出 AD 中每个用户的登录名和显示名称。

Get-ADUser -Filter * -Properties DisplayName | Select-Object Name, DisplayName

示例 3:将所有用户显示名称导出为 CSV

将所有用户的名称和显示名称导出到 CSV 文件。

Get-ADUser -Filter * -Properties DisplayName | Select-Object Name, DisplayName | Export-Csv -Path "C:\AllUserDisplayNames.csv" -NoTypeInformation

示例 4:按部分或完整显示名称搜索 AD 用户

如果只知道部分显示名称,此方法有助于查找用户。

Get-ADUser -Filter "DisplayName -like '*John*'" -Properties DisplayName | Select-Object SamAccountName, DisplayName

示例 5:通过显示名称查找用户登录名

搜索显示名称完全匹配 “John Doe” 的用户。

Get-ADUser -Filter {DisplayName -eq "John Doe"} -Properties SamAccountName | Select-Object SamAccountName, DisplayName

示例 6:通过显示名称提取 AD 用户属性

导入包含用户显示名称的 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 脚本获取显示名称的限制

虽然功能强大,但仅依赖 PowerShell 进行广泛的用户报告可能会带来挑战:

  • 非脚本人员的复杂性: 对不熟悉 PowerShell 的管理员来说,编写和调试复杂脚本可能非常耗时。
  • 缺乏集中报告: 生成各种 AD 属性的全面 PowerShell 报告通常需要结合多个脚本和手动数据整合。
  • 错误处理: 需要在每个脚本中显式构建健壮的错误处理机制。

选择 ADManager Plus 而非 PowerShell 的优势

ADManager Plus 弥合了强大 AD 报告与易用性之间的差距。以下是它为何成为许多 IT 团队更佳选择的原因:

  • 无需脚本: 只需几次点击即可轻松生成包含显示名称等 AD 用户属性的报告,无需任何脚本。
  • 预定义报告: 访问 200 多个开箱即用的报告,为您节省大量时间。
  • 可定制报告: 创建包含特定属性和筛选条件的定制报告,以满足您独特的审计和合规需求。
  • 自动报告调度: 安排报告 自动生成并发送到您的收件箱,确保您始终拥有最新信息。
  • 委派报告: 安全地将 AD 报告任务委派 给帮助台技术人员,无需让他们接触敏感数据或复杂的 PowerShell 脚本。

今天就获取您的 AD 用户显示名称

常见问题解答

运行以下命令搜索显示名称,并包含唯一标识符如 SamAccountNameDistinguishedName

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 批量更新,首先准备一个包含SamAccountNameDisplayName列的 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
Active Directory管理与报告的一站式解决方案
电子邮件下载链接 Email the ADManager Plus download link