To find Teams Phone users without a number, list the people enabled for Enterprise Voice with Get-CsOnlineUser and keep those whose LineURI is empty. Leave out resource accounts and soft-deleted users, which the cmdlet returns too. A number assigned in the last day may not show yet: Microsoft says enabling a user can take up to 24 hours.
| Method | Best fit |
|---|---|
| PowerShell | A CSV of every person with Teams Phone and no number, with their Teams features. |
| Admin centre | Checking 1 person's assigned number on their Account tab. |
| Altivane | Recommended for recurring reviews, with the people counted and rated beside the unassigned numbers. |
Before you start
Use an account with a Teams role that manages phone numbers: Teams Administrator, Teams Communications Administrator or Teams Telephony Administrator. The module needs Windows PowerShell 5.1 or PowerShell 7.2 or later. The example passes no permission or scope: its access is the signed-in account's role.
Enterprise Voice is the Teams Phone setting EnterpriseVoiceEnabled; assigning a number turns it on, but it can also be on with no number. The examples read and export; they assign or remove no number and change nothing.
Option 1
Find Teams Phone users without a number with PowerShell
Install the module once, then connect and export the people with Enterprise Voice on and no number. The filter runs in Teams, so only voice-enabled user accounts come back.
# Install once, if the module is not already installed.
Install-Module MicrosoftTeams -Scope CurrentUser$ErrorActionPreference = 'Stop'
Connect-MicrosoftTeams | Out-Null
try {
$filter = 'EnterpriseVoiceEnabled -eq $true -and AccountType -eq ''User'''
$users = @(Get-CsOnlineUser -Filter $filter)
$report = @($users |
Where-Object { -not $_.LineURI -and $null -eq $_.SoftDeletionTimestamp } |
Sort-Object DisplayName |
Select-Object DisplayName, UserPrincipalName, AccountEnabled,
@{ Name = 'FeatureTypes'; Expression = { $_.FeatureTypes -join ', ' } })
if ($report.Count -eq 0) {
Write-Output "All $($users.Count) Teams Phone users have a number."
} else {
$report | Export-Csv -Path './teams-phone-users-without-number.csv' `
-NoTypeInformation -Encoding utf8
Write-Output "$($report.Count) of $($users.Count) Teams Phone users have no number."
}
} finally {
Disconnect-MicrosoftTeams
}The CSV has 1 row for each person, by name. FeatureTypes shows what their licences give them: PhoneSystem for Teams Phone and CallingPlan where Microsoft provides the number. AccountType -eq 'User' leaves out resource accounts and guests; remove it to include resource accounts, such as those behind auto attendants.
Check a single person
Reconnect with Connect-MicrosoftTeams, then read 1 person's voice settings. The main export above disconnects when it finishes.
# Run while connected to Microsoft Teams. Replace the example account.
Get-CsOnlineUser -Identity 'person@example.com' |
Select-Object DisplayName, EnterpriseVoiceEnabled, LineURI, FeatureTypesA Direct Routing number shows in LineURI just as a Calling Plan number does. To see where a number comes from, read its NumberType with Get-CsPhoneNumberAssignment, such as CallingPlan or DirectRouting.
Option 2
Check a person's number in the admin centre
- Sign in to the Microsoft Teams admin centre for the correct tenant.
- Go to Users > Manage users. The Calling Plan column shows who has a Calling Plan licence.
- Select a person and open the Account tab.
- Read Assigned phone number. A person with no number shows the option to assign one instead.
- Leave the page without choosing Edit or Assign primary phone number, so nothing changes.
This suits checking 1 or 2 people, such as a new starter. It does not suit a review of the whole tenant, since each person's number is on their own page.
Option 3 ยท Recommended for recurring reviews
Find Teams Phone users without a number with Altivane
- Open Altivane and choose the tenant.
- Build the tenant's documents with the Teams Users and Phones scorecard report in full, so the people are listed as well as counted.
- Open the tenant's Excel workbook and find Teams Phone Users Without a Number: each User with their Account type, Teams Phone and Features.
- Read Teams Users Summary for Teams Phone users and Teams Phone users without a number, beside Unassigned phone numbers.
Resource accounts are left out of the list. The scorecard marks the count Warning at 1 and Critical at 5 until you change the limits, and the same report lists the unassigned numbers you could give them. The build also writes the tenant's Word report. The report needs a tenant signed in with a certificate.
Contact usCommon questions
Why does someone with a new number still show up?
Microsoft says it can take up to 24 hours for a user to be enabled after a number is assigned. Run the check again the next day before you follow it up.
Why are soft-deleted users in the output?
Without -Identity, Get-CsOnlineUser includes soft-deleted users, with SoftDeletionTimestamp set. The script leaves out any row where it has a value.
Where do I find numbers to give them?
Numbers the tenant holds but has not assigned are listed by Get-CsPhoneNumberAssignment. To find them, see how to find unassigned phone numbers in Microsoft Teams.
Microsoft references
Technical references checked on 6 November 2026. The example scripts have been reviewed and syntax checked; they have not been run against a live tenant.