前回の記事では、テナントに割当てられている、ライセンス一覧を取得してみたが、今回は個人に割当てられている、ライセンスを取得してみる。
取得するには、アプリケーションに下記の権限が必要。
- 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 : 39
Users Yesterday : 44
Users Last 7 days : 233
Users Last 30 days : 1002
Users This Month : 842
Users This Year : 15668
Total Users : 93472
Views Today : 50
Views Yesterday : 53
Views Last 7 days : 288
Views Last 30 days : 1274
Views This Month : 1050
Views This Year : 21255
Total views : 131190
Who's Online : 0