Ejecución de scripts heredados en modo de compatibilidad

En este artículo, aprenderá a ejecutar scripts de PowerShell heredados Azure AD en Microsoft Entra PowerShell mediante el modo de compatibilidad, lo que permite la migración de scripts sin problemas con cambios mínimos. Este proceso le permite realizar la transición sin problemas al nuevo módulo, a la vez que mantiene los flujos de trabajo de automatización existentes, lo que garantiza la eficacia continua y el cumplimiento de las herramientas actualizadas.

Microsoft Entra PowerShell tiene más de un 98% de compatibilidad con el módulo Azure AD PowerShell. En el modo de compatibilidad, puede ejecutar sus scripts existentes de Azure AD PowerShell con modificaciones mínimas en Microsoft Entra PowerShell usando el comando Enable-EntraAzureADAlias. Para encontrar los equivalentes de los cmdlets de Azure AD PowerShell y MSOnline en Microsoft Entra PowerShell, utiliza la tabla de correspondencias de cmdlets de Azure AD PowerShell a Microsoft Entra PowerShell.

Uso del modo de compatibilidad con Enable-EntraAzureADAlias

El Enable-EntraAzureADAlias cmdlet activa el modo de compatibilidad a través de alias. De forma predeterminada, Enable-EntraAzureADAlias solo habilita los alias de compatibilidad para la sesión de PowerShell de Microsoft Entra actual. Para obtener más información, consulte la documentación de referencia Enable-EntraAzureADAlias .

Para usar Microsoft Entra PowerShell con los scripts de PowerShell de AzureAD existentes, reemplace el Connect-AzureAD comando por las tres líneas proporcionadas. Estas tres líneas son el principio del script de PowerShell de AzureAD migrado.

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

En este ejemplo, ejecutará un script que exporta aplicaciones con secretos que expiran mediante Microsoft Entra PowerShell. En este ejemplo se supone que el módulo de powerShell de Microsoft Entra ya está instalado.

El siguiente script de ejemplo es el script original de PowerShell de 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: Este fragmento de código se abrevia para mejorar la legibilidad. Consulte el ejemplo completo para obtener más información.

Para usar el script con el módulo Microsoft Entra PowerShell, reemplace el Connect-AzureAD cmdlet por las tres líneas proporcionadas en el fragmento de código. No es necesario volver a escribir todo el script.

El siguiente script es el 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: Este fragmento de código se abrevia para mejorar la legibilidad. Consulte el ejemplo modificado completo para obtener más información.

Probar la compatibilidad con Test-EntraScript comando

El cmdlet Test-EntraScript verifica si un script que contiene comandos de Azure AD PowerShell funciona con el módulo Microsoft Entra PowerShell. Si hay problemas de compatibilidad, los enumera, incluidos el número de línea, el tipo de problema, el comando incompatible y el fragmento de código específico.

Problemas conocidos

Al migrar desde el módulo de PowerShell de Azure AD a Microsoft Entra PowerShell, es posible que encuentre varios problemas conocidos.

  • Es posible que el parámetro -Filter no funcione correctamente.
  • Es posible que el parámetro -SearchString no funcione correctamente.
  • Los objetos de salida pueden diferir ligeramente con los objetos de salida de AzureAD.