Установка Microsoft Entra PowerShell в автономном режиме

В средах с ограниченным доступом к Интернету может потребоваться установить Microsoft Entra модули PowerShell в автономном режиме. В этой статье объясняется, как настроить и установить модули с помощью скачанных файлов пакетов и локального репозитория.

Автономная установка полезна в таких сценариях, как:

  • Физически изолированные сети без доступа к Интернету
  • Организации с строгими политиками безопасности, ограничивающими доступ к Интернету
  • Среды, в которых недоступен прямой доступ к коллекция PowerShell

Prerequisites

Прежде чем начать, убедитесь, что у вас есть следующее:

  • PowerShell 5.1 или более поздней версии (рекомендуется PowerShell 7+
  • Права администратора на целевом компьютере
  • Доступ к месту загрузки при наличии подключения к Интернету для загрузки необходимых файлов
  • Подписанные файлы nupkg со страницы выпусков Microsoft Entra PowerShell.

Обзор процесса автономной установки

Процесс автономной установки включает следующие основные действия.

  1. Установите зависимости Microsoft Graph PowerShell
  2. Настройка локального репозитория PowerShell
  3. Скачивание и размещение файлов nupkg в локальном репозитории
  4. Установка модулей Microsoft Entra из локального репозитория

Установите зависимости Microsoft Graph PowerShell

Модули PowerShell для Microsoft Entra зависят от определённых модулей PowerShell Microsoft Graph. Эти зависимости устанавливаются автоматически при установке из коллекция 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. Создайте локальный репозиторий PowerShell, в котором будут храниться пакеты модулей 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. Убедитесь, что локальный репозиторий был успешно создан:

    # Display all registered repositories
    Get-PSRepository
    

    Выходные данные должны выглядеть примерно так:

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

Скачивание и размещение файлов nupkg

Скачивание файлов nupkg

  1. Перейдите на страницу выпусков PowerShell Microsoft Entra на GitHub.

  2. Выберите версию, которую вы хотите установить (например, версии 1.0.11).

  3. В разделе Assets скачайте необходимые файлы nupkg в соответствии с вашими потребностями:

    Только для модулей версии 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

    Для бета-модулей: Скачайте соответствующие .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. Установка модулей PowerShell Microsoft Entra

Установка отдельных модулей

Модули можно устанавливать по отдельности в зависимости от ваших потребностей:

# 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 Причина Solution
Модуль не найден в репозитории файлы nupkg, не скопированные в локальную галерею Убедитесь, что файлы находятся по правильному пути к галерее
Зависимости не установлены Отсутствующие модули PowerShell для Graph Сначала установите необходимые модули PowerShell Microsoft Graph
Доступ запрещен Недостаточно разрешений Запуск PowerShell от имени администратора
Репозиторий не является доверенным Локальный репозиторий не помечен как доверенный Используйте параметр -Force или установите для политики установки значение "Trusted"

Проверка содержимого локального репозитория

Чтобы узнать, какие пакеты доступны в локальном репозитории:

# 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

Дальнейшие действия