# Lizenzzuweisung berichten geplant

### Beschreibung

Dieses Runbook prüft die Lizenzverfügbarkeit anhand der übertragenen SKUs und sendet einen E-Mail-Bericht, wenn Schwellenwerte erreicht werden. Es können zwei Arten von Schwellenwerten konfiguriert werden. Der erste Typ ist ein Mindestschwellenwert, der eine Warnung auslöst, wenn die Anzahl verfügbarer Lizenzen unter eine angegebene Zahl fällt. Der zweite Typ ist ein Höchstschwellenwert, der eine Warnung auslöst, wenn die Anzahl verfügbarer Lizenzen eine angegebene Zahl überschreitet. Der Bericht enthält detaillierte Informationen zu Lizenzen, die außerhalb der konfigurierten Schwellenwerte liegen, exportiert sie in CSV-Dateien und sendet sie per E-Mail.

### Runbook-Anpassung

#### Einrichtung bezüglich des E-Mail-Versands

Dieses Runbook sendet E-Mails mithilfe der Microsoft Graph API. Um E-Mails über die Graph API zu senden, müssen Sie eine vorhandene E-Mail-Adresse in der Runbook-Anpassung konfigurieren.

Dieser Vorgang wird ausführlich beschrieben in der [Einrichtung der E-Mail-Berichterstattung](https://github.com/realmjoin/realmjoin-runbooks/tree/master/docs/general/setup-email-reporting.md) Dokumentation.

#### InputJson-Konfiguration

Für jede Lizenzkonfiguration erforderlich:

* **SKUPartNumber** (erforderlich): Microsoft SKU-Kennung
* **FriendlyName** (erforderlich): Anzeigename
* **MinThreshold** (optional): Warnung, wenn verfügbare Lizenzen < Schwellenwert
* **MaxThreshold** (optional): Warnung, wenn verfügbare Lizenzen > Schwellenwert

Pro Lizenz muss mindestens ein Schwellenwert festgelegt werden.

#### Konfigurationsbeispiele

**Nur Mindestschwellenwert** (Engpässe verhindern):

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

**Nur Höchstschwellenwert** (Überbereitstellung verhindern):

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

**Beide Schwellenwerte** (Bereich einhalten):

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

#### Vollständige Runbook-Anpassung

```json
{
    "Settings": {
        "RJReport": {
            "EmailSender": "sender@contoso.com"
        }
    },
    "Runbooks": {
        "rjgit-org_general_report-license-assignment_scheduled": {
            "Parameters": {
                "EmailTo": {
                    "DisplayName": "E-Mail-Adresse(n) des Empfängers"
                },
                "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-Teilenummern finden

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

Häufige SKUs:

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

### Ausgabe

**Wenn Verstöße erkannt werden:**

* Konsolenausgabe im Auftragsprotokoll
* CSV-Export (`License_Threshold_Violations.csv`)
* E-Mail-Bericht mit Zusammenfassung, Verstößen, Empfehlungen und CSV-Anlage

**Wenn alle Werte innerhalb der Schwellenwerte liegen:**

* Keine E-Mail gesendet
* Auftrag wird erfolgreich abgeschlossen

### Problembehandlung

**SKU nicht gefunden**: Prüfen Sie mithilfe von `Get-MgSubscribedSku`

**E-Mail nicht gesendet**: Überprüfen Sie die EmailFrom-Konfiguration und die Mail.Send-Berechtigung

**Ungültiges JSON**: Validieren Sie das JSON-Format vor der Konfiguration

### Hinweis zur Migration

Legacy `WarningThreshold` wird automatisch zugeordnet zu `MinThreshold` - alte Konfigurationen funktionieren weiterhin.

### Speicherort

Organisation → Allgemein → Lizenzzuweisung berichten (Geplant)

**Vollständiger Runbook-Name**

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

### Berechtigungen

#### Anwendungsberechtigungen

* **Typ**: Microsoft Graph
  * Organization.Read.All
  * User.Read.All
  * Mail.Send

### Parameter

#### InputJson

JSON-Array mit SKU-Konfigurationen und Schwellenwerten. Jeder Eintrag sollte eine SKUPartNumber für die Microsoft SKU-Kennung, eine FriendlyName als Anzeigename für die Lizenz, einen optionalen MinThreshold, der die Mindestanzahl verfügbarer Lizenzen angibt, und einen optionalen MaxThreshold, der die Höchstanzahl verfügbarer Lizenzen angibt, enthalten.

Dies muss in der Runbook-Anpassung konfiguriert werden

| Eigenschaft  | Wert   |
| ------------ | ------ |
| Erforderlich | wahr   |
| Standardwert |        |
| Typ          | Objekt |

#### EmailTo

E-Mail-Adresse des Empfängers oder durch Kommas getrennte Empfängerliste.

| Eigenschaft  | Wert         |
| ------------ | ------------ |
| Erforderlich | wahr         |
| Standardwert |              |
| Typ          | Zeichenfolge |

#### EmailFrom

Absender-E-Mail-Adresse, aus den Einstellungen aufgelöst.

| Eigenschaft  | Wert         |
| ------------ | ------------ |
| Erforderlich | false        |
| Standardwert |              |
| Typ          | Zeichenfolge |

[Zurück zur Übersicht der Runbook-Referenz](/de/automatisierung/runbooks/runbook-references.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.realmjoin.com/de/automatisierung/runbooks/runbook-references/org/general/report-license-assignment_scheduled.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
