Previously, the process to convert internal employees was complicated and involved multiple steps to convert user types, UPN, and re-assign licenses. However, Microsoft has now introduced a new feature that allows for the conversion of external users to internal users with a single click.
For organizations going through acquisitions, mergers, and joint ventures, it is common to onboard employees from other organizations as external users. This helps ease them into the new environment without creating new accounts and minimizing disruption to their existing processes. However, over time, it becomes necessary to convert these newly acquired users into internal users.
With the new feature introduced by Microsoft, the process of converting external users to internal users has become simpler and more efficient.
You can follow the steps below to convert external users to internal users using the Azure AD portal.
You can convert external users to internal using the Microsoft Entra admin center.
Sign in to the Microsoft Entra admin center as at least a User Administrator.
Browse to Identity > Users > All users.
As shown in the image, select Convert to internal user
However, if you want to convert a large number of users, you will need to utilize the Graph API. At the time of writing this post, there is no direct PowerShell commandlet to convert an external user to an internal user.
I have used the Graph API and Invoke-MgGraphRequest
to convert external users to internal users. Below is the PowerShell script to convert an external user to an internal user.
$userId = "3702a2bb-2d83-4f8d-ae18-b38d1e6998b6"
$newUPN = "suryendu.bhattacharyya@03z3s.onmicrosoft.com"
$password = "Mowo932415"
$userJson = @"
{
"userPrincipalName": "$newUPN",
"passwordProfile": {
"password": "$password",
"forceChangePasswordNextSignIn": false
},
"mail": "$newUPN",
}
"@
beta
endpoint for this request. We will use the userid
variable to create the URL for the request. This will make the request dynamic and allow us to run the script for multiple users in a loop. convertExternalToInternalMemberUser
is the operation we will run to convert the user.$aadurl = "https://graph.microsoft.com/beta/users/$userId/convertExternalToInternalMemberUser"
Invoke-MgGraphRequest
commandlet to send the POST
request. This commandlet is part of the Microsoft.Graph
module. This module is available from the PowerShell Gallery.##Convert External User to Internal User
write-output "Converting External User to Internal User"
$response = Invoke-MgGraphRequest -method POST -Uri $aadurl -Body $userJson -ContentType "application/json"
write-output "User Converted"
Now that we have the script, we can run it for each user we want to convert. Below is the result of the script.
User Before Conversion :
User After Conversion
The new feature introduced by Microsoft has made the process of converting external users to internal users simpler and more efficient. This feature is especially useful for organizations that are going through acquisitions, mergers, and joint ventures. The ability to convert external users to internal users with a single click will help organizations streamline their processes and minimize disruption to their existing workflows. When testing external user conversion, Microsoft recommends that you use test accounts or accounts that wouldn’t disrupt if they were to become unavailable.