# ライセンス割り当てレポートをスケジュール

### 説明

このランブックは、送信された SKU に基づいてライセンスの利用可能数を確認し、しきい値に達した場合はメールレポートを送信します。2 種類のしきい値を設定できます。1 つ目は最小しきい値で、利用可能なライセンス数が指定数を下回るとアラートを発します。2 つ目は最大しきい値で、利用可能なライセンス数が指定数を超えるとアラートを発します。レポートには、設定されたしきい値の範囲外にあるライセンスの詳細情報が含まれ、それらを CSV ファイルにエクスポートし、メールで送信します。

### ランブックのカスタマイズ

#### メール送信に関するセットアップ

この runbook は Microsoft Graph API を使用してメールを送信します。Graph API 経由でメールを送信するには、runbook のカスタマイズで既存のメールアドレスを構成する必要があります。

この手順については、 [メールレポートのセットアップ](https://github.com/realmjoin/realmjoin-runbooks/tree/master/docs/general/setup-email-reporting.md) ドキュメントに詳しく記載されています。

#### InputJson の構成

各ライセンス設定には以下が必要です:

* **SKUPartNumber** (必須): Microsoft SKU 識別子
* **FriendlyName** (必須): 表示名
* **MinThreshold** (任意): 利用可能なライセンス数がしきい値未満になったらアラート
* **MaxThreshold** (任意): 利用可能なライセンス数がしきい値を超えたらアラート

各ライセンスには少なくとも 1 つのしきい値を設定する必要があります。

#### 構成例

**最小しきい値のみ** (不足を防ぐ):

```json
[
    {
        "SKUPartNumber": "ENTERPRISEPACK",
        "FriendlyName": "Microsoft 365 E3",
        "MinThreshold": 50
    }
]
```

**最大しきい値のみ** (過剰割り当てを防ぐ):

```json
[
    {
        "SKUPartNumber": "POWER_BI_PRO",
        "FriendlyName": "Power BI Pro",
        "MaxThreshold": 500
    }
]
```

**両方のしきい値** (範囲を維持):

```json
[
    {
        "SKUPartNumber": "ENTERPRISEPREMIUM",
        "FriendlyName": "Microsoft 365 E5",
        "MinThreshold": 50,
        "MaxThreshold": 150
    }
]
```

#### 完全なランブックのカスタマイズ

```json
{
    "Settings": {
        "RJReport": {
            "EmailSender": "sender@contoso.com"
        }
    },
    "Runbooks": {
        "rjgit-org_general_report-license-assignment_scheduled": {
            "Parameters": {
                "EmailTo": {
                    "DisplayName": "受信者のメールアドレス"
                },
                "InputJson": {
                    "Hide": true,
                    "DefaultValue": [
                        {
                            "SKUPartNumber": "SPE_E5",
                            "FriendlyName": "Microsoft 365 E5",
                            "MinThreshold": 20,
                            "MaxThreshold": 30
                        },
                        {
                            "SKUPartNumber": "FLOW_FREE",
                            "FriendlyName": "Microsoft Power Automate Free",
                            "MinThreshold": 10
                        }
                    ]
                },
                "EmailFrom": {
                    "Hide": true
                },
                "CallerName": {
                    "Hide": true
                }
            }
        }
    }
}
```

### SKU パート番号の検索

```powershell
Connect-MgGraph -Scopes "Organization.Read.All"
Get-MgSubscribedSku | Select-Object SkuPartNumber, SkuId | Sort-Object SkuPartNumber
```

一般的な SKU:

* `ENTERPRISEPACK` - Microsoft 365 E3
* `ENTERPRISEPREMIUM` - Microsoft 365 E5
* `EMS` - Enterprise Mobility + Security E3

### 出力

**違反が検出された場合:**

* ジョブログのコンソール出力
* CSV エクスポート (`License_Threshold_Violations.csv`)
* 要約、違反、推奨事項、および CSV 添付ファイルを含むメールレポート

**すべてがしきい値内の場合:**

* メールは送信されません
* ジョブは正常に完了します

### トラブルシューティング

**SKU が見つかりません**: 次を使用して SKU の存在を確認してください `Get-MgSubscribedSku`

**メールが送信されません**: EmailFrom の構成と Mail.Send 権限を確認してください

**無効な JSON**: 構成前に JSON 形式を検証してください

### 移行メモ

レガシー `WarningThreshold` は自動的に `MinThreshold` にマップされます - 旧構成は引き続き動作します。

### 場所

Organization → General → Report License Assignment (Scheduled)

**フル Runbook 名**

rjgit-org\_general\_report-license-assignment\_scheduled

### 権限

#### アプリケーションの権限

* **種類**: Microsoft Graph
  * Organization.Read.All
  * User.Read.All
  * Mail.Send

### パラメーター

#### InputJson

しきい値を含む SKU 構成を格納した JSON 配列。各エントリには、Microsoft SKU 識別子としての SKUPartNumber、ライセンスの表示名としての FriendlyName、利用可能にしておく必要があるライセンスの最小数を指定する任意の MinThreshold、利用可能にしておく必要があるライセンスの最大数を指定する任意の MaxThreshold を含める必要があります。

これはランブックのカスタマイズで構成する必要があります

| プロパティ | 値      |
| ----- | ------ |
| 必須    | true   |
| 既定値   |        |
| 種類    | オブジェクト |

#### EmailTo

受信者のメールアドレス、またはカンマ区切りの受信者リスト。

| プロパティ | 値    |
| ----- | ---- |
| 必須    | true |
| 既定値   |      |
| 種類    | 文字列  |

#### EmailFrom

設定から解決される送信者のメールアドレス。

| プロパティ | 値     |
| ----- | ----- |
| 必須    | false |
| 既定値   |       |
| 種類    | 文字列   |

[Runbook Reference の概要に戻る](https://docs.realmjoin.com/ja/zi-dong-hua/runbooks/runbook-references)
