Instalar o Microsoft Entra PowerShell offline

Em ambientes com acesso restrito à internet, pode ser necessário instalar módulos PowerShell Microsoft Entra offline. Este artigo explica como configurar e instalar os módulos usando ficheiros de pacote descarregados e um repositório local.

A instalação offline é útil em cenários como:

  • Redes isoladas sem ligação à internet
  • Organizações com políticas de segurança rigorosas que restringem o acesso à internet
  • Ambientes onde não está disponível acesso direto ao Galeria do PowerShell

Pré-requisitos

Antes de começar, certifique-se de que tem:

  • PowerShell 5.1 ou superior (recomendado PowerShell 7+)
  • Privilégios administrativos na máquina alvo
  • Acesso ao local de download com conectividade à internet para descarregar os ficheiros necessários
  • Ficheiros .nupkg assinados da página de lançamentos do Microsoft Entra PowerShell.

Visão geral do processo de instalação offline

O processo de instalação offline envolve os seguintes passos principais:

  1. Instalar dependências PowerShell do Microsoft Graph
  2. Configurar um repositório PowerShell local
  3. Descarregar e colocar ficheiros nupkg no repositório local
  4. Instale os módulos Microsoft Entra a partir do repositório local

Instalar dependências PowerShell do Microsoft Graph

Os módulos PowerShell do Microsoft Entra dependem de módulos específicos do Microsoft Graph PowerShell. Estas dependências são instaladas automaticamente ao instalar a partir da Galeria do PowerShell, mas em cenários offline, é necessário instalá-las manualmente.

Important

Deve instalar estas dependências numa máquina com acesso à internet primeiro, ou obter os módulos de dependência através do método de distribuição de software aprovado pela sua organização.

Execute o seguinte script para instalar as dependências necessárias do Microsoft Graph PowerShell. O Microsoft Entra PowerShell suporta atualmente a versão 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
}

Configurar um repositório PowerShell local

  1. Cria um repositório PowerShell local onde vais guardar os pacotes de módulos 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. Verifique se o repositório local foi criado com sucesso:

    # Display all registered repositories
    Get-PSRepository
    

    Deverias ver resultados semelhantes a:

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

Descarregue e coloque ficheiros nupkg

Descarregar ficheiros nupkg

  1. Navegue até à página de lançamentos do Microsoft Entra PowerShell no GitHub.

  2. Escolhe a versão que queres instalar (por exemplo, v1.0.11).

  3. Na secção de Ativos , descarregue os ficheiros nupkg necessários de acordo com as suas necessidades:

    Para módulos v1.0 apenas:

    • 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

    Para módulos Beta: Descarrega os ficheiros nupkg correspondentes .Beta. se precisares de funcionalidade Beta.

Colocar ficheiros no repositório local

Copie todos os ficheiros nupkg descarregados para a pasta da galeria 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
}

Passo 4: Instalar módulos PowerShell Microsoft Entra

Instalar módulos individuais

Pode instalar módulos individualmente com base nas suas necessidades específicas:

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

Instale todos os módulos

Para instalar todos os módulos Microsoft Entra disponíveis, utilize este 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
}

Instalar o módulo raiz (opcional)

Depois de instalar os módulos dependentes, pode, opcionalmente, instalar o módulo raiz:

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

Verificar a instalação

Verifique se os módulos foram instalados com sucesso:

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

Deverias ver resultados semelhantes a:

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

Teste a instalação

Teste se os módulos funcionam corretamente ligando-se ao 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

Limpeza (opcional)

Desregistar o repositório local

Se já não precisares do repositório local, podes des-o registar:

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

Para remover completamente a galeria local:

# 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

Problemas comuns e soluções

Issue Motivo Solução
Módulo não encontrado no repositório ficheiros nupkg não copiados para a galeria local Verificar que os ficheiros estão no caminho correto da galeria
Dependências não instaladas Módulos do Graph PowerShell em falta Instale primeiro os módulos PowerShell Microsoft Graph necessários
Acesso negado Permissões insuficientes Executar o PowerShell como administrador
Repositório não confiável Repositório local não marcado como confiável Usar -Force parâmetro ou definir a política de instalação para Confiável

Verificar o conteúdo do repositório local

Para ver que pacotes estão disponíveis no seu repositório local:

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

Verificar dependências de módulos

Para compreender que dependências um módulo necessita:

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

Passos seguintes