> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/de/automatisierung/runbooks/runbook-references/org/general/report-license-assignment_scheduled.md).

# Geplanter Bericht über Lizenzzuweisungen

### Beschreibung

Dieses Runbook prüft die Lizenzverfügbarkeit anhand der übertragenen SKUs und sendet einen E-Mail-Bericht, wenn eine der Schwellen erreicht wird. Es können zwei Arten von Schwellen konfiguriert werden. Der erste Typ ist eine Mindestschwelle, die einen Alarm auslöst, wenn die Anzahl der verfügbaren Lizenzen unter eine angegebene Zahl fällt. Der zweite Typ ist eine Maximalschwelle, die einen Alarm auslöst, wenn die Anzahl der verfügbaren Lizenzen eine angegebene Zahl überschreitet. Der Bericht enthält detaillierte Informationen zu Lizenzen, die außerhalb der konfigurierten Schwellen liegen, exportiert sie in CSV- und/oder Excel-(xlsx)-Dateien und sendet sie per E-Mail. Die Berichtsdateien können auch in einen Azure Storage Account hochgeladen werden, wobei zeitlich begrenzte Download-Links zurückgegeben werden. Der Parameter ReportFileFormat steuert, welche Dateiformate generiert und bereitgestellt werden (nur CSV, CSV & XLSX oder nur XLSX). Wenn der CSV-Anhang das E-Mail-Größenlimit überschreitet und "CSV & XLSX" ausgewählt ist, greift die E-Mail stattdessen nur auf die Excel-Arbeitsmappe zurück.

### Runbook-Anpassung

#### Einrichtung zum E-Mail-Versand

Das Senden eines E-Mail-Berichts ist optional und erfolgt nur, wenn ein Empfänger (`EmailTo`) angegeben ist. Die Absenderadresse wird aus der `RJReport.EmailSender` Tenant-Einstellung übernommen.

Dieses Runbook sendet E-Mails über die 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.

Siehe die [RealmJoin-Dokumentation zu den Berichtseinstellungen](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings) für Details.

#### InputJson-Konfiguration

Jede Lizenzkonfiguration erfordert:

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

Pro Lizenz muss mindestens eine Schwelle festgelegt werden.

#### Konfigurationsbeispiele

**Nur Mindestschwelle** (Engpässe vermeiden):

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

**Nur Maximalschwelle** (Überbereitstellung vermeiden):

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

**Beide Schwellen** (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 Jobprotokoll
* CSV-Export (`License_Threshold_Violations.csv`)
* E-Mail-Bericht mit Zusammenfassung, Verstößen, Empfehlungen und CSV-Anhang

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

* Keine E-Mail gesendet
* Job wird erfolgreich abgeschlossen

### Fehlerbehebung

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

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

**Ungültiges JSON**: Überprüfen Sie das JSON-Format vor der Konfiguration

### Hinweis zur Migration

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

### Ort

Organisation → Allgemein → Bericht zur Lizenzzuweisung (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, einen FriendlyName als Anzeigename für die Lizenz, ein optionales MinThreshold mit der minimalen Anzahl verfügbarer Lizenzen sowie ein optionales MaxThreshold mit der maximalen Anzahl verfügbarer Lizenzen enthalten.

Dies muss in der Runbook-Anpassung konfiguriert werden

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

#### ReportFileFormat

Steuert, welche Berichtsdateiformate generiert und bereitgestellt werden: "Nur CSV", "CSV & XLSX" (Standard) oder "Nur XLSX".

| Eigenschaft  | Wert         |
| ------------ | ------------ |
| Erforderlich | false        |
| Standardwert | CSV & XLSX   |
| Typ          | Zeichenfolge |

#### CreateDownloadLink

Wenn aktiviert, werden die Berichtsdateien in ein Azure Storage Account hochgeladen und zeitlich begrenzte Download-Links zurückgegeben. Standardmäßig deaktiviert.

| Eigenschaft  | Wert     |
| ------------ | -------- |
| Erforderlich | false    |
| Standardwert | Falsch   |
| Typ          | Boolesch |

#### ContainerName

Name des Speichercontainers, der für den Upload verwendet wird. Pro Runbook konfiguriert (keine globale RJReport-Einstellung).

| Eigenschaft  | Wert                      |
| ------------ | ------------------------- |
| Erforderlich | false                     |
| Standardwert | report-license-assignment |
| Typ          | Zeichenfolge              |

#### ResourceGroupName

Ressourcengruppe, die das Storage Account enthält. Wird aus den Tenant-Einstellungen von RJReport bezogen.

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

#### StorageAccountName

Name des Storage Account, der für den Upload verwendet wird. Wird aus den Tenant-Einstellungen von RJReport bezogen.

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

#### LinkExpiryDays

Anzahl der Tage, bis der generierte Download-Link abläuft. Wird aus den Tenant-Einstellungen von RJReport bezogen.

| Eigenschaft  | Wert  |
| ------------ | ----- |
| Erforderlich | false |
| Standardwert | 6     |
| Typ          | Int32 |

#### EmailTo

Falls angegeben, wird eine E-Mail mit dem Bericht an die angegebene(n) Adresse(n) gesendet. Kann eine einzelne Adresse oder mehrere durch Kommas getrennte Adressen sein (String).

| Eigenschaft  | Wert         |
| ------------ | ------------ |
| Erforderlich | false        |
| 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-Referenzen](/de/automatisierung/runbooks/runbook-references.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
