Eseguire script legacy in modalità di compatibilità

Questo articolo illustra come eseguire script legacy di PowerShell Azure AD in Microsoft Entra PowerShell usando la modalità di compatibilità, abilitando la migrazione senza problemi di script con modifiche minime. Questo processo consente di passare senza problemi al nuovo modulo mantenendo al tempo stesso flussi di lavoro di automazione esistenti, garantendo efficienza e conformità continui con gli strumenti aggiornati.

Microsoft Entra PowerShell ha una compatibilità superiore al 98% con il modulo Azure AD PowerShell. Nella modalità di compatibilità è possibile eseguire gli script di PowerShell Azure AD esistenti con modifiche minime usando Microsoft Entra PowerShell usando il Enable-EntraAzureADAlias comando . Per trovare i cmdlet equivalenti di Azure AD PowerShell e MSOnline in Microsoft Entra PowerShell, usa la mappa dei cmdlet da Azure AD PowerShell a Microsoft Entra PowerShell.

Usare la modalità di compatibilità con Enable-EntraAzureADAlias

Il cmdlet abilita la Enable-EntraAzureADAlias modalità di compatibilità tramite alias. Per impostazione predefinita, Enable-EntraAzureADAlias abilita solo gli alias di compatibilità per la sessione corrente di PowerShell Microsoft Entra. Per ulteriori informazioni, consultare la documentazione di riferimento su Enable-EntraAzureADAlias.

Per usare Microsoft Entra PowerShell con gli script di PowerShell di AzureAD esistenti, sostituire il Connect-AzureAD comando con le tre righe fornite. Queste tre righe sono l'inizio dello script di PowerShell di AzureAD migrato.

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

In questo esempio si esegue uno script che esporta le app con segreti in scadenza usando Microsoft Entra PowerShell. In questo esempio si presuppone che il modulo di PowerShell Microsoft Entra sia già installato.

Lo script di esempio seguente è lo script di PowerShell azureAD originale.

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: Questo frammento di codice viene abbreviato per la leggibilità. Per informazioni dettagliate, vedere l'esempio completo.

Per usare lo script con il modulo di PowerShell Microsoft Entra, sostituire il Connect-AzureAD cmdlet con le tre righe fornite nel frammento di codice. Non è necessario riscrivere l'intero script.

Lo script seguente è lo script migrato.

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: Questo frammento di codice viene abbreviato per la leggibilità. Per informazioni dettagliate, vedere l'esempio completo modificato.

Testare la compatibilità con Test-EntraScript comando

Il cmdlet Test-EntraScript verifica se uno script con comandi di Azure AD PowerShell funziona con il modulo Microsoft Entra PowerShell. In caso di problemi di compatibilità, vengono elencati, inclusi il numero di riga, il tipo di problema, il comando incompatibile e il frammento di codice specifico.

Problemi noti

Quando si esegue la migrazione dal modulo powerShell di Azure AD a Microsoft Entra PowerShell, potrebbero verificarsi diversi problemi noti.

  • Il parametro -Filter potrebbe non funzionare correttamente.
  • Il parametro -SearchString potrebbe non funzionare correttamente.
  • Gli oggetti di output possono differire leggermente con gli oggetti di output di AzureAD.