Installer Microsoft Entra PowerShell hors connexion

Dans les environnements disposant d’un accès Internet restreint, vous devrez peut-être installer Microsoft Entra modules PowerShell hors connexion. Cet article explique comment configurer et installer les modules à l’aide de fichiers de package téléchargés et d’un référentiel local.

L’installation hors connexion est utile dans des scénarios tels que :

  • Réseaux isolés physiquement sans connexion à Internet
  • Organisations avec des stratégies de sécurité strictes qui limitent l’accès à Internet
  • Environnements où l’accès direct PowerShell Gallery n’est pas disponible

Prerequisites

Avant de commencer, assurez-vous d’avoir :

  • PowerShell 5.1 ou version ultérieure (Recommandé pour PowerShell 7+ )
  • Privilèges d’administration sur l’ordinateur cible
  • Accès à l’emplacement de téléchargement avec une connectivité Internet pour télécharger les fichiers requis
  • Fichiers nupkg signés disponibles sur la page des versions de Microsoft Entra PowerShell.

Vue d’ensemble du processus d’installation hors connexion

Le processus d’installation hors connexion implique les étapes principales suivantes :

  1. Installer les dépendances PowerShell de Microsoft Graph
  2. Configurer un référentiel PowerShell local
  3. Télécharger et placer des fichiers nupkg dans le référentiel local
  4. Installer Microsoft Entra modules à partir du référentiel local

Installez les dépendances PowerShell de Microsoft Graph

Les modules PowerShell Microsoft Entra dépendent de modules PowerShell Microsoft Graph spécifiques. Ces dépendances sont automatiquement installées lors de l’installation à partir du PowerShell Gallery, mais dans les scénarios hors connexion, vous devez les installer manuellement.

Important

Vous devez d’abord installer ces dépendances sur un ordinateur disposant d’un accès Internet ou obtenir les modules de dépendance par le biais de la méthode de distribution logicielle approuvée de votre organisation.

Exécutez le script suivant pour installer les dépendances requises de Microsoft Graph PowerShell. Microsoft Entra PowerShell prend actuellement en charge la version 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
}

Configurer un référentiel PowerShell local

  1. Créez un référentiel PowerShell local dans lequel vous allez stocker les packages de module PowerShell Microsoft Entra.

    # 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. Vérifiez que le référentiel local a été créé correctement :

    # Display all registered repositories
    Get-PSRepository
    

    Vous devez voir un résultat similaire à :

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

Télécharger et placer des fichiers nupkg

Télécharger des fichiers nupkg

  1. Accédez à la page des versions de Microsoft Entra PowerShell sur GitHub.

  2. Choisissez la version que vous souhaitez installer (par exemple, v1.0.11).

  3. Dans la section Ressources , téléchargez les fichiers nupkg requis en fonction de vos besoins :

    Pour les modules v1.0 uniquement :

    • 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

    Pour les modules bêta : Téléchargez les fichiers nupkg correspondants .Beta. si vous avez besoin de fonctionnalités bêta.

Placer des fichiers dans le référentiel local

Copiez tous les fichiers nupkg téléchargés dans votre dossier de galerie local :

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

Étape 4 : Installer Microsoft Entra modules PowerShell

Installer des modules individuels

Vous pouvez installer des modules individuellement en fonction de vos besoins spécifiques :

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

Installer tous les modules

Pour installer tous les modules Microsoft Entra disponibles, utilisez ce script :

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

Installer le module racine (facultatif)

Après avoir installé les modules dépendants, vous pouvez éventuellement installer le module racine :

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

Vérifier l’installation

Vérifiez que les modules ont été installés correctement :

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

Vous devez voir un résultat similaire à :

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

Tester l’installation

Testez que les modules fonctionnent correctement en vous connectant à 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

Nettoyage (facultatif)

Désinscrire le référentiel local

Si vous n’avez plus besoin du référentiel local, vous pouvez le désinscrire :

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

Pour supprimer complètement la galerie locale :

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

Résolution des problèmes

Problèmes courants et solutions

Problème Cause Solution
Module introuvable dans le référentiel fichiers nupkg non copiés dans la galerie locale Vérifier que les fichiers sont dans le chemin d’accès correct de la galerie
Dépendances non installées modules PowerShell Graph manquants Installez d’abord les modules Microsoft Graph PowerShell requis
Accès refusé Autorisations insuffisantes Exécuter PowerShell en tant qu’administrateur
Référentiel non approuvé Dépôt local non marqué comme fiable Utilisez le paramètre -Force ou définissez la stratégie d’installation sur « Approuvée »

Vérifier le contenu du référentiel local

Pour voir quels packages sont disponibles dans votre référentiel local :

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

Vérifier les dépendances de module

Pour comprendre les dépendances requises par un module :

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

Étapes suivantes