互換性モードでレガシ スクリプトを実行する

この記事では、互換性モードを使用して Microsoft Entra PowerShell でレガシ Azure AD PowerShell スクリプトを実行し、最小限の変更でシームレスなスクリプト移行を可能にする方法について説明します。 このプロセスにより、既存の自動化ワークフローを維持しながら、新しいモジュールにスムーズに移行でき、更新されたツールに対する継続的な効率とコンプライアンスが確保されます。

Microsoft Entra PowerShell は、Azure AD PowerShell モジュールとの 98% 以上の互換性を持っています。 互換モードでは、Enable-EntraAzureADAlias コマンドを使用して、Microsoft Entra PowerShell を使用して、既存の Azure AD PowerShell スクリプトを最小限の変更で実行できます。 Microsoft Entra PowerShell で Azure AD PowerShell および MSOnline のコマンドレットに対応するコマンドレットを見つけるには、Azure AD PowerShell から Microsoft Entra PowerShell へのコマンドレット対応表を使用します。

Enable-EntraAzureADAlias で互換モードを使用する

Enable-EntraAzureADAlias コマンドレットは、エイリアスを使用して互換モードを有効にします。 既定では、Enable-EntraAzureADAliasは現在の Microsoft Entra PowerShell セッションの互換性エイリアスのみを有効にします。 詳細については、 Enable-EntraAzureADAlias リファレンス ドキュメントを参照してください。

Microsoft Entra PowerShell を既存の AzureAD PowerShell スクリプトで使用するには、Connect-AzureAD コマンドを指定された 3 行に置き換えます。 この 3 行は、移行された 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

この例では、期限切れのシークレットを含むアプリを PowerShell Microsoft Entra使用してエクスポートするスクリプトを実行します。 この例では、Microsoft Entra PowerShell モジュールが既にインストールされていることを前提としています。

次のサンプル スクリプトは、元の 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 コマンドレットをスニペットに記載されている 3 行に置き換えます。 スクリプト全体を書き直す必要はありません。

次のスクリプトは、移行されたスクリプトです。

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 出力オブジェクトと若干異なる場合があります。