Spouštění starších skriptů v režimu kompatibility

V tomto článku se dozvíte, jak spouštět starší verze skriptů Azure AD PowerShellu v Microsoft Entra PowerShellu pomocí režimu kompatibility, což umožňuje bezproblémovou migraci skriptů s minimálními změnami. Tento proces umožňuje bezproblémově přejít na nový modul a současně udržovat stávající pracovní postupy automatizace a zajistit trvalou efektivitu a dodržování předpisů s aktualizovanými nástroji.

Microsoft Entra PowerShell je z více než 98 % kompatibilní s modulem Azure AD PowerShell. V režimu kompatibility můžete pomocí příkazu spustit existující skripty Azure AD PowerShellu s minimálními úpravami pomocí Microsoft Entra PowerShelluEnable-EntraAzureADAlias. Pokud chcete najít ekvivalenty rutin cmdlet Azure AD PowerShellu a MSOnline v Microsoft Entra PowerShellu, použijte mapování rutin cmdlet z Azure AD PowerShellu na Microsoft Entra PowerShell.

Použití režimu kompatibility s Enable-EntraAzureADAlias

Rutina Enable-EntraAzureADAlias umožňuje režim kompatibility prostřednictvím aliasů. Ve výchozím nastavení Enable-EntraAzureADAlias povoluje aliasy kompatibility pouze pro aktuální relaci Microsoft Entra PowerShellu. Další informace naleznete v referenční dokumentaci Enable-EntraAzureADAlias .

Pokud chcete používat Microsoft Entra PowerShell se svými stávajícími skripty AzureAD PowerShellu, nahraďte příkaz Connect-AzureAD třemi uvedenými řádky. Tyto tři řádky představují začátek migrovaného skriptu AzureAD PowerShellu.

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

V tomto příkladu spustíte skript, který exportuje aplikace s tajnými kódy, jejichž platnost vyprší, pomocí Microsoft Entra PowerShellu. Tento příklad předpokládá, že modul Microsoft Entra PowerShellu je již nainstalovaný.

Následující ukázkový skript je původní skript AzureAD PowerShellu.

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

Poznámka: Tento fragment kódu je zkrácen pro čitelnost. Podrobnosti najdete v úplné ukázce.

Pokud chcete svůj skript používat s modulem Microsoft Entra PowerShell, nahraďte rutinu cmdlet Connect-AzureAD třemi řádky uvedenými v tomto fragmentu kódu. Nemusíte přepisovat celý skript.

Následující skript je migrovaný skript.

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

Poznámka: Tento fragment kódu je zkrácen pro čitelnost. Podrobnosti najdete v úplné upravené ukázce.

Test kompatibility pomocí příkazu Test-EntraScript

Rutina Test-EntraScript ověří, jestli skript s příkazy Azure AD PowerShellu funguje s modulem Microsoft Entra PowerShellu. Pokud dojde k problémům s kompatibilitou, zobrazí je seznam, včetně čísla řádku, typu problému, nekompatibilního příkazu a konkrétního fragmentu kódu.

Známé problémy

Při migraci z modulu Azure AD PowerShell na Microsoft Entra PowerShellu se může vyskytnout několik známých problémů.

  • Parametr -Filter nemusí správně fungovat.
  • Parametr -SearchString nemusí správně fungovat.
  • Výstupní objekty se u výstupních objektů AzureAD můžou mírně lišit.