인터넷 액세스가 제한된 환경에서는 오프라인으로 Microsoft Entra PowerShell 모듈을 설치해야 할 수 있습니다. 이 문서에서는 다운로드한 패키지 파일 및 로컬 리포지토리를 사용하여 모듈을 설정하고 설치하는 방법을 설명합니다.
오프라인 설치는 다음과 같은 시나리오에서 유용합니다.
- 인터넷 연결이 없는 에어갭 네트워크
- 인터넷 액세스를 제한하는 엄격한 보안 정책을 사용하는 조직
- 직접 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)을 선택합니다.
자산 섹션에서 요구 사항에 따라 필요한 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