PowerShell を使用Microsoft 365アカウント ライセンスとサービスの詳細を表示する

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

Microsoft 365では、ライセンス プラン (SKU または Microsoft 365 プランとも呼ばれます) からのライセンスにより、ユーザーはそれらのプランに対して定義されているMicrosoft 365 サービスにアクセスできます。 しかし、ユーザーは、現在割り当てられているライセンスで使用可能なすべてのサービスにアクセスできるとは限りません。 Microsoft 365に PowerShell を使用して、ユーザー アカウント上のサービスの状態を表示できます。

ライセンス プラン、ライセンス、およびサービスの詳細については、「 PowerShell を使用したライセンスとサービスの表示」を参照してください。

Microsoft Graph PowerShell SDK を使用する

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

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

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

次に、このコマンドを使用して、テナントのライセンス プランを一覧表示します。

Get-MgSubscribedSku

これらのコマンドを使用して、各ライセンス プランで使用できるサービスを一覧表示します。


$allSKUs = Get-MgSubscribedSku -Property SkuPartNumber, ServicePlans 
$allSKUs | ForEach-Object {
    Write-Host "Service Plan:" $_.SkuPartNumber
    $_.ServicePlans | ForEach-Object {$_}
}

これらのコマンドを使用して、ユーザー アカウントに割り当てられているライセンスを一覧表示します。

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

例:

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

ユーザー アカウントのサービスを表示するには

ユーザーがアクセス権を持つすべてのMicrosoft 365 サービスを表示するには、次の構文を使用します。

(Get-MgUserLicenseDetail -UserId <user account UPN> -Property ServicePlans)[<LicenseIndexNumber>].ServicePlans

この例では、ユーザー BelindaN@litwareinc.com がアクセスできるサービスを示します。 これにより、このユーザーのアカウントに割り当てられているすべてのライセンスに関連付けられているサービスが表示されます。

(Get-MgUserLicenseDetail -UserId belindan@litwareinc.com -Property ServicePlans).ServicePlans

次の例では、ユーザー BelindaN@litwareinc.com が、アカウントに割り当てられている最初のライセンス (インデックス番号 0) からアクセスできるサービスが表示されます。

(Get-MgUserLicenseDetail -UserId belindan@litwareinc.com -Property ServicePlans)[0].ServicePlans

複数のライセンス が割り当てられているユーザーのすべてのサービスを表示するには、次の構文を使用します。

$userUPN="<user account UPN>"
$allLicenses = Get-MgUserLicenseDetail -UserId $userUPN -Property SkuPartNumber, ServicePlans
$allLicenses | ForEach-Object {
    Write-Host "License:" $_.SkuPartNumber
    $_.ServicePlans | ForEach-Object {$_}
}

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

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

次に、このコマンドを使用して、テナントのライセンス プランを一覧表示します。

Get-AzureADSubscribedSku | Select SkuPartNumber

これらのコマンドを使用して、各ライセンス プランで使用できるサービスを一覧表示します。

$allSKUs=Get-AzureADSubscribedSku
$licArray = @()
for($i = 0; $i -lt $allSKUs.Count; $i++)
{
$licArray += "Service Plan: " + $allSKUs[$i].SkuPartNumber
$licArray +=  Get-AzureADSubscribedSku -ObjectID $allSKUs[$i].ObjectID | Select -ExpandProperty ServicePlans
$licArray +=  ""
}
$licArray

これらのコマンドを使用して、ユーザー アカウントに割り当てられているライセンスを一覧表示します。

$userUPN="<user account UPN, such as belindan@contoso.com>"
$licensePlanList = Get-AzureADSubscribedSku
$userList = Get-AzureADUser -ObjectID $userUPN | Select -ExpandProperty AssignedLicenses | Select SkuID 
$userList | ForEach { $sku=$_.SkuId ; $licensePlanList | ForEach { If ( $sku -eq $_.ObjectId.substring($_.ObjectId.length - 36, 36) ) { Write-Host $_.SkuPartNumber } } }

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

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

次に、このコマンドを実行して、組織で使用できるライセンス プランを一覧表示します。

Get-MsolAccountSku

注意

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

次に、このコマンドを実行して、各ライセンス プランで使用可能なサービスと、それらが一覧表示される順序 (インデックス番号) を一覧表示します。

(Get-MsolAccountSku | where {$_.AccountSkuId -eq "<AccountSkuId>"}).ServiceStatus

このコマンドを使用して、ユーザーに割り当てられているライセンスと、それらが一覧表示される順序 (インデックス番号) を一覧表示します。

Get-MsolUser -UserPrincipalName <user account UPN> | Format-List DisplayName,Licenses

ユーザー アカウントのサービスを表示するには

ユーザーがアクセス権を持つすべてのMicrosoft 365 サービスを表示するには、次の構文を使用します。

(Get-MsolUser -UserPrincipalName <user account UPN>).Licenses[<LicenseIndexNumber>].ServiceStatus

この例では、ユーザー BelindaN@litwareinc.com がアクセスできるサービスを示します。 これにより、このユーザーのアカウントに割り当てられているすべてのライセンスに関連付けられているサービスが表示されます。

(Get-MsolUser -UserPrincipalName belindan@litwareinc.com).Licenses.ServiceStatus

次の例では、ユーザー BelindaN@litwareinc.com が、アカウントに割り当てられている最初のライセンス (インデックス番号 0) からアクセスできるサービスが表示されます。

(Get-MsolUser -UserPrincipalName belindan@litwareinc.com).Licenses[0].ServiceStatus

複数のライセンス が割り当てられているユーザーのすべてのサービスを表示するには、次の構文を使用します。

$userUPN="<user account UPN>"
$AllLicenses=(Get-MsolUser -UserPrincipalName $userUPN).Licenses
$licArray = @()
for($i = 0; $i -lt $AllLicenses.Count; $i++)
{
$licArray += "License: " + $AllLicenses[$i].AccountSkuId
$licArray +=  $AllLicenses[$i].ServiceStatus
$licArray +=  ""
}
$licArray

関連項目

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

PowerShell で Microsoft 365を管理する

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