個々の Workplace 365 アプリケーションのライセンスを割り当てられたユーザーを見つける

個々の Workplace 365 アプリケーションのライセンスを割り当てられたユーザーを見つける [ad_1]

ライセンス Office 365 ユーザーの科学

Office 365 ライセンスの基本は、よく知られています。ユーザーは、Office 365 E3 や E5 などの複合プランのライセンスを通じてサービスにアクセスするか、Azure AD Premium P1 などの個々のサービスを提供します。Exchange オンラインやチームなどのサービスにアクセスするには、ユーザーが関連するライセンスを持っている必要があります。ユーザーに割り当てられたライセンスに関する情報は、Azure AD アカウントに格納されます。このコンテキストは、Microsoft 365 管理センターでは利用できないライセンスに関する質問への回答を開始する方法を理解するのに役立ちます (図 1)。

Microsoft 365 管理センターに記載されているテナントのライセンス情報
図 1: Microsoft 365 管理センターに記載されているテナントのライセンス情報

管理センターは、所有しているライセンス、割り当て済みおよび利用可能なライセンス、および割り当てられたライセンスを持つアカウントを教えてくれます。選択したライセンスを持つユーザーのリストを、レポート用の CSV ファイルにエクスポートしたり、Power BI にインポートして分析したりできます。ただし、複合ライセンスを通じて割り当てられたアプリケーションのライセンスをユーザーが持っている内容を調べる方法があります。

個別のアプリケーション ライセンス

チーム、Exchange オンライン、SharePoint オンラインの例を挙します。これらは、Office 365 E3 および E5 プランにバンドルされたコア サービスです。E3 または E5 ライセンスを持つすべてのユーザーがこれらのアプリケーションを使用できると仮定できますが、管理者は個々のユーザー アカウントからアプリケーションのサービス プランを削除できるため、この機能は当てはまりません (サービス プランは、プランにバンドルされている特定のアプリケーションのライセンスであり、サービス プランを購入することはできません)。図 2 に示す例を見てみましょう。ユーザーは Office 365 E3 ライセンスを持っていますが、予約、フォーム、および Kaizala のサービス プランが削除されました。

ユーザー アカウントから削除された個々のサービス プランのライセンスの表示
図 1: ユーザー アカウントから削除された個々のサービス プランのライセンスの表示

組織では、アプリケーションを展開する準備ができるまで、個々のサービス プランをユーザーから削除する方法が比較的一般的です。たとえば、Exchange、SharePoint、OneDrive for Business をすぐに使用するが、ローカル サポートが準備が整い、ユーザー トレーニングが利用可能になるまで、Office 365 E3 または E5 にバンドルされているチーム、フォーム、ストリーム、およびその他のアプリケーションへのユーザー アクセスをブロックする場合があります。

PowerShell を使用したライセンス情報へのアクセス

管理センターは個々のアプリケーションのサービスプランのレポートをサポートしていませんが、いくつかの簡単なPowerShellでこれを行うことは可能です。重要なのは、Azure AD アカウントからライセンス情報を取得する方法を見つけ出す方法です。

ライセンス情報は、 割り当てられたプラン のプロパティを Azure AD アカウントのプロパティ。このプロパティを調べると、ライセンスがアカウントに追加および削除されると、割り当てと削除が一覧で表示されます。

(Get-AzureADUser -ObjectId Andy.Ruth@office365itpros.com).AssignedPlans

AssignedTimestamp   CapabilityStatus Service            ServicePlanId
-----------------   ---------------- -------            -------------
28/01/2021 22:11:05 Deleted          OfficeForms        2789c901-c14e-48ab-a76a-be334d9d793a
28/01/2021 22:11:05 Deleted          MicrosoftKaizala   aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1
28/01/2021 22:11:05 Enabled          CRM                95b76021-6a53-4741-ab8b-1d1f3d66a95a

ServicePlanId は、プランの一意識別子 (GUID) を格納するため、重要な情報です。マイクロソフトは、 アプリケーション サービス プラン識別子のオンライン リスト 参考にしてください。覚えておくべきことは、同じサービス プラン識別子が常に使用されるということです。たとえば、2789c901-c14e-48ab-a76a-be334d9d793aは常にフォームプランE3(Office 365 E3に含まれるフォームアプリケーションのライセンス)です。

これを確認するために、 を取得します。 を使用して、テナント内で認識されているライセンスのセットを取得します。

$Licenses = (Get-AzureADSubscribedSku)
$Licenses | Select -Property SkuPartNumber, ConsumedUnits -ExpandProperty PrepaidUnits | Format-Table

SkuPartNumber                ConsumedUnits Enabled Suspended Warning
-------------                ------------- ------- --------- -------
STREAM                                   4   10000         0       0
EMSPREMIUM                               5       5         0       0
ENTERPRISEPACK                          22      25         0       0
FLOW_FREE                                3   10000         0       0
POWER_BI_STANDARD                        5 1000000         0       0
ENTERPRISEPREMIUM_NOPSTNCONF             5       5         0       0
TEAMS_EXPLORATORY                        0     100         0       0
SMB_APPS                                 2       3         0       0
RIGHTSMANAGEMENT_ADHOC                   3   50000         0       0

オンライン ドキュメントでは、Office 365 E3 SKU の名前が ENTERPRISEPACK であることを示しています。これは、私たちのリストのライセンス番号3ですので、私たちは、含まれているものを見つけるために、このオブジェクトを見ることができます。予想どおり、FORMS_PLAN_E3のサービス プラン識別子は 2789c901-c14e-48ab-a76a-be334d9d793a です。

$Licenses[2].ServicePlans | Format-Table ServicePlanName, ServicePlanId

ServicePlanName              ServicePlanId
---------------              -------------
POWER_VIRTUAL_AGENTS_O365_P2 041fe683-03e4-45b6-b1af-c0cdc516daee
CDS_O365_P2                  95b76021-6a53-4741-ab8b-1d1f3d66a95a
PROJECT_O365_P2              31b4e2fc-4cd6-4e7d-9c1b-41407303bd66
DYN365_CDS_O365_P2           4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14
MICROSOFTBOOKINGS            199a5c09-e0ca-4e37-8f7c-b05d533e1ea2
KAIZALA_O365_P3              aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1
MICROSOFT_SEARCH             94065c59-bc8e-4e8b-89e5-5138d471eaff
WHITEBOARD_PLAN2             94a54592-cd8b-425e-87c6-97868b000b91
MIP_S_CLP1                   5136a095-5cf0-4aff-bec3-e84448b38ea5
MYANALYTICS_P2               33c4f319-9bdd-48d6-9c4d-410b750a4a5a
BPOS_S_TODO_2                c87f142c-d1e9-4363-8630-aaea9c4d9ae5
FORMS_PLAN_E3                2789c901-c14e-48ab-a76a-be334d9d793a
STREAM_O365_E3               9e700747-8b1d-45e5-ab8d-ef187ceec156
Deskless                     8c7d2df8-86f0-4902-b2ed-a0458298f3b3
FLOW_O365_P2                 76846ad7-7776-4c40-a281-a386362dd1b9
POWERAPPS_O365_P2            c68f8d98-5534-41c8-bf36-22fa496fa792
TEAMS1                       57ff2da0-773e-42df-b2af-ffb7a2317929
PROJECTWORKMANAGEMENT        b737dad2-2f6c-4c65-90e3-ca563267e8b9
SWAY                         a23b959c-7ce8-4e57-9140-b90eb88a9e97
INTUNE_O365                  882e1d05-acd1-4ccb-8708-6ee03664b117
YAMMER_ENTERPRISE            7547a3fe-08ee-4ccb-b430-5077c5041653
RMS_S_ENTERPRISE             bea4c11e-220a-4e6d-8eb8-8ea15d019f90
OFFICESUBSCRIPTION           43de0ff5-c92c-492b-9116-175376d08c38
MCOSTANDARD                  0feaeb32-d00e-4d66-bd5a-43b5b83db82c
SHAREPOINTWAC                e95bec33-7c88-4a70-8e19-b10bd9d0c014
SHAREPOINTENTERPRISE         5dbe027f-2339-4123-9542-606e4d348a72
EXCHANGE_S_ENTERPRISE        efb87545-963c-4e0d-99df-69c6916d9eb0

アプリケーションに対してライセンスされたアカウントのレポート

サービス プラン識別子のしくみと値の検索方法がわかったので、この知識を使用して、Azure AD ユーザー アカウントを調べ、アプリケーションのライセンス データを検索するスクリプトを作成できます。

誰もが GUID の入力を好むわけではないので、クエリにアプリケーション名を使用できるようにすることで簡単にします。このコードは、サービス プランの識別子と名前のハッシュ テーブルを作成し (必要に応じて追加して自由に)、Azure AD ユーザー アカウントの詳細を取得します。ハッシュ テーブルに対する応答を確認して検証するアプリケーションを入力するようユーザーに依頼します。最後に、一連の Azure AD アカウントをループして、ライセンスが割り当てられたセットに含まれるかどうかを確認し、詳細を報告します。コードは次のとおりです(以下のコード GitHub からダウンロードする):

$Plans = @{}
$Plans.Add(“199a5c09-e0ca-4e37-8f7c-b05d533e1ea2”, “Bookings”)
$Plans.Add(“efb87545-963c-4e0d-99df-69c6916d9eb0”, “Exchange Online”)
$Plans.Add(“5dbe027f-2339-4123-9542-606e4d348a72”, “SharePoint Online”)
$Plans.Add(“7547a3fe-08ee-4ccb-b430-5077c5041653”, “Yammer”)
$Plans.Add(“882e1d05-acd1-4ccb-8708-6ee03664b117”, “Intune”)
$Plans.Add(“57ff2da0-773e-42df-b2af-ffb7a2317929”, “Teams”)
$Plans.Add(“2789c901-c14e-48ab-a76a-be334d9d793a”, “Forms”)
$Plans.Add(“9e700747-8b1d-45e5-ab8d-ef187ceec156”, “Stream”)
$Plans.Add(“b737dad2-2f6c-4c65-90e3-ca563267e8b9”, “Planner”)
Write-Host “Finding Azure AD Account Information”
$Users = Get-AzureADUser -All $True -Filter "Usertype eq 'Member'"
CLS
$Product = Read-Host "Enter the Office 365 application for a license check"
if (!($Plans.ContainsValue($Product))) { # Not found
   Write-Host “Can’t find” $Product “in our set of application SKUs”; break }
Foreach ($Key in $Plans.Keys) { # Lookup hash table to find product SKU
   If ($Plans[$Key] -eq $Product) { $PlanId = $Key }
}
$PlanUsers = [System.Collections.Generic.List[Object]]::new() 
ForEach ($User in $Users) {
  If ($PlanId -in $User.AssignedPlans.ServicePlanId) {
    $Status = ($User.AssignedPlans | ? {$_.ServicePlanId -eq $PlanId} | Select -ExpandProperty CapabilityStatus )
    $ReportLine  = [PSCustomObject] @{
          User       = $User.DisplayName 
          UPN        = $User.UserPrincipalName
          Department = $User.Department
          Country    = $User.Country
          SKU        = $PlanId
          Product    = $Product
          Status    = $Status } 
    $PlanUsers.Add($ReportLine) }
}
Write-Host "Total Accounts scanned:" $PlanUsers.Count
$DisabledCount = $PlanUsers | ?{$_.Status -eq "Deleted"}
$EnabledCount = $PlanUsers | ? {$_.Status -eq "Enabled"}
Write-Host (“{0} is enabled for {1} accounts and disabled for {2} accounts” -f $Product, $EnabledCount.Count, $DisabledCount.Count)
$PlanUsers | Sort User | Out-GridView

グラフの変更ネイティブ

また、 ユーザーグラフ API 次のような呼び出しを実行して、Azure AD アカウントのライセンス情報を取得します。

https://graph.microsoft.com/v1.0/users?$filter=userType eq 'Member'&$select=id, displayName, licenseassignmentstates, assignedplans

チェックするコード 割り当てられたプラン 製品識別子のデータは同じです。グラフは通常 PowerShell コマンドレットよりも高速ですが、この場合は 1 回の呼び出しのみが必要であり、速度の差はごくわずかです。

これまでと同様に、グラフを使用してデータをフェッチする場合は、呼び出しの構文をテストし、 グラフエクスプローラ ツールは良いことです。図 3 は、Graph に対してクエリを実行してユーザー ライセンス データを返した結果を示しています。

グラフ エクスプローラは、ユーザー アカウントのライセンス情報を取得するクエリを実行します。
図 3: グラフ エクスプローラは、ユーザー アカウントのライセンス情報を取得するクエリを実行します。

異なるプランでのライセンスの処理

スクリプトは特定のサービス プラン識別子を検索するため、ライセンスを受けたアプリケーションのすべてのインスタンスを検索します。言い換えれば、Office 365 E3 と E5 の両方で、EXCHANGE_S_ENTERPRISE (efb87545-963c-4e0d-99df-69c6916d9eb0) として含まれる Exchange Online などのアプリケーションを検索すると、レポートには両方のプランで Exchange で有効になっているアカウントが一覧表示されます。2 つのプランを区別する場合は、 割り当てられたライセンス プランの識別子の各アカウントのプロパティ。たとえば、見て マイクロソフトのリファレンスリストを見つける:

  • 6fd2c87f-b296-42f0-b197-1e91e994b900 は Office 365 E3 の識別子です。
  • c7df2760-2c81-4ef7-b578-5b5392b571df は Office 365 E5 用です。
  • 26d45bd9-adf1-46cd-a9e1-51e9a5524128 は、オーディオ会議なしの Office 365 E5 用です。

GitHub から利用できるスクリプトには、ライセンス SKU の名前を出力するコードが含まれています。

ライセンスデータの出力

レポートの情報は、CSV ファイルに保存するか、オンラインで表示できます。図 4 は、スクリプトの結果を通して表示した結果を示しています。 アウトグリッドビュー コマンドレット。図 1 の Forms ライセンスを削除したユーザーが正確に報告されていることがわかります。

ライセンス データのレポート
図 3: ライセンス データのレポート

個々のライセンスの詳細について Azure AD に問い合わす必要はあまりないかもしれませんが、(多数のユーザーに対してアプリケーションを有効にする準備をしている場合)、管理センターの GUI を使用するよりも PowerShell で情報を取得する方がはるかに高速です。


ライセンスのしくみに関する詳細については、 IT 担当者向け Office 365 電子書籍。

[ad_2]

未分類

Posted by admin