使用PowerShell脚本批量修改AzureAD办公地点无生效且无报错
AzureAD用户办公地点修改脚本未生效问题排查与修复
问题原因
你的脚本修改未生效且无报错,核心原因是ExtensionProperty是只读的动态属性集合,直接修改它里面的值无法被Set-AzureADUser正确识别并同步到AzureAD,服务端会忽略这个无效请求,因此没有任何反馈。
修复后的脚本
直接使用Set-AzureADUser的专用参数来更新办公地点属性,脚本如下:
# 指定新旧办公地点名称 $oldOfficeName = "Test" $newOfficeName = "Live Test" # 获取AzureAD中所有用户 $allUsers = Get-AzureADUser -All $true # 遍历用户,匹配旧地点则更新 foreach ($user in $allUsers) { if ($user.PhysicalDeliveryOfficeName -eq $oldOfficeName) { Set-AzureADUser -ObjectId $user.ObjectId -PhysicalDeliveryOfficeName $newOfficeName Write-Host "已更新用户 $($user.UserPrincipalName) 的办公地点" } }
核心说明
Get-AzureADUser返回的用户对象里,PhysicalDeliveryOfficeName是直接可访问的属性,无需从ExtensionProperty中读取Set-AzureADUser提供了-PhysicalDeliveryOfficeName专用参数,这是官方推荐的正确更新方式,能确保修改同步到AzureAD
内容的提问来源于stack exchange,提问作者TMI
相关产品推荐
相关产品推荐

