Instalowanie programu Microsoft Entra PowerShell w trybie offline

W środowiskach z ograniczonym dostępem do Internetu może być konieczne zainstalowanie Microsoft Entra modułów programu PowerShell w trybie offline. W tym artykule wyjaśniono, jak skonfigurować i zainstalować moduły przy użyciu pobranych plików pakietu i repozytorium lokalnego.

Instalacja w trybie offline jest przydatna w takich scenariuszach jak:

  • Sieci fizycznie odizolowane, bez połączenia z internetem
  • Organizacje z rygorystycznymi zasadami zabezpieczeń, które ograniczają dostęp do Internetu
  • Środowiska, w których bezpośredni dostęp Galeria programu PowerShell jest niedostępny

Prerequisites

Zanim zaczniesz, upewnij się, że masz:

  • PowerShell 5.1 lub nowszy (zalecany program PowerShell 7 lub nowszy)
  • Uprawnienia administracyjne na maszynie docelowej
  • Dostęp do lokalizacji pobierania z łącznością internetową w celu pobrania wymaganych plików
  • Podpisane pliki nupkg ze strony wydań programu PowerShell Microsoft Entra.

Omówienie procesu instalacji w trybie offline

Proces instalacji w trybie offline obejmuje następujące główne kroki:

  1. Instalowanie zależności programu PowerShell dla Microsoft Graph
  2. Konfigurowanie lokalnego repozytorium programu PowerShell
  3. Pobieranie i umieszczanie plików nupkg w repozytorium lokalnym
  4. Instalowanie modułów Microsoft Entra z repozytorium lokalnego

Instalowanie zależności programu PowerShell dla Microsoft Graph

Moduły programu PowerShell dla Microsoft Entra zależą od określonych modułów programu Microsoft Graph PowerShell. Te zależności są instalowane automatycznie podczas instalowania z Galeria programu PowerShell, ale w scenariuszach offline należy je zainstalować ręcznie.

Ważna

Należy najpierw zainstalować te zależności na maszynie z dostępem do Internetu lub uzyskać moduły zależności za pośrednictwem zatwierdzonej metody dystrybucji oprogramowania w organizacji.

Uruchom następujący skrypt, aby zainstalować wymagane zależności Microsoft Graph PowerShell. program Microsoft Entra PowerShell obsługuje obecnie wersję 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
}

Konfigurowanie lokalnego repozytorium programu PowerShell

  1. Utwórz lokalne repozytorium programu PowerShell, w którym będą przechowywane pakiety modułów programu Microsoft Entra 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. Sprawdź, czy repozytorium lokalne zostało pomyślnie utworzone:

    # Display all registered repositories
    Get-PSRepository
    

    Powinny zostać wyświetlone dane wyjściowe podobne do następujących:

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

Pobieranie i umieszczanie plików nupkg

Pobieranie plików nupkg

  1. Przejdź do strony wydań programu Microsoft Entra PowerShell w witrynie GitHub.

  2. Wybierz wersję, którą chcesz zainstalować (na przykład 1.0.11).

  3. W sekcji Zasoby pobierz wymagane pliki nupkg w zależności od potrzeb:

    Tylko w przypadku modułów w wersji 1.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

    W przypadku modułów beta: Pobierz odpowiednie .Beta. pliki nupkg, jeśli potrzebujesz funkcji beta.

Umieszczanie plików w repozytorium lokalnym

Skopiuj wszystkie pobrane pliki nupkg do lokalnego folderu galerii:

# 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
}

Krok 4. Instalowanie modułów programu PowerShell Microsoft Entra

Instalowanie poszczególnych modułów

Moduły można instalować indywidualnie w zależności od konkretnych potrzeb:

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

Zainstaluj wszystkie moduły

Aby zainstalować wszystkie dostępne moduły Microsoft Entra, użyj tego skryptu:

# 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
}

Instalowanie modułu głównego (opcjonalnie)

Po zainstalowaniu modułów zależnych można opcjonalnie zainstalować moduł główny:

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

Weryfikowanie instalacji

Sprawdź, czy moduły zostały pomyślnie zainstalowane:

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

Powinny zostać wyświetlone dane wyjściowe podobne do następujących:

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

Testowanie instalacji

Przetestuj, czy moduły działają poprawnie, łącząc się z 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

Oczyszczanie (opcjonalnie)

Wyrejestrowywanie repozytorium lokalnego

Jeśli repozytorium lokalne nie jest już potrzebne, możesz go wyrejestrować:

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

Aby całkowicie usunąć galerię lokalną:

# 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

Typowe problemy i rozwiązania

Problematyka Przyczyna Rozwiązanie
Nie można odnaleźć modułu w repozytorium Pliki nupkg nie są kopiowane do galerii lokalnej Sprawdź, czy pliki znajdują się we właściwej ścieżce galerii
Zależności nie zostały zainstalowane Brak modułów programu PowerShell dla programu Graph Najpierw zainstaluj wymagane moduły programu PowerShell Microsoft Graph
Odmowa dostępu Niewystarczające uprawnienia Uruchamianie programu PowerShell jako administrator
Repozytorium nie jest zaufane Repozytorium lokalne nie jest oznaczone jako zaufane Użyj -Force parametru lub ustaw zasady instalacji na wartość Zaufana

Weryfikowanie zawartości repozytorium lokalnego

Aby zobaczyć, jakie pakiety są dostępne w repozytorium lokalnym:

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

Sprawdzanie zależności modułu

Aby zrozumieć, jakie zależności wymaga moduł:

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

Następne kroki