> 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/fr/automatisation/runbooks/runbook-references/org/general/report-license-assignment_scheduled.md).

# Rapport planifié d'attribution de licences

{% hint style="info" %}
Il s'agit d'un runbook planifié. Il est conçu pour s'exécuter selon une planification récurrente plutôt que d'être déclenché pour un seul objet. Voir [Planification](/fr/automatisation/runbooks/scheduling.md) pour plus de détails sur la façon de configurer les planifications du runbook.
{% endhint %}

### Description

Ce runbook vérifie la disponibilité des licences en fonction des SKU transmis et envoie un rapport par e-mail si des seuils sont atteints. Deux types de seuils peuvent être configurés. Le premier type est un seuil minimum, qui déclenche une alerte lorsque le nombre de licences disponibles passe sous un nombre spécifié. Le second type est un seuil maximum, qui déclenche une alerte lorsque le nombre de licences disponibles dépasse un nombre spécifié. Le rapport inclut des informations détaillées sur les licences qui sont en dehors des seuils configurés, les exporte dans des fichiers CSV et/ou Excel (xlsx), et les envoie par e-mail. Les fichiers du rapport peuvent également être téléversés dans un Azure Storage Account, renvoyant des liens de téléchargement à durée limitée. Le paramètre ReportFileFormat contrôle les formats de fichier générés et remis (CSV uniquement, CSV et XLSX, ou XLSX uniquement). Lorsque la pièce jointe CSV dépasse la limite de taille de l'e-mail et que « CSV et XLSX » est sélectionné, l'e-mail se rabat sur le seul classeur Excel.

### Personnalisation du runbook

#### Configuration relative à l’envoi d’e-mails

L’envoi d’un rapport par e-mail est facultatif et ne se produit que lorsqu’un destinataire (`EmailTo`) est fourni. L’adresse de l’expéditeur est reprise du `RJReport.EmailSender` paramètre Tenant.

Ce runbook envoie des e-mails à l’aide de l’API Microsoft Graph. Pour envoyer des e-mails via l’API Graph, vous devez configurer une adresse e-mail existante dans la personnalisation du runbook.

Voir la [documentation RealmJoin Report Settings](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings) pour plus de détails.

#### Branding de l’e-mail

L’e-mail du rapport respecte les `RJReport.Branding.*` paramètres Tenant facultatifs : une image d’en-tête personnalisée, une image de pied de page personnalisée (URL HTTPS publiques, PNG/JPEG/GIF, 200 KB max. chacune), un lien de pied de page personnalisé, ainsi que des couleurs d’accent et de texte personnalisées (valeurs hexadécimales à 6 chiffres, par ex. `#0052cc`). Lorsque ces paramètres ne sont pas configurés, les graphiques et couleurs par défaut de RealmJoin sont utilisés. Une image de branding qui ne peut pas être téléchargée ou validée, ou une valeur de couleur qui n’est pas une couleur hexadécimale valide, n’empêche jamais l’envoi de l’e-mail du rapport - la valeur par défaut correspondante est utilisée à la place.

Voir la [documentation RealmJoin Report Settings](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings) pour les détails de configuration.

#### Configuration du JSON d'entrée

Chaque configuration de licence nécessite :

* **SKUPartNumber** (obligatoire) : identifiant SKU Microsoft
* **FriendlyName** (obligatoire) : nom d'affichage
* **MinThreshold** (facultatif) : alerte lorsque les licences disponibles < seuil
* **MaxThreshold** (facultatif) : alerte lorsque les licences disponibles > seuil

Au moins un seuil doit être défini par licence.

#### Exemples de configuration

**Seuil minimum uniquement** (éviter les pénuries) :

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

**Seuil maximum uniquement** (éviter le surdimensionnement) :

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

**Les deux seuils** (maintenir la plage) :

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

#### Personnalisation complète du runbook

```json
{
    "Settings": {
        "RJReport": {
            "EmailSender": "sender@contoso.com"
        }
    },
    "Runbooks": {
        "rjgit-org_general_report-license-assignment_scheduled": {
            "Parameters": {
                "EmailTo": {
                    "DisplayName": "Adresse e-mail du ou des destinataires"
                },
                "InputJson": {
                    "Hide": true,
                    "DefaultValue": [
                        {
                            "SKUPartNumber": "SPE_E5",
                            "FriendlyName": "Microsoft 365 E5",
                            "MinThreshold": 20,
                            "MaxThreshold": 30
                        },
                        {
                            "SKUPartNumber": "FLOW_FREE",
                            "FriendlyName": "Microsoft Power Automate Gratuit",
                            "MinThreshold": 10
                        }
                    ]
                },
                "EmailFrom": {
                    "Hide": true
                },
                "CallerName": {
                    "Hide": true
                }
            }
        }
    }
}
```

### Recherche des numéros de pièce SKU

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

SKU courants :

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

### Sortie

**Lorsque des violations sont détectées :**

* Sortie console dans le journal du job
* Export CSV (`License_Threshold_Violations.csv`)
* Rapport par e-mail avec résumé, violations, recommandations et pièce jointe CSV

**Lorsque tout est dans les seuils :**

* Aucun e-mail envoyé
* Le job se termine avec succès

### Dépannage

**SKU introuvable**: Vérifiez que le SKU existe à l'aide de `Get-MgSubscribedSku`

**E-mail non envoyé**: Vérifiez la configuration EmailFrom et l'autorisation Mail.Send

**JSON invalide**: Validez le format JSON avant la configuration

### Note de migration

Hérité `WarningThreshold` se mappe automatiquement à `MinThreshold` - les anciennes configurations continuent de fonctionner.

### Emplacement

Organisation → Général → Rapport d'attribution des licences (planifié)

**Nom complet du runbook**

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

### Détails

| Propriété      | Valeur                                                                                                            |
| -------------- | ----------------------------------------------------------------------------------------------------------------- |
| Version        | 1.3.0                                                                                                             |
| Modules requis | <p>RealmJoin.RunbookHelper (>= 0.8.9)<br>Microsoft.Graph.Authentication (>= 2.39.0)<br>Az.Accounts (>= 5.5.2)</p> |
| Planifiable    | oui                                                                                                               |

### Autorisations

#### Autorisations d’application

* **Type**: Microsoft Graph
  * Organization.Read.All
    * *Lit /organization et /subscribedSkus pour évaluer le nombre de licences par rapport aux seuils*
  * Mail.Send *(facultatif — fonctionnalité : rapport par e-mail)*
    * *Envoie l'e-mail du rapport de seuil via Send-RjReportEmail lorsque EmailTo est configuré*

### Paramètres

#### InputJson

Tableau JSON contenant les configurations de SKU avec des seuils. Chaque entrée doit inclure un SKUPartNumber pour l'identifiant du SKU Microsoft, un FriendlyName comme nom d'affichage de la licence, un MinThreshold facultatif précisant le nombre minimal de licences devant être disponibles, et un MaxThreshold facultatif précisant le nombre maximal de licences devant être disponibles.

Cela doit être configuré dans la personnalisation du runbook

| Propriété              | Valeur                                             |
| ---------------------- | -------------------------------------------------- |
| Obligatoire            | vrai                                               |
| Valeur par défaut      |                                                    |
| Type                   | Objet                                              |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### ReportFileFormat

Contrôle quels formats de fichier de rapport sont générés et fournis : « CSV uniquement », « CSV & XLSX » (par défaut) ou « XLSX uniquement ».

| Propriété                  | Valeur                       |
| -------------------------- | ---------------------------- |
| Obligatoire                | faux                         |
| Valeur par défaut          | CSV & XLSX                   |
| Type                       | Chaîne de caractères         |
| Nom d’affichage du portail | Format du fichier de rapport |

**Options du portail**

| Option du portail | Valeur |
| ----------------- | ------ |
| CSV & XLSX        |        |
| CSV uniquement    |        |
| XLSX uniquement   |        |

#### CreateDownloadLink

Si cette option est activée, les fichiers de rapport sont téléversés vers un Azure Storage Account et des liens de téléchargement limités dans le temps sont renvoyés. Désactivé par défaut.

| Propriété                  | Valeur                                                                                |
| -------------------------- | ------------------------------------------------------------------------------------- |
| Obligatoire                | faux                                                                                  |
| Valeur par défaut          | Faux                                                                                  |
| Type                       | Booléen                                                                               |
| Nom d’affichage du portail | Créer un lien de téléchargement de fichier (téléverser le rapport vers le stockage) ? |

**Options du portail**

| Option du portail                                                 | Valeur |
| ----------------------------------------------------------------- | ------ |
| Oui - téléverser le rapport et renvoyer un lien de téléchargement | vrai   |
| Non - ne pas créer de lien de téléchargement                      | faux   |

#### ContainerName

Nom du conteneur de stockage utilisé pour le téléversement. Configuré par runbook (pas un paramètre RJReport global).

| Propriété              | Valeur                                             |
| ---------------------- | -------------------------------------------------- |
| Obligatoire            | faux                                               |
| Valeur par défaut      | report-license-assignment                          |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### ResourceGroupName

Groupe de ressources qui contient le compte de stockage. Provenant des paramètres du Tenant RJReport.

| Propriété              | Valeur                                             |
| ---------------------- | -------------------------------------------------- |
| Obligatoire            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### StorageAccountName

Nom du compte de stockage utilisé pour le téléversement. Provenant des paramètres du Tenant RJReport.

| Propriété              | Valeur                                             |
| ---------------------- | -------------------------------------------------- |
| Obligatoire            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### LinkExpiryDays

Nombre de jours avant l’expiration du lien de téléchargement généré. Provenant des paramètres du Tenant RJReport.

| Propriété              | Valeur                                             |
| ---------------------- | -------------------------------------------------- |
| Obligatoire            | faux                                               |
| Valeur par défaut      | 6                                                  |
| Type                   | Int32                                              |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### EmailTo

Si spécifié, un e-mail avec le rapport sera envoyé à la ou aux adresse(s) fournies. Peut être une seule adresse ou plusieurs adresses séparées par des virgules (chaîne).

| Propriété                  | Valeur                                    |
| -------------------------- | ----------------------------------------- |
| Obligatoire                | faux                                      |
| Valeur par défaut          |                                           |
| Type                       | Chaîne de caractères                      |
| Nom d’affichage du portail | Adresse(s) e-mail du ou des destinataires |

#### EmailFrom

Adresse e-mail de l'expéditeur résolue à partir des paramètres.

| Propriété              | Valeur                                             |
| ---------------------- | -------------------------------------------------- |
| Obligatoire            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### BrandingHeaderImageUrl

URL HTTPS publique facultative d’une image d’en-tête personnalisée (PNG/JPEG/GIF, 200 KB max.) pour l’e-mail du rapport. Provenant du paramètre Tenant RJReport.Branding.HeaderImageUrl. Lorsqu’elle est vide, l’image d’en-tête par défaut de RealmJoin est utilisée.

| Propriété              | Valeur                                             |
| ---------------------- | -------------------------------------------------- |
| Obligatoire            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### BrandingFooterImageUrl

URL HTTPS publique facultative d’une image de pied de page personnalisée (PNG/JPEG/GIF, 200 KB max.) pour l’e-mail du rapport. Provenant du paramètre Tenant RJReport.Branding.FooterImageUrl. Lorsqu’elle est vide, l’image de pied de page par défaut de RealmJoin est utilisée.

| Propriété              | Valeur                                             |
| ---------------------- | -------------------------------------------------- |
| Obligatoire            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### BrandingFooterLink

URL facultative vers laquelle pointe l’image de pied de page. Provenant du paramètre Tenant RJReport.Branding.FooterLink. Lorsqu’elle est vide, le lien par défaut (<https://www.realmjoin.com>) est utilisé.

| Propriété              | Valeur                                             |
| ---------------------- | -------------------------------------------------- |
| Obligatoire            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### BrandingAccentColor

| Propriété              | Valeur                                             |
| ---------------------- | -------------------------------------------------- |
| Obligatoire            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### BrandingTextColor

| Propriété              | Valeur                                             |
| ---------------------- | -------------------------------------------------- |
| Obligatoire            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

[Retour à l’aperçu de la référence du runbook](/fr/automatisation/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/fr/automatisation/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.
