PowerShell を使用してライセンスおよびライセンスのないMicrosoft 365ユーザーを表示する

この記事は、Microsoft 365 Enterprise および Office 365 Enterprise の両方に適用されます。

Microsoft 365組織内のユーザー アカウントには、組織で利用可能なライセンス プランから、利用可能なライセンスの一部、全部、またはいずれも割り当てられていない場合があります。 PowerShell を使用してMicrosoft 365を使用すると、組織内のライセンスユーザーとライセンスのないユーザーをすばやく見つけることができます。

Microsoft Graph PowerShell SDK を使用する

まず、Microsoft 365 テナントに接続します

ライセンスの詳細を含むユーザー プロパティを読み取るには、User.Read.All アクセス許可スコープまたは参照ページの [ユーザーの取得] Graph APIに一覧表示されている他のアクセス許可のいずれかが必要です。

テナントで使用可能なライセンスを読み取るには、Organization.Read.All アクセス許可スコープが必要です。

Connect-Graph -Scopes User.Read.All, Organization.Read.All

特定のユーザー アカウントのライセンスの詳細を表示するには、次のコマンドを実行します。

Get-MgUserLicenseDetail -UserId "<user sign-in name (UPN)>"

例:

Get-MgUserLicenseDetail -UserId "belindan@litwareinc.com"

ライセンス プラン (ライセンスのないユーザー) が割り当てられていない組織内のすべてのユーザー アカウントの一覧を表示するには、次のコマンドを実行します。

Get-MgUser -Filter 'assignedLicenses/$count eq 0' -ConsistencyLevel eventual -CountVariable unlicensedUserCount -All

Write-Host "Found $unlicensedUserCount unlicensed users."

ライセンス プラン (ライセンスのないユーザー) が割り当てられていない組織内のすべてのメンバー ユーザー アカウント (ゲストを除く) の一覧を表示するには、次のコマンドを実行します。

Get-MgUser -Filter "assignedLicenses/`$count eq 0 and userType eq 'Member'" -ConsistencyLevel eventual -CountVariable unlicensedUserCount -All

Write-Host "Found $unlicensedUserCount unlicensed users (excluding guests)."

ライセンス プラン (ライセンスユーザー) が割り当てられている組織内のすべてのユーザー アカウントの一覧を表示するには、次のコマンドを実行します。

Get-MgUser -Filter 'assignedLicenses/$count ne 0' -ConsistencyLevel eventual -CountVariable licensedUserCount -All -Select UserPrincipalName,DisplayName,AssignedLicenses | Format-Table -Property UserPrincipalName,DisplayName,AssignedLicenses

Write-Host "Found $licensedUserCount licensed users."

E5 ライセンスが割り当てられている組織内のすべてのユーザー アカウントの一覧を表示するには、次のコマンドを実行します。

$e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'

Get-MgUser -Filter "assignedLicenses/any(x:x/skuId eq $($e5sku.SkuId) )" -ConsistencyLevel eventual -CountVariable e5licensedUserCount -All

Write-Host "Found $e5licensedUserCount E5 licensed users."

Graph 用 Azure Active Directory PowerShell モジュールを使用する

まず、Microsoft 365 テナントに接続します

ライセンス プラン (ライセンスのないユーザー) が割り当てられていない組織内のすべてのユーザー アカウントの一覧を表示するには、次のコマンドを実行します。

Get-AzureAdUser | ForEach{ $licensed=$False ; For ($i=0; $i -le ($_.AssignedLicenses | Measure).Count ; $i++) { If( [string]::IsNullOrEmpty(  $_.AssignedLicenses[$i].SkuId ) -ne $True) { $licensed=$true } } ; If( $licensed -eq $false) { Write-Host $_.UserPrincipalName} }

ライセンス プラン (ライセンスユーザー) が割り当てられている組織内のすべてのユーザー アカウントの一覧を表示するには、次のコマンドを実行します。

Get-AzureAdUser | ForEach { $licensed=$False ; For ($i=0; $i -le ($_.AssignedLicenses | Measure).Count ; $i++) { If( [string]::IsNullOrEmpty(  $_.AssignedLicenses[$i].SkuId ) -ne $True) { $licensed=$true } } ; If( $licensed -eq $true) { Write-Host $_.UserPrincipalName} }

注意

サブスクリプション内のすべてのユーザーを一覧表示するには、コマンドを Get-AzureAdUser -All $true 使用します。

Windows PowerShell 用 Microsoft Azure Active Directory モジュールを使用する

まず、Microsoft 365 テナントに接続します

組織内のすべてのユーザー アカウントとそのライセンス状態の一覧を表示するには、PowerShell で次のコマンドを実行します。

Get-MsolUser -All

注意

PowerShell Core は、Windows PowerShell 用 Microsoft Azure Active Directory モジュールと、名前に Msol が含まれるコマンドレットをサポートしていません。 これらのコマンドレットを引き続き使用するには、Windows PowerShell から実行する必要があります。

組織内でライセンスのないすべてのユーザー アカウントの一覧を表示するには、次のコマンドを実行します。

Get-MsolUser -All -UnlicensedUsersOnly

組織内でライセンスのあるすべてのユーザー アカウントの一覧を表示するには、次のコマンドを実行します。

Get-MsolUser -All | where {$_.isLicensed -eq $true}

関連項目

Microsoft 365 ユーザー アカウント、ライセンス、PowerShell を使用したグループを管理する

PowerShell で Microsoft 365を管理する

Microsoft 365 用 PowerShell の使用を開始する