Запуск устаревших скриптов в режиме совместимости

Из этой статьи вы узнаете, как запускать устаревшие скрипты Azure AD PowerShell в Microsoft Entra PowerShell с помощью режима совместимости, что позволяет легко перенести скрипты с минимальными изменениями. Этот процесс позволяет плавно переходить на новый модуль при сохранении существующих рабочих процессов автоматизации, обеспечивая постоянную эффективность и соответствие обновленным средствам.

Microsoft Entra PowerShell имеет более 98% совместимость с модулем AZURE AD PowerShell. В режиме совместимости вы можете запускать существующие скрипты AZURE AD PowerShell с минимальными изменениями с помощью Microsoft Entra PowerShell с помощью Enable-EntraAzureADAlias команды. Чтобы найти эквиваленты командлетов Azure AD PowerShell и MSOnline в Microsoft Entra PowerShell, используйте сопоставление командлетов Azure AD PowerShell и Microsoft Entra PowerShell.

Использование режима совместимости с Enable-EntraAzureADAlias

Командлет Enable-EntraAzureADAlias включает режим совместимости с помощью псевдонимов. По умолчанию Enable-EntraAzureADAlias включает только псевдонимы совместимости для текущего сеанса PowerShell Microsoft Entra. Дополнительные сведения см. в справочной документации для Enable-EntraAzureADAlias.

Чтобы использовать Microsoft Entra PowerShell с существующими скриптами AzureAD PowerShell, замените Connect-AzureAD команду тремя предоставленными строками. Эти три строки являются началом перенесенного скрипта AzureAD PowerShell.

Import-Module -Name Microsoft.Entra.Applications
Connect-Entra -Scopes 'Application.Read.All' #Replaces Connect-AzureAD for auth
Enable-EntraAzureADAlias #enable aliasing
Get-AzureADApplication -Top 2

Example

В этом примере вы запускаете скрипт, который экспортирует приложения с истекающим сроком действия секретов с помощью Microsoft Entra PowerShell. В этом примере предполагается, что модуль PowerShell Microsoft Entra уже установлен.

В следующем примере скрипта используется исходный скрипт AzureAD PowerShell.

Connect-AzureAD
$applications = Get-AzureADApplication -All $true
$Logs = @()
Write-Host "I would like to see the Applications with the Secrets and Certificates that expire in the next X amount of Days? <<Replace X with the number of days. The answer should be ONLY in Numbers>>" -ForegroundColor Green
$Days = Read-Host

Write-Host "Would you like to see Applications with already expired secrets or certificates as well? <<Answer with [Yes] [No]>>" -ForegroundColor Green
$alreadyExpired = Read-Host

$now = Get-Date

foreach ($app in $applications) {
    $appName = $app.DisplayName
    $appID = $app.objectid
    $applID = $app.AppId
    $appCreds = Get-AzureADApplication -ObjectId $appID | Select-Object -Property PasswordCredentials, KeyCredentials
    $secret = $appCreds.PasswordCredentials
    $cert = $appCreds.KeyCredentials

Примечание: Этот фрагмент кода сокращен для удобства чтения. Подробные сведения см. в полном примере.

Чтобы использовать скрипт с модулем Microsoft Entra PowerShell, замените командлет Connect-AzureAD тремя строками, указанными в фрагменте кода. Вам не нужно переписать весь скрипт.

Следующий скрипт — это перенесенный скрипт.

Import-Module -Name Microsoft.Entra.Users
Connect-Entra #Replaces Connect-AzureAD for auth
Enable-EntraAzureADAlias #Activate aliasing

$applications = Get-AzureADApplication -All $true
$logs = @()
Write-Host "I would like to see the Applications with the Secrets and Certificates that expire in the next X amount of Days? <<Replace X with the number of days. The answer should be ONLY in Numbers>>" -ForegroundColor Green
$days = Read-Host
Write-Host "Would you like to see Applications with already expired secrets or certificates as well? <<Answer with [Yes] [No]>>" -ForegroundColor Green
$alreadyExpired = Read-Host
$now = Get-Date
foreach ($app in $applications) {
    $appName = $app.DisplayName
    $appID = $app.Objectid
    $applID = $app.AppId
    $appCreds = Get-AzureADApplication -ObjectId $appID | Select-Object -Property PasswordCredentials, KeyCredentials
    $secret = $appCreds.PasswordCredentials
    $cert = $appCreds.KeyCredentials

Примечание: Этот фрагмент кода сокращен для удобства чтения. Подробные сведения см. в полном измененном примере.

Проверка совместимости с командой Test-EntraScript

Командлет Test-EntraScript проверяет, работает ли скрипт, содержащий команды Azure AD PowerShell, с модулем Microsoft Entra PowerShell. Если возникают проблемы совместимости, он перечисляет их, включая номер строки, тип проблемы, несовместимую команду и конкретный фрагмент кода.

Известные проблемы

При миграции из модуля Azure AD PowerShell в Microsoft Entra PowerShell могут возникнуть некоторые известные проблемы.

  • Параметр -Filter может работать неправильно.
  • Параметр -SearchString может работать неправильно.
  • Выходные объекты могут немного отличаться от выходных объектов AzureAD.