前回の記事では、テナントに割当てられている、ライセンス一覧を取得してみたが、今回は個人に割当てられている、ライセンスを取得してみる。
取得するには、アプリケーションに下記の権限が必要。
- User.Read
- User.Read.All
- User.ReadWrite.All
- Directory.Read.All
- Directory.ReadWrite.All
※これも何故Writeが必要なのだろう??
個人に割当てられているライセンスを取得するには、下記のようなコードを書けばよい。
// Graph Client
var cli = new GraphServiceClient(cred);
// サインインしているユーザーのライセンス取得
var lic = await cli.Me.LicenseDetails.GetAsync();
// 指定ユーザーのライセンス取得(権限が必要)
var lic = await cli.Users[UserPrincipalName].LicenseDetails.GetAsync();List<LicenseDetails?>がlic.Valueに返される。LicenseDetailsの内容だが、必要なのはSkuPartNumberだろう。これは、前回の記事と同様の文字列である。
以下実行例
// Graph Client
var cli = new GraphServiceClient(cred);
// 指定ユーザーのライセンス取得(権限が必要)
var lic = await cli.Users[UserPrincipalName].LicenseDetails.GetAsync();
if (lic?.Value == null) {
Console.WriteLine("取得失敗");
return;
}
Console.WriteLine($"{UserPrincipalName}には以下のライセンスがアサインされている");
foreach(var v in lic!.Value!) {
Console.Write($"{v.SkuPartNumber},");
}
Console.WriteLine();
/* 実行例
boo@foo.comには以下のライセンスがアサインされている
OFFICESUBSCRIPTION,EXCHANGESTANDARD,
*/






Users Today : 18
Users Yesterday : 34
Users Last 7 days : 185
Users Last 30 days : 817
Users This Month : 364
Users This Year : 2826
Total Users : 97341
Views Today : 26
Views Yesterday : 40
Views Last 7 days : 252
Views Last 30 days : 1048
Views This Month : 487
Views This Year : 3409
Total views : 135855
Who's Online : 0