Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :Azure SQL Database
Azure SQL Managed Instance
SQL Server sur les machines virtuelles Azure
SQL Server avec Azure Arc
Cet article décrit les opérations suivantes :
- Examinez et transférez plusieurs produits SQL à des licences payantes avec un seul script PowerShell.
- Appliquer continuellement les licences pay-as-you-go pour un type de ressource avec Azure Policy.
L’automatisation de cet article s’applique à SQL Server activé par Azure Arc, SQL Server sur les machines virtuelles Azure, Azure SQL Database, et Azure SQL Managed Instance. Le script peut aussi traiter un Azure-SSIS Integration Runtime en Azure Data Factory (Azure-SSIS IR).
Modifier un accord de licence ne modifie pas le type de licence configuré pour vos ressources SQL. Les flux de travail de cet article vous aident à passer les ressources à la facturation payante après que les licences SQL avec Software Assurance, licences d’abonnement SQL ou contrats de licence de fournisseur de services (SPLA) ne s’appliquent plus.
Prerequisites
- Un compte Azure avec accès au locataire et des abonnements contenant les ressources SQL.
- PowerShell 5 ou plus récent avec le module PowerShell d’Arizona.
- L’Azure CLI lorsque vous utilisez le script PowerShell pour mettre à jour les ressources SQL.
- Le rôle du contributeur dans chaque abonnement que vous modifiez. Pour des alternatives de privilège minimum, consultez les permissions par type de ressource.
- Pour le mode planifié, permission de créer des attributions de rôles dans le champ d’abonnement cible, ou les rôles requis préattribués à l’identité gérée du compte Automation.
- L’autorité pour modifier les paramètres de facturation et attester des conditions de licence pour les ressources ciblées.
Pour éviter d’installer les outils localement, exécutez le script dans Azure Cloud Shell. Cloud Shell inclut Azure PowerShell et Azure CLI et authentifie la session. Précisez -TenantId quand votre compte peut accéder à plus d’un locataire.
Choisir une méthode d’automatisation
Choisissez parmi les options suivantes :
- PowerShell pour les transitions entre ressources vers des licences pay-as-you-go.
- Azure Policy pour une application continue du paiement à l’usage pour un type de ressource.
Le tableau suivant fournit des détails sur chaque méthode d’automatisation :
| Scénario | Méthode recommandée |
|---|---|
| Examinez ou appliquez des modifications pay-as-you-go sur plusieurs types de ressources SQL | manage-payg-transition.ps1 |
| Transférez toutes les ressources prises en charge dans un abonnement ou un locataire vers une licence payante à l’usage | manage-payg-transition.ps1 |
| Effectuez une transition pay-as-you-go selon un planning récurrent |
manage-payg-transition.ps1 en mode programmé |
| Appliquer continuellement les licences pay-as-you-go pour un type de ressource et corriger la dérive | Un exemple Azure Policy propre à une ressource |
| Modifier une ressource manuellement | L’article sur la licence spécifique aux produits |
Examiner les ressources prises en charge et les valeurs de licence
Les procédures de cet article fixent -TargetLicenseType à PAYG. Le script traduit cette valeur en la valeur pay-as-you-go requise par chaque fournisseur de ressources. Les valeurs sources montrent des configurations de licence courantes que la transition peut remplacer.
| Resource | Valeur cible pay-as-you-go | Valeurs sources communes | Soutenu par le script | Exemple Azure Policy |
|---|---|---|---|---|
| SQL Server activé par Azure Arc | PAYG |
Paid, LicenseOnly |
Oui | Conformité des types de licence SQL Server compatibles Arc |
| SQL Server sur les machines virtuelles Azure | PAYG |
AHUB |
Oui | Conformité du type de licence de SQL Server sur des machines virtuelles Azure |
| Azure SQL Database et pools élastiques | LicenseIncluded |
BasePrice |
Oui | Conformité du type de licence d’Azure SQL Database |
| Azure SQL Managed Instance et pools d’instances | LicenseIncluded |
BasePrice, HybridFailoverRights |
Oui | Conformité des types de licence SQL Managed Instance |
| Azure-SSIS IR | LicenseIncluded |
BasePrice |
Oui | Non couvert dans cet article |
Les exemples de stratégie peuvent remplacer d’autres valeurs source, comme DR pour SQL Server sur les machines virtuelles Azure. Examinez l’échantillon sélectionné avant de déployer une mission de politique.
Comprendre comment fonctionne le script PowerShell
Vous pouvez utiliser le script PowerShell pour modifier toutes les ressources d’un groupe de ressources, toutes les ressources d’un abonnement, et toutes les ressources d’un ou plusieurs abonnements au sein d’un locataire entier.
Le script est autonome et fonctionne sur les ressources SQL prises en charge. Lorsque -TargetLicenseType est défini sur la valeur par défaut PAYG, cette valeur est convertie en valeur de paiement à l’utilisation requise pour chaque type de ressource, comme indiqué dans Passer en revue les ressources prises en charge et les valeurs de licence.
Par défaut, le dossier de travail généré reste après la fin du script. Pour le supprimer après une exécution, spécifiez -cleanDownloads $true.
Le script imprime un résumé par type de ressource et liste la cause de chaque ressource échouée ou sautée. Lorsque le script trouve des ressources correspondantes, il crée également un rapport ModifiedResources_<timestamp>.csv avec les colonnes UpdateResult et UpdateError.
Les paramètres suivants contrôlent la portée et l’exécution du script :
| Paramètre | Valeur acceptée ou défaut | Purpose |
|---|---|---|
-Target |
Arc, Azure, ou Both (par défaut) |
Sélectionne les ressources SQL Server compatibles avec Azure Arc, les ressources Azure SQL et Azure-SSIS IR, ou les deux. |
-RunMode |
Single (par défaut) ou Scheduled |
Il exécute la transition une fois ou configure quotidiennement les runbooks Azure Automation. |
-TargetLicenseType |
PAYG |
Sélectionnez le paiement à l’utilisation comme modèle de licence cible pour les procédures décrites dans cet article. |
-targetSubscription |
Identifiant d’abonnement ; par défaut, tous les abonnements accessibles du locataire | Cela limite la transition à un seul abonnement. |
-targetResourceGroup |
Nom du groupe de ressources ; tous les groupes de ressources par défaut | Limite la transition à un seul groupe de ressources. |
-TenantId |
ID de locataire ; contexte PowerShell actuel de l’Arizona par défaut | Sélectionner le tenant Microsoft Entra. |
-ReportOnly |
Switch ; désactivé par défaut | Signale les ressources éligibles sans les modifier. |
-WaitForCompletion |
Switch ; désactivé par défaut | Attend que les modifications soumises atteignent un état terminal lorsqu’elles sont prises en charge. |
-UsePcoreLicense |
No (par défaut) ou Yes |
Contrôle la licence du cœur physique pour SQL Server activée par Azure Arc. |
-AutomationAccResourceGroupName |
Obligatoire avec -RunMode Scheduled |
Sélectionne le groupe de ressources pour le compte Automatisation. |
-AutomationAccountName |
aaccAzureArcSQLLicenseType par défaut |
Définit le nom du compte Automation. |
-Location |
Obligatoire avec -RunMode Scheduled |
Sélectionne la région Azure pour le compte Automation et le groupe de ressources. |
-cleanDownloads |
$false (par défaut) ou $true |
Supprime le dossier de travail généré après la fin du script. |
Le comportement d’exécution par défaut dépend du type de ressource :
| Resource | Comportement par défaut | Avec -WaitForCompletion |
|---|---|---|
| Azure SQL Database, Azure SQL Managed Instance | Soumet une demande asynchrone et rapporte RequestSubmitted |
Attentes et rapports Updated |
| SQL Server activé par Azure Arc | Soumet une mise à jour asynchrone de l’extension et rapporte RequestSubmitted |
Interroge l’extension et rapporte Succeeded, Failed, ou TimedOut |
| SQL Server sur les machines virtuelles Azure | Soumet une demande directe à Azure Resource Manager et génère un rapport RequestSubmitted |
Exécute az sql vm update, attend et signale Updated |
| Azure-SSIS IR | Attentes et rapports Updated |
Même comportement |
Prévisualisez la transition vers le mode de paiement à l’utilisation
Le manage-payg-transition.ps1 script fournit un point d’entrée unique pour Azure SQL et SQL Server activé par les ressources Azure Arc.
Avec le script PowerShell, vous pouvez spécifier un abonnement unique à scanner. Si vous ne spécifiez pas d’abonnement, le script scanne tous les abonnements auxquels votre rôle peut accéder.
Téléchargez le script :
$scriptUri = "https://raw.githubusercontent.com/microsoft/sql-server-samples/master/samples/manage/manage-payg-transition/manage-payg-transition.ps1" Invoke-WebRequest -Uri $scriptUri -OutFile ".\manage-payg-transition.ps1"Connectez-vous au locataire contenant les ressources :
Connect-AzAccount -TenantId "<tenant-id>"Faites une prévisualisation en lecture seule pour un seul abonnement. Spécifiez
-TenantIdmême si vous avez déjà un contexte Azure afin que le script n'utilise pas le mauvais locataire :.\manage-payg-transition.ps1 ` -Target Both ` -TenantId "<tenant-id>" ` -targetSubscription "<subscription-id>" ` -TargetLicenseType PAYG ` -ReportOnlySi le script trouve des ressources correspondantes, ouvrez le rapport le plus
ModifiedResources_<timestamp>.csvrécent. Confirmez que chaque ressource listée doit être modifiée :$report = Get-ChildItem -Filter "ModifiedResources_*.csv" | Sort-Object LastWriteTime -Descending | Select-Object -First 1 Import-Csv $report.FullName | Format-Table
Les ressources qui utilisent déjà la licence pay-as-you-go n’apparaissent pas dans le rapport. Si le script ne trouve aucune ressource correspondante, il ne crée pas de fichier CSV. Pour réduire la portée, spécifiez -targetResourceGroup. Définissez -Target sur Azure pour traiter les ressources Azure SQL et Azure-SSIS IR. Réglez-le sur Arc pour traiter uniquement les ressources SQL Server compatibles avec Azure Arc.
Effectuez une transition ponctuelle vers la tarification à l’utilisation avec PowerShell
Effectuez la transition pay-as-you-go seulement après avoir confirmé le périmètre cible et approuvé toutes les ressources du rapport de prévisualisation.
Supprimez
-ReportOnlyet ajoutez-WaitForCompletionpour attendre des résultats confirmés lorsque le fournisseur de ressources les prend en charge :.\manage-payg-transition.ps1 ` -Target Both ` -TenantId "<tenant-id>" ` -targetSubscription "<subscription-id>" ` -TargetLicenseType PAYG ` -WaitForCompletionConsultez le rapport CSV généré. Examinez chaque
FailedTimedOutrésultat et confirmez l’état de la ressource pour chaque modification soumise.
La valeur PAYG définit le paiement à l’utilisation comme modèle de licence cible.
Si vous omettez -WaitForCompletion, la plupart des changements acceptés ont un UpdateResult de RequestSubmitted. Ce résultat signifie qu’Azure a accepté la demande, et non que le type de licence a terminé de changer. Azure-SSIS IR attend toujours car sa commande update ne supporte pas l'exécution asynchrone.
Programmez des transitions récurrentes au paiement à l’usage avec PowerShell
Le mode planifié crée ou met à jour un runbook Azure Automation pour chaque cible sélectionnée, relie chaque runbook à un planning quotidien, et commence immédiatement un travail ponctuel. Indiquez le groupe de ressources du compte Automation et la région Azure. Le nom de compte par défaut d’Automation est aaccAzureArcSQLLicenseType. Le mode planifié utilise l’identité gérée du compte Automation.
Planifiez la transition pour Azure SQL et SQL Server activés par les ressources Azure Arc en un seul abonnement :
.\manage-payg-transition.ps1 ` -Target Both ` -RunMode Scheduled ` -TenantId "<tenant-id>" ` -targetSubscription "<subscription-id>" ` -TargetLicenseType PAYG ` -AutomationAccResourceGroupName "<automation-resource-group>" ` -AutomationAccountName "<automation-account>" ` -Location "<azure-region>"Dans le compte Automatisation, confirmez que les runbooks sont publiés, liés à un planning quotidien, et capables de démarrer une tâche avec les paramètres sélectionnés.
Si la cible Azure inclut des pools d’instances managées SQL, attribuez à l’identité managée du compte Automation le rôle Contributor ou un rôle personnalisé avec Microsoft.Sql/instancePools/read et Microsoft.Sql/instancePools/write. La configuration programmée n’attribue pas de rôle intégré qui accorde ces permissions.
Appliquer la licence pay-as-you-go avec Azure Policy
Utilisez un exemple spécifique à une ressource d’Azure Policy pour appliquer en continu les licences pay-as-you-go et corriger la dérive de configuration. Chaque exemple contient une définition de politique, un script de déploiement et un script de remédiation.
Warning
Une attribution de politique peut modifier chaque ressource correspondante dans son champ d’application. Commencez par un abonnement test à portée restreinte, et sélectionnez uniquement les types de licence actuels que vous comptez remplacer.
Le tableau suivant relie le package de politique et le script de déploiement pour chaque ressource :
| Resource | Programme politique | Script de déploiement |
|---|---|---|
| SQL Server activé par Azure Arc | Conformité des types de licence SQL Server compatibles Arc | deployment.ps1 |
| SQL Server sur les machines virtuelles Azure | Conformité du type de licence de SQL Server sur des machines virtuelles Azure | deployment.ps1 |
| Azure SQL Managed Instance (Instance gérée Azure SQL) | Conformité des types de licence SQL Managed Instance | deployment.ps1 |
| Azure SQL Database | Conformité du type de licence d’Azure SQL Database | deployment.ps1 |
Utilisez les valeurs et rôles pour le type de ressource sélectionné :
| Resource | Valeur cible pay-as-you-go | Valeurs sources pouvant être écrasées | Rôle principal requis | Limite importante |
|---|---|---|---|---|
| SQL Server activé par Azure Arc | PAYG |
Paid; La définition du portail prend également en charge LicenseOnly |
Azure Extension for SQL Server Deployment | L’affectation attribue une même cible à tous les hôtes correspondants et ne tient pas compte de l’édition. Définissez séparément le périmètre des environnements mixtes. |
| SQL Server sur les machines virtuelles Azure | PAYG |
AHUB, DR |
Contributeur de machines virtuelles | La cible doit respecter les conditions de licence Azure Hybrid Benefit ou de licence passive haute disponibilité ou reprise après sinistre (HA/DR). |
| Azure SQL Managed Instance (Instance gérée Azure SQL) | LicenseIncluded |
BasePrice, HybridFailoverRights |
Contributeur d’instance gérée SQL |
HybridFailoverRights définit licenseType sur BasePrice et hybridSecondaryUsage sur Passive. |
| Azure SQL Database | LicenseIncluded |
BasePrice |
Contributeur de base de données SQL | La stratégie exclut master et les bases de données Basic. Azure SQL Database prend uniquement en charge les modifications du type de licence pour les bases de données utilisant des vCores provisionnés ; excluez donc de l’attribution, ou accordez-leur une exemption, les autres bases de données basées sur les unités de transaction de base de données (DTU) ainsi que les bases de données serverless. |
Chaque devoir nécessite également un lecteur et un contributeur aux politiques de ressources. Les scripts de déploiement accordent les rôles requis lorsque l’identité connectée a la permission de créer des attributions de rôles. Utilisez -GrantMissingPermissions avec le script de remediation pour vérifier et ajouter les rôles manquants.
Les scripts de déploiement SQL VM, SQL Managed Instance et SQL Database demandent une confirmation lorsque la valeur cible nécessite une attestation de licence. À utiliser -SkipLicenseConfirmation uniquement dans un pipeline automatisé où l’opérateur a déjà confirmé son éligibilité et assume la responsabilité de la conformité.
Pour SQL Server compatible Arc, une PAYG politique configure également le consentement à la facturation récurrente. Le consentement reste associé à l’extension si une attribution ultérieure modifie le type de licence pour qu’il ne soit plus PAYG.
Les packages de politiques utilisent un flux de déploiement partagé :
Téléchargez les dossiers
policyetscriptsdu package en suivant les instructions du fichier README.Connectez-vous au locataire qui contient le périmètre d’attribution :
Connect-AzAccount -TenantId "<tenant-id>"Depuis le dossier package téléchargé, déployez la définition et l’affectation. Utilisez la valeur cible pay-as-you-go pour votre type de ressource du tableau précédent. L’exemple suivant attribue la stratégie à la portée de l’abonnement :
.\scripts\deployment.ps1 ` -SubscriptionId "<subscription-id>" ` -TargetLicenseType "<pay-as-you-go-value>"Si vous omettez
-SubscriptionId, le script utilise l’étendue du groupe de gestion. Vérifiez les paramètres par défaut des paquets avant de lancer le déploiement.Confirmez que l’affectation de stratégie dispose d’une identité managée affectée par le système ainsi que des rôles requis dans l’étendue de l’affectation.
Commencez la remédiation pour les ressources existantes non conformes :
.\scripts\start-remediation.ps1 ` -SubscriptionId "<subscription-id>" ` -TargetLicenseType "<pay-as-you-go-value>" ` -GrantMissingPermissionsDans Azure Policy, examinez les résultats de conformité et la tâche de remédiation de l'assignation. Puis confirmez le type de licence sur les ressources réhabilitées.
Validez la transition au paiement à l’usage
Le rapport CSV inclut un UpdateResult et un UpdateError pour chaque ressource sélectionnée. Interprétez les résultats courants comme suit :
| Result | Meaning | Action suivante |
|---|---|---|
ReportOnly |
Le script identifiait une ressource éligible en mode lecture seule et n’a pas soumis de modification. | Confirmez que la ressource doit utiliser une licence pay-as-you-go avant de lancer la transition. |
RequestSubmitted |
Azure a accepté une demande asynchrone. | Attendez que l’opération de la ressource se termine, puis validez l’état de la ressource. |
Updated ou Succeeded |
Le script observait un résultat terminal réussi. | Confirmez le type de licence sur la ressource. |
Failed |
Le service a rejeté la mise à jour ou a renvoyé un état terminal défaillant. | Révisez UpdateError, corrigez le problème, puis relancez l’aperçu. |
TimedOut |
L’extension d’Arc n’a pas atteint un état terminal avant la limite de scrutin. | Vérifiez l’état de l’extension. La mise à jour peut se terminer après que le script ait cessé d’attendre. |
Pour confirmer le type de licence actuel et l’état de provisionnement pour SQL Server activé par Azure Arc, exécutez la requête Azure Resource Graph suivante :
Search-AzGraph -Query @"
resources
| where type =~ 'microsoft.hybridcompute/machines/extensions'
| where properties.type in~ ('WindowsAgent.SqlServer', 'LinuxAgent.SqlServer')
| project name = split(id, '/')[8],
licenseType = properties.settings.LicenseType,
state = properties.provisioningState
"@
Une fois les opérations soumises terminées, réexécutez la même portée avec -ReportOnly:
.\manage-payg-transition.ps1 `
-Target Both `
-TenantId "<tenant-id>" `
-targetSubscription "<subscription-id>" `
-TargetLicenseType PAYG `
-ReportOnly
Le script exclut les ressources qui utilisent déjà la licence pay-as-you-go. Un périmètre entièrement convergé ne signale aucune ressource à mettre à jour. Examinez toute ressource qui apparaît encore avant de considérer la transition comme terminée.
Limitations de révision et garanties de facturation
- SQL Server sur Azure doit fonctionner. Le script saute les VM arrêtées ou déallouées et ne les démarre pas.
- Le script exclut SQL Server sur les machines virtuelles Azure qui utilisent ce
DRtype de licence, donc il ne remplace pas le paramètre de licence pour une réplique passive HA/DR. - Le script n’expose pas l’option de consentement de facturation récurrente de son gestionnaire Arc intégré. Pour les ressources Arc gérées par CSP qui nécessitent un consentement de facturation récurrent, utilisez la politique de conformité des types de licence SQL Server compatible avec Arc, qui configure le consentement lors de l’application
PAYG. - Une exécution asynchrone par défaut privilégie l’échelle plutôt que la confirmation immédiate. Utilisez
-WaitForCompletionlorsque vous avez besoin que le script observe les résultats dans le terminal avant de se terminer. - Par défaut, les mises à jour de SQL Server sur Azure VM utilisent une requête asynchrone Azure Resource Manager. Si cette requête échoue, le script revient à
az sql vm update, qui attend la fin de l’opération.
Dépannage des défaillances d’automatisation
Utilisez le rapport généré et l'état des opérations Azure pour identifier les ressources qui n'ont pas été mises à jour.
- Si le rapport est vide, confirmez le locataire, l’abonnement et le groupe de ressources. Un rapport vide est attendu lorsque toutes les ressources du champ de relève utilisent déjà des licences pay-as-you-go.
- Si une ressource compatible Arc est sautée, restaurez la connectivité de l’agent Azure Connected Machine, confirmez que l’état de provisionnement de l’extension Azure pour SQL Server est
Succeeded, puis relancez l’aperçu. - Si
UpdateResultestRequestSubmitted, ne traitez pas la demande comme complète. Vérifiez l’état de la ressource ou relancez la prévisualisation après la fin de l’opération Azure. - Si une opération Azure SQL ou SQL Server sur une VM Azure échoue, confirmez que Azure CLI est installée, connectée au même locataire et autorisée pour l’abonnement cible.
- Si le mode planifié échoue, confirmez que l’identité gérée du compte Automation contient les rôles listés dans l’exemple source.
- Si la remédiation de stratégie renvoie
PolicyAuthorizationFailed, vérifiez que l’identité de l’affectation dispose du rôle spécifique au produit, Lecteur, et de Contributeur aux stratégies de ressources au niveau du périmètre de l’affectation. Relancez le script de déploiement, ou relancez le script de remédiation avec-GrantMissingPermissionsune fois que l’identité connectée peut créer des attributions de rôles.
Pour la source complète, voir manage-payg-transition.ps1. Pour les limitations actuelles et les résultats des tests, consultez le manage-payg-transition.ps1 plan de test.
Autorisations par type de ressource
Autorisations pour le script PowerShell
Le rôle de Contributeur est un surensemble des autorisations requises par le script de cet article et constitue l’option la plus simple. Pour un accès selon le principe du moindre privilège, attribuez les rôles requis pour les types de ressources concernés :
| Type de ressource | Rôle ou autorisations requises |
|---|---|
| SQL Server sur les machines virtuelles Azure | Contributeur de machines virtuelles |
| Azure SQL Managed Instance (Instance gérée Azure SQL) | SQL Managed Instance Contributor |
| Azure SQL Database | Contributeur de base de données SQL |
| Pools élastiques Azure SQL Database | Contributeur SQL Server |
| Pools d’instances managées Azure SQL |
Contributeur, ou un rôle personnalisé avec Microsoft.Sql/instancePools/read et Microsoft.Sql/instancePools/write |
| SQL Server activé par Azure Arc | Administrateur des ressources de la machine connectée à Azure |
| Azure-SSIS IR | Contributeurs de fabrique de données |
| Lecture et énumération des abonnements et ressources | Reader, sauf si un autre rôle assigné accorde les permissions de lecture requises |
Autorisations pour Azure Policy
L’identité sous laquelle deployment.ps1 s’exécute doit disposer de l’autorisation de créer des définitions de stratégie dans le groupe d’administration sélectionné, ainsi que de créer des affectations de stratégie, des tâches de correction, des identités managées et des affectations de rôle dans l’étendue de l’affectation. Si elle ne peut pas créer d’assignations de rôles, assignez les rôles requis à l’identité gérée de l’attribution de politique avant de commencer la remédiation, et exécutez deployment.ps1 avec -SkipManagedIdentityRoleAssignment.
Par défaut, deployment.ps1 crée une identité managée assignée par le système pour l’attribution de politique et attribue trois rôles dans le périmètre de l’attribution. Le rôle spécifique au produit dépend de l’échantillon politique sélectionné :
| Exemple de politique | Rôle spécifique au produit |
|---|---|
| SQL Server activé par Azure Arc | Azure Extension for SQL Server Deployment |
| SQL Server sur les machines virtuelles Azure | Contributeur de machines virtuelles |
| Azure SQL Managed Instance (Instance gérée Azure SQL) | SQL Managed Instance Contributor |
| Azure SQL Database | Contributeur de base de données SQL |
Chaque identité d’attribution de politique nécessite également un lecteur et un contributeur de politique de ressources. Le script de déploiement ne saute l’attribution automatique des rôles que lorsque vous spécifiez -SkipManagedIdentityRoleAssignment.
Avant de commencer la correction, start-remediation.ps1 vérifie l’identité de l’attribution de stratégie pour les trois rôles requis. Si un rôle manque, le script s’arrête. Attribuez les rôles manuellement, ou réexécutez le script de remédiation avec -GrantMissingPermissions à partir d’une identité autorisée à créer des assignations de rôles au niveau de l’étendue d’assignation.