How to Bulk Update Microsoft 365 Job Titles using PowerShell
Question details
The user needs to update the job titles of multiple Microsoft 365 accounts simultaneously using a PowerShell script and a CSV file.

- Product
- Microsoft 365
- Device & OS
- not provided
- Scenario
- A Microsoft 365 administrator needs to manage and update user profiles in bulk rather than editing each account manually via the admin portal.
- Observed behavior
- The goal is to apply new job titles mapped from a CSV file (containing UserPrincipalName and Title) to the respective Microsoft 365 user accounts using PowerShell cmdlets.
Ensure you have Global Administrator or User Management Administrator privileges in your Microsoft 365 tenant. Prepare a CSV file containing 'UserPrincipalName' and 'Title' columns with the correct updated information.
Bulk Update Job Titles via PowerShell and CSV
Use a CSV file along with the MSOnline and ExchangeOnlineManagement modules to quickly push job title updates to multiple users in your tenant.
This method utilizes traditional Microsoft 365 PowerShell modules. You will need to prepare a formatted CSV file and run a script to iterate through the data.
Create a CSV file named 'JobTitles.csv' with two column headers exactly named 'UserPrincipalName' and 'Title'. Fill in the respective email addresses and new job titles, then save the file.
Open PowerShell as an Administrator and run 'Install-Module -Name ExchangeOnlineManagement' followed by 'Install-Module MSOnline'. Accept any prompts to install from the PSGallery.
Run 'Connect-ExchangeOnline' and 'Connect-MsolService' in the PowerShell console. Sign in using your Microsoft 365 administrator credentials when prompted.
Execute the following script to import the CSV and apply the changes: Import-Csv -Path 'C:\path\to\JobTitles.csv' | ForEach-Object { Set-MsolUser -UserPrincipalName $_.UserPrincipalName -Title $_.Title }
Log in to the Microsoft 365 Admin Center, navigate to 'Users' > 'Active users', and check the user profiles to confirm the job titles have been updated successfully.

Manage Administrative CSV Files Easily with WPS Office
Preparing accurate CSV files for your PowerShell scripts is seamless with WPS Spreadsheet. As a highly compatible alternative to Microsoft Office, WPS Office lets you manage your bulk data and administration files for free without heavy subscription costs.

Frequently Asked Questions
Can I use Microsoft Graph PowerShell instead of MSOnline to update job titles?
Yes, it is highly recommended to use the Microsoft Graph PowerShell module as Microsoft is deprecating MSOnline. You can use the 'Update-MgUser' cmdlet inside your loop to achieve the same bulk update functionality.
What format should my CSV file be in for the PowerShell script?
Your CSV file should be a standard comma-separated values file with strict headers. For the provided script, ensure you use 'UserPrincipalName' for the user's email address and 'Title' for the new job title.
Why am I getting access denied errors when running Set-MsolUser?
This error usually occurs if the account you used to sign in with 'Connect-MsolService' does not have the necessary User Management Administrator or Global Administrator roles assigned in your Microsoft 365 tenant.
How long does it take for the job title updates to appear in Microsoft Teams?
While changes in the Microsoft 365 Admin Center are almost immediate, it can take anywhere from a few hours to 24 hours for the updated job titles to fully sync and display in Microsoft Teams and Outlook client address books.




