インターネット アクセスが制限されている環境では、PowerShell モジュールMicrosoft Entraオフラインでインストールすることが必要になる場合があります。 この記事では、ダウンロードしたパッケージ ファイルとローカル リポジトリを使用してモジュールを設定およびインストールする方法について説明します。
オフライン インストールは、次のようなシナリオで役立ちます。
- インターネットに接続できないエアギャップネットワーク
- インターネット アクセスを制限する厳格なセキュリティ ポリシーを持つ組織
- 直接PowerShell ギャラリー アクセスできない環境
前提条件
始める前に、以下のことを確認してください:
- PowerShell 5.1 以降 (PowerShell 7 以降を推奨)
- ターゲット コンピューターに対する管理特権
- インターネットに接続されたダウンロード場所にアクセス して、必要なファイルをダウンロードする
- Microsoft Entra PowerShell リリース ページから署名された nupkg ファイル。
オフライン インストール プロセスの概要
オフライン インストール プロセスには、次の主な手順が含まれます。
- Microsoft Graph PowerShell の依存関係をインストールする
- ローカル PowerShell リポジトリを設定する
- ローカル リポジトリに nupkg ファイルをダウンロードして配置する
- ローカル リポジトリからモジュール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 リポジトリを設定する
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ローカル リポジトリが正常に作成されたことを確認します。
# Display all registered repositories Get-PSRepository次のような出力が表示されます。
Name InstallationPolicy SourceLocation ---- ------------------ -------------- PSGallery Untrusted https://www.powershellgallery.com/api/v2 __LocalGallery__ Trusted C:\LocalPowerShellGallery
nupkg ファイルをダウンロードして配置する
nupkg ファイルをダウンロードする
インストールするバージョン ( v1.0.11 など) を選択します。
[Assets]\( アセット\ ) セクションで、ニーズに基づいて必要な nupkg ファイルをダウンロードします。
v1.0 モジュールの場合のみ:
Microsoft.Entra.1.0.11.nupkgMicrosoft.Entra.Applications.1.0.11.nupkgMicrosoft.Entra.Authentication.1.0.11.nupkgMicrosoft.Entra.CertificateBasedAuthentication.1.0.11.nupkgMicrosoft.Entra.DirectoryManagement.1.0.11.nupkgMicrosoft.Entra.Governance.1.0.11.nupkgMicrosoft.Entra.Groups.1.0.11.nupkgMicrosoft.Entra.Reports.1.0.11.nupkgMicrosoft.Entra.SignIns.1.0.11.nupkgMicrosoft.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