Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Относится к:База данных SQL Azure
Управляемый экземпляр SQL Azure
SQL Server на виртуальных машинах Azure
SQL Server с поддержкой Azure Arc
В этой статье описывается, как выполнить следующее:
- Проверьте и переведите несколько SQL-продуктов на модель лицензирования с оплатой по мере использования с помощью одного скрипта PowerShell.
- Непрерывно применяйте лицензию pay-as-you-go для одного типа ресурса с помощью Политика Azure.
Автоматизация, описанная в этой статье, применяется к SQL Server, поддерживаемому Azure Arc, SQL Server на Azure Virtual Machines, База данных SQL Azure и Управляемый экземпляр SQL Azure. Скрипт также может обрабатывать Azure-SSIS Integration Runtime в Фабрика данных Azure (Azure-SSIS IR).
Изменение лицензионного соглашения не меняет тип лицензии, настроенный для ваших SQL-ресурсов. Процедуры, описанные в этой статье, помогут вам перевести ресурсы на модель оплаты по мере использования после того, как лицензии SQL с программой Software Assurance, подписки SQL или лицензирование по Соглашению о лицензировании поставщиков услуг (SPLA) перестанут действовать.
Необходимые условия
- Учетная запись Azure с доступом к клиенту и подпискам, содержащим ресурсы SQL.
- PowerShell 5 или более позднее с модулем Az PowerShell.
- Azure CLI, когда вы используете скрипт PowerShell для обновления ресурсов SQL.
- Роль участника в каждой подписке, которую вы изменяете. Для альтернатив с наименьшими привилегиями проверьте разрешения по типу ресурса.
- Для режима по расписанию — разрешение на создание назначений ролей в области целевой подписки либо необходимые роли, предварительно назначенные управляемой идентичности учетной записи Automation.
- Полномочия менять настройки выставления счетов и подтверждать лицензионные условия для целевых ресурсов.
Чтобы избежать локальной установки инструментов, запустите скрипт в Azure Cloud Shell. Cloud Shell включает Azure PowerShell и Azure CLI, а также аутентифицирует сессию. Уточните -TenantId , когда ваш аккаунт может получить доступ к нескольким арендаторам.
Выберите метод автоматизации
Выберите один из вариантов:
- PowerShell для перехода между ресурсами к лицензированию с оплатой по мере использования.
- Политика Azure для постоянного применения модели оплаты по мере использования для одного типа ресурса.
Следующая таблица содержит подробную информацию о каждом методе автоматизации:
| Сценарий | Рекомендуемый способ |
|---|---|
| Просматривайте или применяйте изменения модели оплаты по мере использования для нескольких типов ресурсов SQL | manage-payg-transition.ps1 |
| Переведите все поддерживаемые ресурсы в подписке или арендаторе на лицензию с оплатой по мере использования | manage-payg-transition.ps1 |
| Запустите переход на оплату по мере использования по регулярному расписанию |
manage-payg-transition.ps1 в режиме работы по расписанию |
| Постоянно применяйте лицензию pay-as-you-use для одного типа ресурса и устраняйте дрейф | Пример Политика Azure для конкретного ресурса |
| Измените один ресурс вручную | Статья о лицензировании для конкретного продукта |
Проверьте поддерживаемые ресурсы и ценности лицензий
В этой статье описаны процедуры, позволяющие установить -TargetLicenseType в значение PAYG. Скрипт переводит это значение в стоимость оплаты по мере использования, необходимую каждому поставщику ресурсов. Исходные значения показывают общие лицензионные конфигурации, которые переход может заменить.
| Resource | Целевая стоимость оплаты по мере использования | Общие значения источника | Поддерживается скриптом | Пример Политика Azure |
|---|---|---|---|---|
| SQL Server, управляемый с помощью Azure Arc | PAYG |
Paid, LicenseOnly |
Да | Соответствие типу лицензий SQL Server с поддержкой Arc |
| SQL Server на Виртуальных машинах Microsoft Azure | PAYG |
AHUB |
Да | Соответствие типов лицензий SQL Server на Azure VM |
| База данных SQL Azure и эластичные пулы | LicenseIncluded |
BasePrice |
Да | Соответствие типу лицензии База данных SQL Azure |
| Управляемый экземпляр SQL Azure и пулы экземпляров | LicenseIncluded |
BasePrice, HybridFailoverRights |
Да | Соответствие типу лицензии Управляемый экземпляр SQL |
| Azure-SSIS IR | LicenseIncluded |
BasePrice |
Да | В этой статье это не обсуждается |
Образцы политик могут перезаписывать дополнительные исходные значения, напримерDR, для SQL Server на виртуальных машинах Azure. Просмотрите выбранный пример перед развертыванием назначения политики.
Поймите, как работает скрипт PowerShell
Вы можете использовать скрипт PowerShell для изменения всех ресурсов внутри группы ресурсов, всех ресурсов внутри подписки и всех ресурсов по одной или нескольким подпискам внутри всего арендатора.
Скрипт самостоятельный и работает с поддерживаемыми SQL-ресурсами. Если для -TargetLicenseType задано значение по умолчанию PAYG, это значение преобразуется в значение оплаты по мере использования, необходимое для каждого типа ресурса, как показано в разделе Обзор поддерживаемых ресурсов и значений лицензий.
По умолчанию сгенерированная рабочая папка остаётся после завершения скрипта. Чтобы удалить его после запуска, укажите -cleanDownloads $true.
Скрипт печатает сводку по типу ресурса и указывает причину каждого неисправного или пропущенного ресурса. Когда скрипт находит соответствующие ресурсы, он также создаёт ModifiedResources_<timestamp>.csv отчёт с UpdateResult и UpdateError столбцами.
Следующие параметры контролируют область действия и выполнение скрипта:
| Parameter | Принятое значение или по умолчанию | Purpose |
|---|---|---|
-Target |
Arc, Azure, или Both (по умолчанию) |
Выбирает ресурсы SQL Server с поддержкой Azure Arc, ресурсы Azure SQL и Azure-SSIS IR либо обе группы. |
-RunMode |
Single (по умолчанию) или Scheduled |
Запускает переход один раз или настраивает ежедневные ранбуки Cлужба автоматизации Azure. |
-TargetLicenseType |
PAYG |
Выбирает модель оплаты по мере использования в качестве целевой лицензионной модели для процедур, описанных в этой статье. |
-targetSubscription |
ID подписки; все доступные подписки по умолчанию в арендаторе | Ограничивает переход на одну подписку. |
-targetResourceGroup |
Название группы ресурсов; все группы ресурсов по умолчанию | Ограничивает переход к одной группе ресурсов. |
-TenantId |
Идентификатор арендатора; текущий контекст Az PowerShell по умолчанию | Выбирает клиента Microsoft Entra. |
-ReportOnly |
Переключатель; по умолчанию отключён | Выводит сведения о ресурсах, соответствующих критериям, не изменяя их. |
-WaitForCompletion |
Переключатель; по умолчанию отключён | Ожидает, пока отправленные изменения не достигнут конечного состояния, если это поддерживается. |
-UsePcoreLicense |
No (по умолчанию) или Yes |
Управляет лицензированием физических ядер для SQL Server, поддерживаемым Azure Arc. |
-AutomationAccResourceGroupName |
Обязательно с -RunMode Scheduled |
Выбирает группу ресурсов для аккаунта автоматизации. |
-AutomationAccountName |
aaccAzureArcSQLLicenseType по умолчанию |
Задает имя учетной записи автоматизации. |
-Location |
Обязательно с -RunMode Scheduled |
Выбирает регион Azure для аккаунта Автоматизации и группы ресурсов. |
-cleanDownloads |
$false (по умолчанию) или $true |
Удаляет сгенерированную рабочую папку после завершения скрипта. |
Поведение выполнения по умолчанию зависит от типа ресурса:
| Resource | Поведение по умолчанию | С -WaitForCompletion |
|---|---|---|
| База данных SQL Azure, Управляемый экземпляр SQL Azure | Отправляет асинхронный запрос и сообщает RequestSubmitted |
Ожидания и доклады Updated |
| SQL Server, управляемый с помощью Azure Arc | Отправляет асинхронное обновление расширения и сообщает RequestSubmitted |
Опрашивает расширение и сообщает Succeeded, Failed или TimedOut |
| SQL Server на Виртуальных машинах Microsoft Azure | Отправляет прямой запрос Azure Resource Manager и отчитываетRequestSubmitted |
Запускает az sql vm update, ожидает и сообщает Updated |
| Azure-SSIS IR | Ожидания и доклады Updated |
То же поведение |
Ознакомьтесь с переходом на оплату по мере использования
Скрипт manage-payg-transition.ps1 предоставляет одну точку входа для Azure SQL и SQL Server, поддерживаемую ресурсами Azure Arc.
С помощью скрипта PowerShell можно указать одну подписку для сканирования. Если вы не указали подписку, скрипт сканирует все подписки, к которым ваша роль имеет доступ.
Скачайте скрипт:
$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"Войдите в каталог, содержащий ресурсы:
Connect-AzAccount -TenantId "<tenant-id>"Запустите предпросмотр только для чтения для одной подписки. Указывайте
-TenantIdдаже если у вас уже есть контекст Azure, чтобы скрипт не использовал неправильный tenant:.\manage-payg-transition.ps1 ` -Target Both ` -TenantId "<tenant-id>" ` -targetSubscription "<subscription-id>" ` -TargetLicenseType PAYG ` -ReportOnlyЕсли скрипт найдёт совпадающие ресурсы, откройте самый новый отчёт
ModifiedResources_<timestamp>.csv. Убедитесь, что каждый перечисленный ресурс должен измениться:$report = Get-ChildItem -Filter "ModifiedResources_*.csv" | Sort-Object LastWriteTime -Descending | Select-Object -First 1 Import-Csv $report.FullName | Format-Table
Ресурсы, которые уже используют лицензии с оплатой по мере использования, не представлены в отчёте. Если скрипт не находит соответствующих ресурсов, он не создаёт CSV-файл. Чтобы уменьшить область действия, укажите -targetResourceGroup. Установите для -Target значение Azure, чтобы обрабатывать ресурсы Azure SQL и Azure-SSIS IR. Установите значение Arc, чтобы обрабатывать только ресурсы SQL Server с поддержкой Azure Arc.
Проведите одноразовый переход с оплатой по мере использования с помощью PowerShell
Выполняйте переход на оплату по мере использования только после того, как подтвердите целевую область и утвердите каждый ресурс в отчёте предварительного просмотра.
Удалите
-ReportOnly, и добавьте-WaitForCompletionдля ожидания подтвержденных результатов, если поставщик ресурса их поддерживает:.\manage-payg-transition.ps1 ` -Target Both ` -TenantId "<tenant-id>" ` -targetSubscription "<subscription-id>" ` -TargetLicenseType PAYG ` -WaitForCompletionПросмотрите сгенерированный отчёт CSV. Проверьте каждый
FailedилиTimedOutрезультат и подтвердите состояние ресурса для каждого внесенного изменения.
Значение PAYG задает оплату по мере использования в качестве целевой модели лицензирования.
Если опустить -WaitForCompletion, большинство принятых изменений имеют UpdateResult, равный RequestSubmitted. Этот результат означает, что Azure приняла запрос, а не что тип лицензии полностью изменился. Azure-SSIS IR всегда ждёт, потому что команда обновления не поддерживает асинхронное выполнение.
Планируйте повторяющиеся переходы с оплатой по мере использования с помощью PowerShell
Запланированный режим создаёт или обновляет один runbook Cлужба автоматизации Azure для каждой выбранной цели, связывает каждый runbook с ежедневным расписанием запуска и немедленно запускает одноразовое задание. Укажите группу ресурсов для учетной записи службы автоматизации и регион Azure. Имя аккаунта автоматизации по умолчанию — aaccAzureArcSQLLicenseType. Запланированный режим использует управляемую идентификацию учетной записи автоматизации.
Запланируйте переход для Azure SQL и SQL Server с помощью ресурсов Azure Arc в одной подписке:
.\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>"В аккаунте автоматизации убедитесь, что ранбуки опубликованы, связаны с ежедневным графиком и могут начать работу с выбранными параметрами.
Если целевой объект Azure включает пулы Управляемый экземпляр SQL, назначьте управляемой идентификации учетной записи автоматизации роль Contributor или настраиваемую роль с Microsoft.Sql/instancePools/read и Microsoft.Sql/instancePools/write. Запланированная настройка не назначает встроенную роль, которая предоставляет эти разрешения.
Обеспечьте лицензирование по мере использования с помощью Политика Azure
Используйте образец Политики Azure для конкретного ресурса, чтобы на постоянной основе обеспечивать применение лицензирования по мере использования и устранять дрейф конфигурации. Каждый образец содержит определение политики, скрипт развертывания и скрипт исправления.
Предупреждение
Назначенная политика может изменить все соответствующие ресурсы в пределах своей области действия. Начните с узкой тестовой подписки и выберите только текущие типы лицензий, которые планируете заменить.
Следующая таблица связывает пакет политик и скрипт развертывания для каждого ресурса:
| Resource | Пакет политики | Скрипт развертывания |
|---|---|---|
| SQL Server, управляемый с помощью Azure Arc | Соответствие типу лицензий SQL Server с поддержкой Arc | deployment.ps1 |
| SQL Server на Виртуальных машинах Microsoft Azure | Соответствие типов лицензий SQL Server на Azure VM | deployment.ps1 |
| Управляемый экземпляр Azure SQL | Соответствие типу лицензии Управляемый экземпляр SQL | deployment.ps1 |
| База данных SQL Azure | Соответствие типу лицензии База данных SQL Azure | deployment.ps1 |
Используйте значения и роли для выбранного типа ресурса:
| Resource | Целевая стоимость оплаты по мере использования | Исходные значения, которые можно перезаписать | Основная обязательная роль | Важное ограничение |
|---|---|---|---|---|
| SQL Server, управляемый с помощью Azure Arc | PAYG |
Paid; Определение портала также поддерживает LicenseOnly |
Azure Extension for SQL Server Deployment | Задание применяет одну цель ко всем совпадающим хостам и не учитывает версию. Охватывайте смешанные поместья отдельно. |
| SQL Server на Виртуальных машинах Microsoft Azure | PAYG |
AHUB, DR |
Сотрудник по управлению виртуальными машинами | Цель должна соответствовать условиям лицензирования Преимущество гибридного использования Azure или пассивной высокой доступности или аварийного восстановления (HA/DR). |
| Управляемый экземпляр Azure SQL | LicenseIncluded |
BasePrice, HybridFailoverRights |
Управляемый экземпляр SQL Contributor |
HybridFailoverRights Устанавливает licenseType в BasePrice и hybridSecondaryUsage в Passive. |
| База данных SQL Azure | LicenseIncluded |
BasePrice |
Соавтор базы данных SQL | Политика исключает master базы данных Basic. База данных SQL Azure поддерживает изменение типов лицензий только для подготовленных баз данных vCore, поэтому исключайте или исключайте из присваивания другие базы данных на основе транзакций (DTU) и бессерверные базы. |
Для каждого задания также требуется Reader и Resource Policy Contributor. Скрипты развертывания назначают необходимые роли, если учетная запись, под которой выполнен вход, имеет разрешение на создание назначений ролей. Используйте -GrantMissingPermissions вместе со скриптом исправления, чтобы проверить и добавить недостающие роли.
Скрипты развертывания SQL-виртуальной машины, Управляемый экземпляр SQL и SQL Database требуют подтверждения, когда целевое значение требует лицензионной аттестации. Используйте -SkipLicenseConfirmation только в автоматизированном конвейере, где оператор уже подтвердил правомочность и берёт на себя ответственность за соблюдение.
Для SQL Server с поддержкой Arc политика PAYG также настраивает регулярное согласие на выставление счетов. Согласие на продление остаётся в силе, если при последующей передаче тип лицензии изменится с PAYG.
Пакеты политик используют общий поток развертывания:
Скачайте папки
policyиscriptsпакета, следуя инструкциям в его README.Войдите в клиент, содержащий область назначения:
Connect-AzAccount -TenantId "<tenant-id>"Из папки загруженного пакета разверните определение и назначение. Используйте целевое значение для модели оплаты по мере использования для вашего типа ресурса из предыдущей таблицы. В следующем примере политика назначается на уровне подписки:
.\scripts\deployment.ps1 ` -SubscriptionId "<subscription-id>" ` -TargetLicenseType "<pay-as-you-go-value>"Если вы его
-SubscriptionIdпропустите, скрипт использует область действия группы управления. Проверьте настройки пакета по умолчанию перед запуском развертывания.Убедитесь, что у назначенной политики есть управляемое удостоверение системного назначения и требуемые роли на уровне области назначения.
Начните устранение существующих несоответствующих ресурсов:
.\scripts\start-remediation.ps1 ` -SubscriptionId "<subscription-id>" ` -TargetLicenseType "<pay-as-you-go-value>" ` -GrantMissingPermissionsВ Политика Azure просмотрите результаты проверки соответствия назначения и задачу устранения. Затем подтвердите тип лицензии на исправленных ресурсах.
Подтвердите переход на модель оплаты по мере использования
Отчёт в формате CSV включает UpdateResult и UpdateError для каждого выбранного ресурса. Интерпретируем распространённые результаты следующим образом:
| Result | Значение | Дальнейшие действия |
|---|---|---|
ReportOnly |
Скрипт определил подходящий ресурс в режиме только для чтения и не подал изменения. | Убедитесь, что для ресурса будет использоваться модель лицензирования с оплатой по мере использования перед выполнением перехода. |
RequestSubmitted |
Azure приняла асинхронный запрос. | Дождитесь завершения операции с ресурсом, а затем проверьте состояние ресурса. |
Updated или Succeeded |
Скрипт обнаружил успешный окончательный результат. | Подтвердите тип лицензии на ресурсе. |
Failed |
Сервис отклонил обновление или вернул неудачное состояние терминала. | Проверьте UpdateError, исправьте проблему и повторите предпросмотр. |
TimedOut |
Расширение Arc не достигло конечного состояния до достижения предела опроса. | Проверьте состояние расширения. Обновление может завершиться после того, как скрипт перестанет ждать. |
Чтобы подтвердить текущий тип лицензии и состояние предоставления SQL Server, поддерживаемого Azure Arc, выполните следующий запрос Azure Resource Graph:
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
"@
После завершения отправленных операций повторно запустите ту же область с -ReportOnly:
.\manage-payg-transition.ps1 `
-Target Both `
-TenantId "<tenant-id>" `
-targetSubscription "<subscription-id>" `
-TargetLicenseType PAYG `
-ReportOnly
Скрипт исключает ресурсы, которые уже используют модель лицензирования с оплатой по мере использования. Полностью конвергентный обхват не показывает ресурсов для обновления. Изучите все еще существующие ресурсы, прежде чем считать переход завершенным.
Проверьте ограничения и меры по выставлению счетов
- SQL Server на Azure VM должен работать. Скрипт пропускает остановленные или деаллоцированные виртуальные машины и не запускает их.
- Скрипт исключает SQL Server на виртуальных машинах Azure, использующих тип
DRлицензии, поэтому не перезаписывает лицензионные настройки для пассивной реплики HA/DR. - Скрипт не раскрывает повторяющуюся опцию согласия на оплату в встроенном обработчике Arc. Для ресурсов Arc, управляемых CSP, требующих регулярного согласия на выставление счетов, используйте политику соответствия типов лицензий SQL Server с поддержкой Arc, которая настраивает согласие при его применении
PAYG. - Асинхронный запуск по умолчанию ориентирован на масштабируемость, а не на немедленное подтверждение. Используйте
-WaitForCompletion, когда нужно, чтобы скрипт отслеживал результаты в терминале перед завершением. - По умолчанию обновления SQL Server на Azure VM используют асинхронный запрос Azure Resource Manager. Если этот запрос не срабатывает, скрипт возвращается к
az sql vm update, который ждёт завершения операции.
Устранение неисправностей автоматизации
Используйте сгенерированный отчет и статус операции Azure, чтобы определить ресурсы, которые не были обновлены.
- Если отчёт пуст, подтвердите арендатор, подписку и группу ресурсов. Следует ожидать пустой отчёт, если все охваченные ресурсы уже используют модель лицензирования pay-as-you-go.
- Если ресурс с поддержкой Arc пропущен, восстановите связь для агента Azure Connected Machine, убедитесь, что состояние предоставления расширения Azure для SQL Server равно
Succeeded, и затем запустите предпросмотр заново. - Если
UpdateResultимеет значениеRequestSubmitted, не считайте запрос завершённым. Проверьте состояние ресурса или перезапустите предпросмотр после завершения операции Azure. - Если операция с Azure SQL или SQL Server на виртуальной машине Azure завершается сбоем, убедитесь, что Azure CLI установлен, в нём выполнен вход в тот же клиент и он авторизован для целевой подписки.
- Если режим по расписанию не работает, убедитесь, что управляемому удостоверению учетной записи службы автоматизации назначены роли, указанные в исходном примере.
- Если при исправлении политики возвращается сообщение
PolicyAuthorizationFailed, убедитесь, что удостоверение назначения имеет специфичную для продукта роль Читатель и роль Участник политики ресурсов в области назначения. Повторно запустите скрипт развертывания или скрипт исправления с-GrantMissingPermissionsпосле того, как вошедшая в систему учетная запись сможет создавать назначения ролей.
Полный источник см. manage-payg-transition.ps1. Для текущих ограничений и результатов тестов смотрите manage-payg-transition.ps1 план тестирования.
Разрешения по типу ресурса
Разрешения для скрипта PowerShell
Роль участника является надмножеством разрешений, требуемых скриптом в этой статье, и является самым простым вариантом. Для доступа по принципу наименьших привилегий назначьте роли, необходимые для типов ресурсов, входящих в область действия:
| Тип ресурса | Роль или необходимые разрешения |
|---|---|
| SQL Server на Виртуальных машинах Microsoft Azure | Сотрудник по управлению виртуальными машинами |
| Управляемый экземпляр Azure SQL | Управляемый экземпляр SQL Contributor |
| База данных SQL Azure | Соавтор базы данных SQL |
| Эластичные пулы База данных SQL Azure | Участник SQL Server |
| Пулы Управляемый экземпляр SQL Azure |
Автор, или индивидуальная роль с Microsoft.Sql/instancePools/read и Microsoft.Sql/instancePools/write |
| SQL Server, управляемый с помощью Azure Arc | Администратор ресурсов Azure Connected Machine |
| Azure-SSIS IR | Контрибьютор фабрики данных |
| Чтение и перечисление подписок и ресурсов | Читатель, если только другая назначенная роль не предоставляет необходимые разрешения на чтение |
Разрешения для Политика Azure
Идентичность, которая запускается deployment.ps1 , требует разрешения на создание определений политик в выбранной управленческой группе и для создания назначений политик, задач исправления, управляемых идентичностей и ролей в области назначения. Если он не может создавать назначение ролей, назначьте необходимые роли управляемой идентичности назначения политики до начала восстановления и запускайте deployment.ps1 с -SkipManagedIdentityRoleAssignment.
По умолчанию deployment.ps1 создаёт управляемую идентичность, назначенную системой, для назначения политики и присваивает три роли в области присваивания. Роль для конкретного продукта зависит от выбранного образца политики:
| Образец политики | Роль, связанная с продуктом |
|---|---|
| SQL Server, управляемый с помощью Azure Arc | Azure Extension for SQL Server Deployment |
| SQL Server на Виртуальных машинах Microsoft Azure | Сотрудник по управлению виртуальными машинами |
| Управляемый экземпляр Azure SQL | Управляемый экземпляр SQL Contributor |
| База данных SQL Azure | Соавтор базы данных SQL |
Каждый идентификатор назначения политики также требует Reader и Resource Policy Contributor. Скрипт развертывания пропускает автоматическое назначение роли только при указании -SkipManagedIdentityRoleAssignment.
Перед началом исправления start-remediation.ps1 проверяет идентичность назначения политики на наличие всех трёх необходимых ролей. Если роль отсутствует, скрипт останавливается. Назначьте роли вручную или повторно запустите сценарий исправления с -GrantMissingPermissions из-под учетной записи, которая может создавать назначения ролей в этой области назначения.