오프라인으로 Microsoft Entra PowerShell 설치

인터넷 액세스가 제한된 환경에서는 오프라인으로 Microsoft Entra PowerShell 모듈을 설치해야 할 수 있습니다. 이 문서에서는 다운로드한 패키지 파일 및 로컬 리포지토리를 사용하여 모듈을 설정하고 설치하는 방법을 설명합니다.

오프라인 설치는 다음과 같은 시나리오에서 유용합니다.

  • 인터넷 연결이 없는 에어갭 네트워크
  • 인터넷 액세스를 제한하는 엄격한 보안 정책을 사용하는 조직
  • 직접 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. 자산 섹션에서 요구 사항에 따라 필요한 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

다음 단계