Microsoft 365要求用户使用UPN登录,因此当准备将本地AD的用户通过Azure AD Connect同步到Azure时,需要先检查一下用户的UPN后缀。UPN的后缀使用的域名,需要已经添加至Microsoft 365 租户(Tenant)。Microsoft 365不接受未经验证过的域,例如ejoin.local。

如果本地用户的UPN后缀目前是.local或者其它未在Microsoft 365中添加的域,则需要修改这些用户的UPN后缀。

以下PowerShell脚本可以帮助我们实现批量修改多个用户的UPN。

脚本示例如下,实现的是将 测试 OU里用户的UPN后缀从 ejoin.local 改成 ejoinclass.com

========================================================

#设置将要被替换掉的UPN后缀

$oldSuffix = 'ejoin.local'

#设置新的UPN后缀

$newSuffix = 'ejoinclass.com'

#设置将要进行UPN后缀替换的OU

$ou = "OU=测试,DC=ejoin,DC=local"

#设置域控制器主机名称

$server = "DC1"

Get-ADUser -SearchBase $ou -filter * | ForEach-Object {

$newUpn = $_.UserPrincipalName.Replace($oldSuffix,$newSuffix)

$_ | Set-ADUser -server $server -UserPrincipalName $newUpn

}

========================================================

将脚本保存成一个文件,例如changeUPN.ps1。

随后用管理员权限打开域控制器上的Windows PowerShell, 运行 Import-Module  ActiveDirectory加载AD模块。

进入存放有脚本文件的目录,例如C:\Script

执行脚本,例如: .\changeUPN.ps1

执行后用户的UPN后缀就被更新为ejoinclass.com了。

通过PowerShell批量修改AD用户的UPN后缀_PowerShell


作者:一加之言,不足之处,欢迎指正。