> 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

Einen Bericht über die Lizenzverfügbarkeit basierend auf Schwellenwerten erstellen und per E-Mail senden

{% hint style="info" %}
Dies ist ein geplantes Runbook. Es ist so konzipiert, dass es nach einem wiederkehrenden Zeitplan ausgeführt wird, statt für ein einzelnes Objekt ausgelöst zu werden. Siehe [Zeitplanung](/de/automatisierung/runbooks/scheduling.md) für Details zur Konfiguration von Runbook-Zeitplänen.
{% endhint %}

### Beschreibung

Dieses Runbook überprüft die Lizenzverfügbarkeit anhand der übermittelten 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 einen Alarm auslöst, wenn die Anzahl verfügbarer Lizenzen unter eine festgelegte Zahl fällt. Der zweite Typ ist ein Höchstschwellenwert, der einen Alarm auslöst, wenn die Anzahl verfügbarer Lizenzen eine festgelegte Zahl überschreitet. Der Bericht enthält detaillierte Informationen zu Lizenzen, die außerhalb der konfigurierten Schwellenwerte 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 Größenlimit der E-Mail überschreitet und "CSV & XLSX" ausgewählt ist, wird die E-Mail stattdessen nur auf die Excel-Arbeitsmappe zurückgreifen.

### Runbook-Anpassung

#### Einstellungen 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` Mandanteneinstellung übernommen.

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

Siehe die [RealmJoin Report Settings-Dokumentation](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings) für Details zu allen verfügbaren Einstellungen.

#### E-Mail-Branding

Die Bericht-E-Mail berücksichtigt optional die `RJReport.Branding.*` Mandanteneinstellungen:

* **Kopf- und Fußzeilenbild** – öffentliche HTTPS-URLs, PNG/JPEG/GIF, max. 200 KB jeweils
* **Fußzeilenlink** – Ziel des Fußzeilenbilds
* **Akzent- und Textfarbe** – 6-stellige Hex-Werte, z. B. `#0052cc`

Wenn diese Einstellungen nicht konfiguriert sind, werden die standardmäßigen RealmJoin-Grafiken und -Farben verwendet. Ein Bild, das nicht heruntergeladen oder validiert werden kann, oder ein ungültiger Farbwert verhindert niemals die Bericht-E-Mail – stattdessen wird der entsprechende Standardwert verwendet.

Einrichtungsanweisungen und Bildanforderungen: [E-Mail-Branding](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings#email-branding-optional).

#### Eingabe-JSON-Konfiguration

Jede Lizenzkonfiguration erfordert:

* **SKUPartNumber** (erforderlich): Microsoft-SKU-Kennung
* **FriendlyName** (erforderlich): Anzeigename
* **MinThreshold** (optional): Alarm auslösen, wenn verfügbare Lizenzen < Schwellenwert
* **MaxThreshold** (optional): Alarm auslösen, 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** (Überversorgung 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 ermitteln

```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-Anhang

**Wenn alles innerhalb der Schwellenwerte liegt:**

* Keine E-Mail gesendet
* Der Auftrag wird erfolgreich abgeschlossen

### Problembehandlung

**SKU nicht gefunden**: Prüfen Sie die SKU-Existenz mit `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

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

### Speicherort

Organisation → Allgemein → Bericht zur Lizenzzuweisung (geplant)

**Vollständiger Runbook-Name**

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

### Details

| Eigenschaft          | Wert                                                                                                              |
| -------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Version              | 1.3.0                                                                                                             |
| Erforderliche Module | <p>RealmJoin.RunbookHelper (>= 0.8.9)<br>Microsoft.Graph.Authentication (>= 2.39.0)<br>Az.Accounts (>= 5.5.2)</p> |
| Planbar              | ja                                                                                                                |

### Berechtigungen

#### Anwendungsberechtigungen

* **Typ**: Microsoft Graph
  * Organization.Read.All
    * *Liest /organization und /subscribedSkus, um die Lizenzanzahlen mit den Schwellenwerten abzugleichen*
  * Mail.Send *(optional — Funktion: E-Mail-Bericht)*
    * *Sendet die Schwellenwert-Bericht-E-Mail über Send-RjReportEmail, wenn EmailTo konfiguriert ist*

### Parameter

#### Eingabe-JSON

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

Dies muss in der Runbook-Anpassung konfiguriert werden

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | wahr                                                    |
| Standardwert           |                                                         |
| Typ                    | Objekt                                                  |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### ReportFileFormat

Steuert, welche Berichtdateiformate erzeugt und bereitgestellt werden: "nur CSV", "CSV & XLSX" (Standard) oder "nur XLSX".

| Eigenschaft           | Wert               |
| --------------------- | ------------------ |
| Erforderlich          | falsch             |
| Standardwert          | CSV & XLSX         |
| Typ                   | Zeichenfolge       |
| Anzeigename im Portal | Berichtdateiformat |

**Portal-Optionen**

| Portal-Option | Wert |
| ------------- | ---- |
| CSV & XLSX    |      |
| nur CSV       |      |
| nur XLSX      |      |

#### CreateDownloadLink

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

| Eigenschaft           | Wert                                                                     |
| --------------------- | ------------------------------------------------------------------------ |
| Erforderlich          | falsch                                                                   |
| Standardwert          | Falsch                                                                   |
| Typ                   | Boolesch                                                                 |
| Anzeigename im Portal | Einen Datei-Download-Link erstellen (Bericht in den Speicher hochladen)? |

**Portal-Optionen**

| Portal-Option                                              | Wert   |
| ---------------------------------------------------------- | ------ |
| Ja - Bericht hochladen und einen Download-Link zurückgeben | wahr   |
| Nein - keinen Download-Link erstellen                      | falsch |

#### ContainerName

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

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           | report-license-assignment                               |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### ResourceGroupName

Ressourcengruppe, die das Speicherkonto enthält. Stammt aus den Mandanten-Einstellungen von RJReport.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### StorageAccountName

Name des Speicherkontos, das für den Upload verwendet wird. Stammt aus den Mandanten-Einstellungen von RJReport.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### LinkExpiryDays

Anzahl der Tage, bis der generierte Download-Link abläuft. Stammt aus den Mandanten-Einstellungen von RJReport.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           | 6                                                       |
| Typ                    | Int32                                                   |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### EmailTo

Wenn 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 (String) sein.

| Eigenschaft           | Wert                             |
| --------------------- | -------------------------------- |
| Erforderlich          | falsch                           |
| Standardwert          |                                  |
| Typ                   | Zeichenfolge                     |
| Anzeigename im Portal | E-Mail-Adresse(n) des Empfängers |

#### EmailFrom

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

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### BrandingHeaderImageUrl

Optionale öffentliche HTTPS-URL eines benutzerdefinierten Kopfzeilenbilds (PNG/JPEG/GIF, max. 200 KB) für die Bericht-E-Mail. Stammt aus der Mandanteneinstellung RJReport.Branding.HeaderImageUrl. Wenn leer, wird die standardmäßige RealmJoin-Kopfzeilengrafik verwendet.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### BrandingFooterImageUrl

Optionale öffentliche HTTPS-URL eines benutzerdefinierten Fußzeilenbilds (PNG/JPEG/GIF, max. 200 KB) für die Bericht-E-Mail. Stammt aus der Mandanteneinstellung RJReport.Branding.FooterImageUrl. Wenn leer, wird die standardmäßige RealmJoin-Fußzeilengrafik verwendet.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### BrandingFooterLink

Optionale URL, auf die das Fußzeilenbild verweist. Stammt aus der Mandanteneinstellung RJReport.Branding.FooterLink. Wenn leer, wird der Standardlink (<https://www.realmjoin.com>) verwendet.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### BrandingAccentColor

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### BrandingTextColor

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

[Zurück zur Übersicht der Runbook-Referenz](/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.
