Skip to content
TenantRunbook_

Users & licences · Microsoft 365

Create a Microsoft 365 user and assign a licence

Written November 12, 2026

A new starter needs two things before their first morning: an account they can sign in with, and a licence on it. The account alone is not enough — without a licence there is no working mailbox and no desktop apps, and an unlicensed mailbox is disabled after a 30-day grace period. This runbook creates both, in the admin centre first and then in Microsoft Graph PowerShell.

What you need

Route 1: the admin centre

  1. Open the user form. Sign in to the Microsoft 365 admin centre and go to Users > Active users, then select Add a user.
  2. Set up the basics. Enter the first and last name, and check the display name it builds. Fill in the username and pick the right domain after the @ if your tenant has more than one.
  3. Decide the password handling. Let the wizard generate a password, or set one yourself. Leave Require this user to change their password when they first sign in turned on, and choose how the password reaches the person — never in the same message as the username if you can avoid it.
  4. Assign the licence. On the Assign product licenses page, select the user's location first, then the licence. Expand the licence if you need to switch off individual apps — turning off a service here is how you give someone mail and Office apps without, say, Teams.
  5. Leave the optional settings alone unless you mean it. The role defaults to plain User, which is right for almost everyone. Skip the profile information fields; the user can fill them in later.
  6. Review and finish. Check the summary page — username spelling above all — and select Finish adding. The user appears in Active users within moments, and mailbox provisioning starts once the licence lands.

Route 2: Microsoft Graph PowerShell

The same job from a prompt, using the Microsoft Graph PowerShell SDK. Install the module once with Install-Module Microsoft.Graph -Scope CurrentUser, then connect with the scopes the job needs:

Connect-MgGraph -Scopes "User.ReadWrite.All", "Organization.Read.All"

$PasswordProfile = @{
    Password                      = "Set-a-real-one-4821"
    ForceChangePasswordNextSignIn = $true
}

New-MgUser -DisplayName "Priya Nair" `
    -UserPrincipalName "priya@contoso.com" `
    -MailNickname "priya" `
    -UsageLocation "CA" `
    -AccountEnabled `
    -PasswordProfile $PasswordProfile

Note the -UsageLocation in the create call — setting it now is what makes the licence assignment below work first time. Next, find the SKU of the plan you own and put it on the user. Get-MgSubscribedSku lists every plan in the tenant with how many licences are purchased and consumed:

$Sku = Get-MgSubscribedSku -All |
    Where-Object SkuPartNumber -eq "SPB"

Set-MgUserLicense -UserId "priya@contoso.com" `
    -AddLicenses @(@{ SkuId = $Sku.SkuId }) `
    -RemoveLicenses @()

Replace SPB with the part number of the plan you actually assign — the SkuPartNumber column of your own Get-MgSubscribedSku output is the list to pick from. To confirm the licence took, run Get-MgUserLicenseDetail -UserId "priya@contoso.com".

Group-based licensing

If your tenant assigns licences through security groups in Microsoft Entra ID, skip the per-user assignment in both routes: create the user, add them to the right group, and let the group hand over the licence. Mixing direct and group assignment on the same person is how licences end up half-applied.

End state

When it goes wrong

Sources