求PowerShell脚本:将AD用户及OU的Fullname设为与UserPrincipalName一致
PowerShell 修改AD用户Fullname属性匹配UserPrincipalName
说明
AD中用户的CN(即Name属性)创建后无法修改,你提到的"Fullname"通常对应AD的DisplayName属性,以下脚本将该属性修改为与UserPrincipalName(登录名)完全一致。
前提
- 执行脚本的账号需拥有AD用户修改权限
- 系统需已加载
ActiveDirectoryPowerShell模块:- 域控制器默认自带该模块
- 成员服务器可通过命令安装:
Install-WindowsFeature RSAT-AD-PowerShell(无需安装完整AD管理程序)
脚本实现
1. 单用户修改
针对特定用户执行修改:
# 替换为目标用户的SamAccountName或用户DN $userIdentity = "fabio.b" $user = Get-ADUser -Identity $userIdentity -Properties UserPrincipalName, DisplayName Set-ADUser -Identity $user -DisplayName $user.UserPrincipalName
2. 批量修改指定OU下的所有用户
修改指定组织单元内的全部用户:
# 替换为目标OU的完整DN $targetOU = "OU=Sales,DC=contoso,DC=com" $users = Get-ADUser -Filter * -SearchBase $targetOU -Properties UserPrincipalName, DisplayName foreach ($user in $users) { Write-Host "修改用户: $($user.SamAccountName) | 原DisplayName: '$($user.DisplayName)' → 新DisplayName: '$($user.UserPrincipalName)'" Set-ADUser -Identity $user -DisplayName $user.UserPrincipalName }
3. 批量修正属性不一致的用户
仅修改DisplayName与UserPrincipalName不匹配的用户:
$users = Get-ADUser -Filter { DisplayName -ne UserPrincipalName } -Properties UserPrincipalName, DisplayName foreach ($user in $users) { Write-Host "修正用户: $($user.SamAccountName)" Set-ADUser -Identity $user -DisplayName $user.UserPrincipalName }
验证修改结果
执行以下命令确认属性已同步:
Get-ADUser -Identity "目标用户名" -Properties UserPrincipalName, DisplayName | Select-Object SamAccountName, UserPrincipalName, DisplayName
内容的提问来源于stack exchange,提问作者Fabio Brigoni
相关产品推荐
相关产品推荐

