Executar scripts herdados no modo de compatibilidade

Neste artigo, você aprenderá como executar scripts legados do Azure AD PowerShell no Microsoft Entra PowerShell usando o modo de compatibilidade, permitindo a migração contínua de scripts com alterações mínimas. Esse processo permite que você faça a transição suave para o novo módulo, mantendo os fluxos de trabalho de automação existentes, garantindo eficiência e conformidade contínuas com as ferramentas atualizadas.

O Microsoft Entra PowerShell tem mais de 98% de compatibilidade com o módulo Azure AD PowerShell. No modo de compatibilidade, você pode executar seus scripts existentes do Azure AD PowerShell com modificações mínimas no Microsoft Entra PowerShell, por meio do comando Enable-EntraAzureADAlias. Para encontrar os cmdlets equivalentes do Azure AD PowerShell e do MSOnline no Microsoft Entra PowerShell, use o mapa de cmdlets do Azure AD PowerShell para o Microsoft Entra PowerShell.

Usar o modo de compatibilidade com Enable-EntraAzureADAlias

O Enable-EntraAzureADAlias cmdlet habilita o modo de compatibilidade por meio de aliases. Por padrão, Enable-EntraAzureADAlias habilita apenas os aliases de compatibilidade para a sessão atual do PowerShell Microsoft Entra. Para obter mais informações, consulte a documentação de referência sobre Enable-EntraAzureADAlias.

Para usar Microsoft Entra PowerShell com seus scripts existentes do PowerShell do AzureAD, substitua o Connect-AzureAD comando pelas três linhas fornecidas. Essas três linhas são o início do seu script migrado do 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

Exemplo

Neste exemplo, você executa um script que exporta aplicativos com segredos expirando usando Microsoft Entra PowerShell. Este exemplo pressupõe que o módulo Microsoft Entra PowerShell já está instalado.

O script de exemplo a seguir é o script original do PowerShell do AzureAD.

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

Nota: Esse snippet de código é abreviado para legibilidade. Consulte o exemplo completo para obter detalhes.

Para usar o script com o módulo Microsoft Entra PowerShell, substitua o Connect-AzureAD cmdlet pelas três linhas fornecidas no snippet. Você não precisa reescrever o script inteiro.

O script a seguir é o script migrado.

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

Nota: Esse snippet de código é abreviado para legibilidade. Consulte o exemplo modificado completo para obter detalhes.

Testar a compatibilidade com o comando Test-EntraScript

O cmdlet Test-EntraScript verifica se um script com comandos do PowerShell Azure AD funciona com o módulo Microsoft Entra PowerShell. Se houver problemas de compatibilidade, ele os lista, incluindo o número de linha, o tipo de problema, o comando incompatível e o snippet de código específico.

Problemas conhecidos

Ao migrar do módulo Azure PowerShell do AD para Microsoft Entra PowerShell, você pode encontrar vários problemas conhecidos.

  • O parâmetro -Filter pode não funcionar corretamente.
  • O parâmetro -SearchString pode não funcionar corretamente.
  • Os objetos de saída podem ser ligeiramente diferentes dos objetos de saída do AzureAD.