我需要洗掉 Azure AD 中某些來賓用戶的顯示名稱的一部分。
顯示名稱:公司 - 名字姓氏(公司 -需要洗掉)
來賓帳戶沒有填寫“名字”和“姓氏”屬性。我有一個正在運行的腳本,可以向顯示名稱添加一些內容:
#Guest CompanyNames
$Companies = @('Company1','Company2')
#Get guest users with UPN like: company.extension#EXT#@domain.onmicrosoft.com
Foreach ($Company in $Companies){
$Users = Get-AzureADUser -All $true | Where-Object {($_.UserPrincipalName -like "*$Company.*") -and ($_.DisplayName -notlike "*($Company)")}
foreach ($User in $Users){
$DisplayName = $User.DisplayName " " "($Company)"
Set-AzureADUser -ObjectId $User.ObjectId -Displayname $DisplayName
}
}
我找不到任何東西來調整這種腳本以從顯示名稱中洗掉“公司 -”。希望有人能幫幫我,謝謝!
uj5u.com熱心網友回復:
要與您發布的代碼相反,即洗掉以顯示名稱開頭的公司名稱,您可以使用以下命令:
$Companies = 'Company1','Company2'
# join the company names with regex 'OR' ('|')
$regexCompanies = '^({0})\s*-\s*' -f (($Companies | ForEach-Object { [regex]::Escape($_) }) -join '|')
# find users that have a DisplayName starting with one of the company names
$Users = Get-AzureADUser -All $true | Where-Object {$_.DisplayName -match $regexCompanies}
foreach ($User in $Users) {
# split the displayname in two parts, take the last part and trim it
$DisplayName = ($User.DisplayName -split '\s*-\s*', 2)[-1].Trim()
Set-AzureADUser -ObjectId $User.ObjectId -Displayname $DisplayName
}
順便提一句。在你的foreach ($User in $Users)回圈中,你應該使用$User,而不是$Users..
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/454134.html
上一篇:如何將西里爾字母轉換為utf16
