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了。
作者:一加之言,不足之处,欢迎指正。