Microsoft Entra PowerShell をオフラインでインストールする

インターネット アクセスが制限されている環境では、PowerShell モジュールMicrosoft Entraオフラインでインストールすることが必要になる場合があります。 この記事では、ダウンロードしたパッケージ ファイルとローカル リポジトリを使用してモジュールを設定およびインストールする方法について説明します。

オフライン インストールは、次のようなシナリオで役立ちます。

  • インターネットに接続できないエアギャップネットワーク
  • インターネット アクセスを制限する厳格なセキュリティ ポリシーを持つ組織
  • 直接PowerShell ギャラリー アクセスできない環境

前提条件

始める前に、以下のことを確認してください:

  • PowerShell 5.1 以降 (PowerShell 7 以降を推奨)
  • ターゲット コンピューターに対する管理特権
  • インターネットに接続されたダウンロード場所にアクセス して、必要なファイルをダウンロードする
  • Microsoft Entra PowerShell リリース ページから署名された nupkg ファイル

オフライン インストール プロセスの概要

オフライン インストール プロセスには、次の主な手順が含まれます。

  1. Microsoft Graph PowerShell の依存関係をインストールする
  2. ローカル PowerShell リポジトリを設定する
  3. ローカル リポジトリに nupkg ファイルをダウンロードして配置する
  4. ローカル リポジトリからモジュールMicrosoft Entraインストールする

Microsoft Graph PowerShell の依存関係をインストールする

Microsoft Entra PowerShell モジュールは、特定のMicrosoft Graph PowerShell モジュールに依存します。 これらの依存関係は、PowerShell ギャラリーからインストールするときに自動的にインストールされますが、オフラインシナリオでは手動でインストールする必要があります。

Important

これらの依存関係は、最初にインターネット にアクセスできるコンピューターにインストールするか、組織の承認されたソフトウェア配布方法を使用して依存関係モジュールを取得する必要があります。

次のスクリプトを実行して、必要なMicrosoft Graph PowerShell 依存関係をインストールします。 Microsoft Entra PowerShell では現在、バージョン 2.25.0 がサポートされています

# Define the required Graph modules version
$graphModulesVersion = "2.25.0"

# List of required Graph modules
$graphModules = @(
    "Microsoft.Graph.DirectoryObjects",
    "Microsoft.Graph.Users",
    "Microsoft.Graph.Users.Actions",
    "Microsoft.Graph.Groups",
    "Microsoft.Graph.Identity.DirectoryManagement",
    "Microsoft.Graph.Identity.Governance",
    "Microsoft.Graph.Identity.SignIns",
    "Microsoft.Graph.Applications",
    "Microsoft.Graph.Reports"
)

# Install each module
foreach ($moduleName in $graphModules) {
    Write-Host "Installing Module $($moduleName)" -ForegroundColor Green
    Install-Module $moduleName -Scope CurrentUser -RequiredVersion $graphModulesVersion -Force -AllowClobber -Verbose
}

ローカル PowerShell リポジトリを設定する

  1. Microsoft Entra PowerShell モジュール パッケージを格納するローカル PowerShell リポジトリを作成します。

    # Define local gallery settings
    $localGallery = '__LocalGallery__'
    $galleryPath = 'C:\LocalPowerShellGallery'
    
    # Create the gallery directory if it doesn't exist
    if (-not(Test-Path $galleryPath)) {
        Write-Host "Creating local gallery directory: $galleryPath" -ForegroundColor Yellow
        $null = New-Item -Path $galleryPath -ItemType Directory
    }
    
    # Register the local repository
    Write-Host "Registering local PowerShell repository: $localGallery" -ForegroundColor Green
    $null = Register-PSRepository -Name $localGallery -SourceLocation $galleryPath -ScriptSourceLocation $galleryPath -InstallationPolicy Trusted
    
  2. ローカル リポジトリが正常に作成されたことを確認します。

    # Display all registered repositories
    Get-PSRepository
    

    次のような出力が表示されます。

    Name                      InstallationPolicy   SourceLocation
    ----                      ------------------   --------------
    PSGallery                 Untrusted            https://www.powershellgallery.com/api/v2
    __LocalGallery__          Trusted              C:\LocalPowerShellGallery
    

nupkg ファイルをダウンロードして配置する

nupkg ファイルをダウンロードする

  1. GitHubの Microsoft Entra PowerShell リリース ページに移動します。

  2. インストールするバージョン ( v1.0.11 など) を選択します。

  3. [Assets]\( アセット\ ) セクションで、ニーズに基づいて必要な nupkg ファイルをダウンロードします。

    v1.0 モジュールの場合のみ:

    • Microsoft.Entra.1.0.11.nupkg
    • Microsoft.Entra.Applications.1.0.11.nupkg
    • Microsoft.Entra.Authentication.1.0.11.nupkg
    • Microsoft.Entra.CertificateBasedAuthentication.1.0.11.nupkg
    • Microsoft.Entra.DirectoryManagement.1.0.11.nupkg
    • Microsoft.Entra.Governance.1.0.11.nupkg
    • Microsoft.Entra.Groups.1.0.11.nupkg
    • Microsoft.Entra.Reports.1.0.11.nupkg
    • Microsoft.Entra.SignIns.1.0.11.nupkg
    • Microsoft.Entra.Users.1.0.11.nupkg

    ベータ モジュールの場合: ベータ機能が必要な場合は、対応する .Beta. nupkg ファイルをダウンロードします。

ローカル リポジトリにファイルを配置する

ダウンロードしたすべての nupkg ファイルをローカル ギャラリー フォルダーにコピーします。

# Copy nupkg files to the local gallery
# Replace 'C:\Downloads' with the actual path where you downloaded the files
$downloadPath = 'C:\Downloads'
$nupkgFiles = Get-ChildItem -Path $downloadPath -Filter "Microsoft.Entra*.nupkg"

foreach ($file in $nupkgFiles) {
    Write-Host "Copying $($file.Name) to local gallery" -ForegroundColor Cyan
    Copy-Item -Path $file.FullName -Destination $galleryPath -Force
}

手順 4: Microsoft Entra PowerShell モジュールをインストールする

個々のモジュールをインストールする

モジュールは、特定のニーズに基づいて個別にインストールできます。

# Install a specific module
Install-Module -Name 'Microsoft.Entra.Authentication' -Repository $localGallery -AllowClobber -Verbose

すべてのモジュールをインストールする

使用可能なすべてのMicrosoft Entraモジュールをインストールするには、次のスクリプトを使用します。

# Define the modules to install
$entraModules = @(
    "Microsoft.Entra.Authentication",
    "Microsoft.Entra.Applications",
    "Microsoft.Entra.DirectoryManagement",
    "Microsoft.Entra.Groups",
    "Microsoft.Entra.Governance",
    "Microsoft.Entra.SignIns",
    "Microsoft.Entra.Users",
    "Microsoft.Entra.Reports",
    "Microsoft.Entra.CertificateBasedAuthentication"
)

# Install each module from the local gallery
foreach ($moduleName in $entraModules) {
    Write-Host "[Local Gallery] Installing: $moduleName" -ForegroundColor Green
    Install-Module -Name $moduleName -Repository $localGallery -AllowClobber -Verbose
}

ルート モジュールをインストールする (省略可能)

依存モジュールをインストールした後、必要に応じてルート モジュールをインストールできます。

Install-Module -Name 'Microsoft.Entra' -Repository $localGallery -AllowClobber -Verbose

インストールを検証する

モジュールが正常にインストールされたことを確認します。

# Display all installed Microsoft Entra modules
Get-InstalledModule Microsoft.Entra.*

次のような出力が表示されます。

Version      Name                                            Repository           Description
-------      ----                                            ----------           -----------
1.0.11       Microsoft.Entra.Applications                    __LocalGallery__     Microsoft Entra PowerShell
1.0.11       Microsoft.Entra.Authentication                  __LocalGallery__     Microsoft Entra PowerShell
1.0.11       Microsoft.Entra.CertificateBasedAuthentication  __LocalGallery__     Microsoft Entra PowerShell
1.0.11       Microsoft.Entra.DirectoryManagement             __LocalGallery__     Microsoft Entra PowerShell
1.0.11       Microsoft.Entra.Governance                      __LocalGallery__     Microsoft Entra PowerShell
1.0.11       Microsoft.Entra.Groups                          __LocalGallery__     Microsoft Entra PowerShell
1.0.11       Microsoft.Entra.Reports                         __LocalGallery__     Microsoft Entra PowerShell
1.0.11       Microsoft.Entra.SignIns                         __LocalGallery__     Microsoft Entra PowerShell
1.0.11       Microsoft.Entra.Users                           __LocalGallery__     Microsoft Entra PowerShell

インストールをテストする

Microsoft Entraに接続して、モジュールが正しく動作することをテストします。

# Import the authentication module
Import-Module Microsoft.Entra.Authentication

# Connect to Microsoft Entra (this will require internet connectivity for authentication)
Connect-Entra

# Test with a simple command
Get-EntraContext

クリーンアップ (省略可能)

ローカル リポジトリの登録を解除する

ローカル リポジトリが不要になった場合は、登録を解除できます。

# Unregister the local repository
Unregister-PSRepository -Name $localGallery
Write-Host "Local repository '$localGallery' has been unregistered" -ForegroundColor Yellow

ローカル ギャラリーを完全に削除するには:

# Remove the local gallery folder and its contents
if (Test-Path $galleryPath) {
    Remove-Item -Path $galleryPath -Recurse -Force
    Write-Host "Local gallery folder removed: $galleryPath" -ForegroundColor Yellow
}

Troubleshooting

一般的な問題と解決策

Issue 原因 ソリューション
リポジトリにモジュールが見つかりません nupkg ファイルがローカル ギャラリーにコピーされない ファイルが正しいギャラリー パスに含まれているかどうかを確認する
依存関係がインストールされていない Graph PowerShell モジュールがありません 最初に必要なMicrosoft Graph PowerShell モジュールをインストールする
アクセスが拒否されました アクセス許可が不十分です 管理者として PowerShell を実行する
リポジトリが信頼されていません ローカル リポジトリが信頼済みとしてマークされていない -Forceパラメーターを使用するか、インストール ポリシーを信頼済みに設定する

ローカル リポジトリの内容を確認する

ローカル リポジトリで使用できるパッケージを確認するには:

# List all available packages in the local repository
Find-Module -Repository $localGallery

モジュールの依存関係を確認する

モジュールに必要な依存関係を理解するには:

# Get module dependencies
Find-Module -Name "Microsoft.Entra.Users" -Repository $localGallery | Select-Object -ExpandProperty Dependencies

次のステップ