linux怎么查看本机内存大小
221
2022-09-14
Azure解决方案:如何通过脚本批量更新用户属性?
51CTO 博客地址:AD里的某个用户属性信息,可以通过Get-AzureADUser命令来获取其单一用户的信息,但如果获取到用户属性,比如部门或者Job Titile与当前信息不符合,可以通过 Set-AzureADUser来修改单个用户的属性。
但很多IT面临的是定期的部门重组,职位的调动,如果采用 Set-AzureADUser逐个用户修改,那么工作效率非常低,今天,我将给大家分享一下,如何通过脚本批量更新用户属性。
具体操作步骤如下所示:
1. 打开PowerShell,执行命令:Connect-AzureAD.
2. 执行命令:Get-AzureADUser | Get-Member -MemberType property,获取 Azure AD中用户的UPN和属性,如下所示:
3. 新建一个CSV文件,根据用户实际需求,编辑CSV文件属性和属性值,如下所示:
4. 执行脚本,如下所示:
$AzureADUsers = Import-CSV "C:\AzureADUserAttributes.csv"$i = 0;$TotolRows = $AzureADUsers.Count$UpdateStatusResult=@()ForEach($UserInfo in $AzureADUsers){$UserId = $UserInfo.'UserPrincipalName' $NewUserData = @{}$UserInfo.PSObject.Properties | ForEach { $NewUserData[$_.Name] = $_.Value }$i++;Write-Progress -activity "Processing $UserId " -status "$i out of $TotolRows completed"Try{$UserObj = Get-AzureADUser -ObjectId $UserId$ExistingUserData = @{}$UserObj.PSObject.Properties | ForEach { $ExistingUserData[$_.Name] = $_.Value } $AttributesToUpdate = @{} $CSVHeaders = @("JobTitle","Department","CompanyName","PhysicalDeliveryOfficeName","City","Country","PostalCode","State","StreetAddress")ForEach($property in $CSVHeaders){if ($NewUserData[$property] -ne $null -and ($NewUserData[$property] -ne $ExistingUserData[$property])){$AttributesToUpdate[$property] = $NewUserData[$property]}}if($AttributesToUpdate.Count -gt 0){Set-AzureADUser -ObjectId $UserId @AttributesToUpdate$UpdateStatus = "Success - Updated attributes : " + ($AttributesToUpdate.Keys -join ',') } else {$UpdateStatus ="No changes required"}}catch{$UpdateStatus = "Failed: $_"}$UpdateStatusResult += New-Object PSObject -property $([ordered]@{User = $UserIdStatus = $UpdateStatus})}$UpdateStatusResult | Select User,Status$UpdateStatusResult | Export-CSV "C:\AzureADUserUpdateStatus.CSV" -NoTypeInformation -Encoding UTF8
5. 访问一个用户的属性,已经更新完成,如下所示:
谢谢大家的阅读,若大家日后有其他疑问,欢迎线下讨论。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~