Forum Discussion
jebujohn
May 08, 2020Brass Contributor
Bulk update Azure AD with user attributes from CSV
I am looking for a way to update user attributes (OfficePhone and Department) for about 500 users from a CSV to AzureAD using a powershell. Does anyone know of a script that I could use? I am new her...
- May 08, 2020
Hello Jacob,
Your CSV has to look something like this:
UserPrincipalName;Department;TelephoneNumber
manfreddelaat@domain.nl;IT;0135113333
manfred@domain.nl;IT;0622222222Your Powershell code:
# Connect to AzureAD Connect-AzureAD # Get CSV content $CSVrecords = Import-Csv C:\Temp\Test.csv -Delimiter ";" # Create arrays for skipped and failed users $SkippedUsers = @() $FailedUsers = @() # Loop trough CSV records foreach ($CSVrecord in $CSVrecords) { $upn = $CSVrecord.UserPrincipalName $user = Get-AzureADUser -Filter "userPrincipalName eq '$upn'" if ($user) { try{ $user | Set-AzureADUser -Department $CSVrecord.Department -TelephoneNumber $CSVrecord.TelephoneNumber } catch { $FailedUsers += $upn Write-Warning "$upn user found, but FAILED to update." } } else { Write-Warning "$upn not found, skipped" $SkippedUsers += $upn } } # Array skipped users # $SkippedUsers # Array failed users # $FailedUsers
Good luck!
Kind Regards, Manfred de Laat
Arun_Siwakoti
Dec 17, 2023Copper Contributor
Simple to see and learn this PowerShell code start with exchangeonline first after that we go through AzureAD: Please email me: email address removed for privacy reasons 🙂
Import-Module ExchangeOnlineManagement
Install-Module ExchangeOnlineManagement
Connect-ExchangeOnline
$CSVrecords = Import-Csv C:\newdata.csv
$total = $CSVrecords.Count
$i = 0
$newdom = "your.domian.com" #type vefied domain from your domain list
foreach ($user in $CSVrecords)
{
$i = $i + 1
$oid = $user.ObjectId
$username = $user.GivenName.ToLower() + "." + $user.Surname.ToLower() #ToLower is to create all character in lowercase ToUpper() for uppercase
#Write-Host "$username"
$finalemail = $username + "@" + $newdom
#Write-Host "$finalemail"
Set-Mailbox $oid -EmailAddresses $finalemail
Write-Progress -activity "Processing $user.DisplayName $i out of $total completed"
}
Write-Host "All UPN set to domain $newdom"
Now Again time for AzureAD
Install-Module AzureAD
import-Module AzureAD
Connect-AzureAD
$CSVrecords = Import-Csv C:\Users\aruns\OneDrive\Desktop\newdata.csv
$total = $CSVrecords.count
$i = 0
$pdomain = "your.domain.com" #New tetantdoamin here betweeen " "
# Loop trough CSV records
foreach ($user in $CSVrecords)
{
$i = $i + 1
$oid = $user.ObjectId
$username = $user.GivenName.ToLower() + "." + $user.Surname.ToLower()
#Write-Host "$username"
$finalemail = $username + "@" + $newdom
#Write-Host "$finalemail"
Set-AzureADUser -ObjectId $oid -UserPrincipalName $finalemail
Write-Progress -activity "Processing $user.DisplayName $i out of $total completed"
}
Write-Host "Well done Action Completed!"
If helpful I love you all
Import-Module ExchangeOnlineManagement
Install-Module ExchangeOnlineManagement
Connect-ExchangeOnline
$CSVrecords = Import-Csv C:\newdata.csv
$total = $CSVrecords.Count
$i = 0
$newdom = "your.domian.com" #type vefied domain from your domain list
foreach ($user in $CSVrecords)
{
$i = $i + 1
$oid = $user.ObjectId
$username = $user.GivenName.ToLower() + "." + $user.Surname.ToLower() #ToLower is to create all character in lowercase ToUpper() for uppercase
#Write-Host "$username"
$finalemail = $username + "@" + $newdom
#Write-Host "$finalemail"
Set-Mailbox $oid -EmailAddresses $finalemail
Write-Progress -activity "Processing $user.DisplayName $i out of $total completed"
}
Write-Host "All UPN set to domain $newdom"
Now Again time for AzureAD
Install-Module AzureAD
import-Module AzureAD
Connect-AzureAD
$CSVrecords = Import-Csv C:\Users\aruns\OneDrive\Desktop\newdata.csv
$total = $CSVrecords.count
$i = 0
$pdomain = "your.domain.com" #New tetantdoamin here betweeen " "
# Loop trough CSV records
foreach ($user in $CSVrecords)
{
$i = $i + 1
$oid = $user.ObjectId
$username = $user.GivenName.ToLower() + "." + $user.Surname.ToLower()
#Write-Host "$username"
$finalemail = $username + "@" + $newdom
#Write-Host "$finalemail"
Set-AzureADUser -ObjectId $oid -UserPrincipalName $finalemail
Write-Progress -activity "Processing $user.DisplayName $i out of $total completed"
}
Write-Host "Well done Action Completed!"
If helpful I love you all