Установка модулей PowerShell Az и Azure Stack для Azure Stack Hub

Версия Azure Stack Hub Версия AzureStack PowerShell
2102 2.1.1
2108 2.2.0
2206 2.3.0
2301+ 2.4.0

Дополнительные сведения о модулях AzureStack см. в разделе PSGallery.

В этой статье показано, как установить модуль Az Azure PowerShell и совместимые модули Azure Stack Hub для администраторов с помощью PowerShellGet. Модули Az можно установить на платформах Windows, macOS и Linux.

Вы также можете запустить модули Az для Azure Stack Hub в контейнере Docker. Инструкции см. в статье Использование Docker для запуска PowerShell для Azure Stack Hub.

Если вы хотите установить модуль PowerShell Resource Modules (AzureRM) для Azure Stack Hub, см. статью Установка модуля PowerShell AzureRM для Azure Stack Hub.

Важно!

Новые выпуски модулей ресурсов Azure не будут. Модули ресурсов Azure поддерживаются только для критически важных исправлений. В дальнейшем выпуски Az будут доступны только для Azure Stack Hub.

Можно использовать профили API, чтобы указать совместимые конечные точки для поставщиков ресурсов Azure Stack Hub.

Профили API позволяют управлять различиями между версиями Azure и Azure Stack Hub. Профиль версии API — это набор модулей Azure Resource Manager PowerShell с определенными версиями API. Каждая облачная платформа имеет набор поддерживаемых профилей версий API. Например, Azure Stack Hub поддерживает определенную версию профиля, например 2020-09-01-hybrid. При установке профиля устанавливается набор модулей Azure Resource Manager PowerShell, которые соответствуют выбранному профилю.

Вы можете установить совместимые модули Az PowerShell для Azure Stack Hub в сценариях с полноценным, частичным и отсутствующим подключением к Интернету. В этой статье рассматриваются подробные инструкции для этих сценариев.

1. Проверка необходимых компонентов

Модули Az поддерживаются в Azure Stack Hub с обновлением 2002 или более поздней версии и с установленными текущими исправлениями. Дополнительные сведения см. в заметках о выпуске Azure Stack Hub .

Модули Azure PowerShell Az работают с PowerShell 5.1 или более поздней версии в Windows или PowerShell Core 6.x и более поздних версий на всех платформах. Необходимо установить последнюю версию PowerShell Core для вашей операционной системы. Azure PowerShell не имеет других требований при запуске в PowerShell Core.

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

$PSVersionTable.PSVersion

Предварительные требования для Windows

Чтобы использовать Azure PowerShell в PowerShell 5.1 в Windows, сделайте следующее:

  1. При необходимости выполните обновление до Windows PowerShell 5.1. Если вы используете Windows 10, среда PowerShell 5.1 уже установлена.

  2. Установите платформу .NET Framework версии 4.7.2 или более поздней.

  3. Убедитесь, что у вас установлена последняя версия PowerShellGet. Выполните следующие командлеты из командной строки с повышенными привилегиями:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
    powershell -noprofile
    $PSVersionTable
    Uninstall-Module PowershellGet -AllVersions -Force -Confirm:$false
    Get-module PowershellGet
    Find-module PowershellGet
    Install-Module PowershellGet -MinimumVersion 2.2.3 -Force
    

2. Предварительные требования для Linux и Mac

PowerShell Core 6. x или более поздней версии. См. инструкции.

3. Удаление существующих версий модулей PowerShell для Azure Stack Hub

Перед установкой необходимой версии убедитесь, что вы удалили все ранее установленные модули Azure Resource Manager Azure Stack Hub или Az PowerShell. Удалите модули с помощью одного из следующих двух способов.

  1. Чтобы удалить существующие модули Azure Resource Manager и Az PowerShell, закройте все активные сеансы PowerShell и выполните следующие командлеты:

    Get-Module -Name Azure* -ListAvailable | Uninstall-Module -Force -Verbose -ErrorAction Continue
    Get-Module -Name Azs.* -ListAvailable | Uninstall-Module -Force -Verbose -ErrorAction Continue
    Get-Module -Name Az.* -ListAvailable | Uninstall-Module -Force -Verbose -ErrorAction Continue
    

    Если возникает ошибка, например The module is already in use (Модуль уже используется), закройте сеансы PowerShell, которые используют модули, и повторно запустите приведенный выше скрипт.

  2. Если Uninstall-Module не удалось, удалите все папки, начинающиеся с Azure, Azили Azs. , из расположений $env:PSModulePath. Для Windows PowerShell расположениями могут быть C:\Program Files\WindowsPowerShell\Modules и C:\Users\{yourusername}\Documents\WindowsPowerShell\Modules. Для PowerShell Core расположениями могут быть C:\Program Files\PowerShell\7\Modules и C:\Users\{yourusername}\Documents\PowerShell\Modules. При удалении этих папок удаляются все существующие модули Azure PowerShell.

4. С подключением. Установка при наличии подключения к Интернету

Модуль Azure Stack Az будет работать с PowerShell 5.1 или более поздней версии на компьютере с Windows или PowerShell 6.x или более поздней версии на платформе Linux или macOS. Использование командлетов PowerShellGet — предпочтительный метод установки. Этот метод работает одинаково на всех поддерживаемых платформах.

  1. Выполните следующую команду из сеанса PowerShell, чтобы обновить PowerShellGet до версии не ниже 2.2.3.

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    Install-Module PowerShellGet -MinimumVersion 2.2.3 -Force
    
  2. Закройте сеанс PowerShell, а затем откройте новый, чтобы обновление вступило в силу.

  3. Выполните следующую команду, чтобы установить модули Az.

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    Install-Module -Name Az.BootStrapper -Force
    Install-AzProfile -Profile 2020-09-01-hybrid -Force
    
  4. Установите модули AzureStack PowerShell.

    Install-Module -Name AzureStack -RequiredVersion 2.4.0
    
    Install-Module -Name AzureStack -RequiredVersion 2.3.0
    
    Install-Module -Name AzureStack -RequiredVersion 2.2.0
    
    Install-Module -Name AzureStack -RequiredVersion 2.1.1
    

Предупреждение

Вы не можете одновременно установить модули Azure Resource Manager (AzureRM) и Az для PowerShell 5.1 для Windows. Если вам нужно обеспечить доступность Resource Manager Azure в системе, установите модуль Az для PowerShell Core 6.x или более поздней версии. Чтобы сделать это, установите PowerShell Core версии 6.x или более поздней, а затем следуйте инструкциям в окне терминала PowerShell Core.

5. Без подключения. Установка без подключения к Интернету

При установке без подключения к Интернету следует сначала скачать модули PowerShell на компьютер, подключенный к Интернету. Затем их нужно перенести в Пакет средств разработки Azure Stack (ASDK) для установки.

Войдите на компьютер с подключением к Интернету и, в зависимости от используемой версии Azure Stack Hub, выполните следующие сценарии для скачивания пакетов Azure Resource Manager и Azure Stack Hub.

Установка состоит из пяти шагов:

  1. Установка PowerShell для Azure Stack Hub на компьютер с подключением к Интернету.
  2. Включение дополнительных возможностей хранилища.
  3. Передача пакетов PowerShell на рабочую станцию без подключения к Интернету.
  4. Начальная загрузка поставщика NuGet, выполняемая вручную на отключенной рабочей станции
  5. Подтверждение установки PowerShell.

Установка PowerShell для Azure Stack Hub

  1. Можно использовать модули AzureRM или Az . Следующий код сохраняет модули Az из надежного сетевого репозитория https://www.powershellgallery.com/.

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    Install-module -Name PowerShellGet -MinimumVersion 2.2.3 -Force
    Import-Module -Name PackageManagement -ErrorAction Stop
    $savedModulesPath = "<Path that is used to save the packages>"
    Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name Az -Path $savedModulesPath -Force -RequiredVersion 2.0.1
    
  2. После установки модулей Az перейдите к установке модулей AzureStack.

    Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $savedModulesPath -Force -RequiredVersion 2.4.0
    
    Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $savedModulesPath -Force -RequiredVersion 2.3.0
    
    Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $savedModulesPath -Force -RequiredVersion 2.2.0
    
    Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $savedModulesPath -Force -RequiredVersion 2.1.1
    

Примечание

На компьютерах без подключения к Интернету советуем выполнить приведенный ниже командлет для отключения сбора данных телеметрии. Без выключения сбора данных телеметрии может произойти снижение производительности командлетов. Это относится только к компьютерам без подключения к Интернету.

Disable-AzDataCollection

Добавление пакетов на рабочую станцию

  1. Скопируйте скачанные пакеты на USB-устройство.

  2. Войдите на отключенную рабочую станцию и скопируйте пакеты с USB-устройства в нужное расположение на ней.

  3. Начальная загрузка поставщика NuGet, выполняемая вручную на отключенной рабочей станции Инструкции см. в разделе Ручной режим начальной загрузки поставщика NuGet на автономный компьютер.

  4. Зарегистрируйте это расположение в качестве репозитория по умолчанию и установите AzureRM модули и AzureStack из этого репозитория:

     # requires -Version 5
     # requires -RunAsAdministrator
     # requires -Module PowerShellGet
     # requires -Module PackageManagement
    
     $SourceLocation = "<Location on the development kit that contains the PowerShell packages>"
     $RepoName = "MyNuGetSource"
     [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
     Register-PSRepository -Name $RepoName -SourceLocation $SourceLocation -InstallationPolicy Trusted
    
  5. Установите модули Az.

     Install-Module -Name Az -Repository $RepoName -RequiredVersion 2.0.1 -Scope AllUsers
    
  6. Установите модули AzureStack.

    Install-Module -Name AzureStack -Repository $RepoName -RequiredVersion 2.4.0 -Scope AllUsers
    
    Install-Module -Name AzureStack -Repository $RepoName -RequiredVersion 2.3.0 -Scope AllUsers
    
    Install-Module -Name AzureStack -Repository $RepoName -RequiredVersion 2.2.0 -Scope AllUsers
    
    Install-Module -Name AzureStack -Repository $RepoName -RequiredVersion 2.1.1 -Scope AllUsers
    

Подтверждение установки PowerShell

Подтвердите установку, выполнив следующую команду:

Get-Module -Name "Az*" -ListAvailable
Get-Module -Name "Azs*" -ListAvailable

6. Настройка PowerShell для использования прокси-сервера

Если для доступа к Интернету требуется прокси-сервер, необходимо сначала настроить PowerShell для использования имеющегося прокси-сервера.

  1. Откройте командную строку PowerShell с повышенными привилегиями.

  2. Выполните следующие команды:

    #To use Windows credentials for proxy authentication
    [System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
    
    #Alternatively, to prompt for separate credentials that can be used for #proxy authentication
    [System.Net.WebRequest]::DefaultWebProxy.Credentials = Get-Credential
    

7. Использование модуля Az

Вы можете использовать командлеты и примеры кода на основе модулей AzureRM. Но вам наверняка захочется изменить имена этих модулей и командлетов. Имена модулей были изменены таким образом, что AzureRM в сочетании с Azure становится Az. Это же справедливо и для командлетов. Например, модуль AzureRM.Compute был переименован в Az.Compute. New-AzureRMVM теперь называется New-AzVM, а Get-AzureStorageBlobGet-AzStorageBlob.

См. подробное обсуждение и рекомендации по переносу скриптов AzureRM на Az, а также сведения о критических изменениях в модуле Az Azure Stack Hub в руководстве по миграции с AzureRM на Az Azure PowerShell.

Известные проблемы

Ошибка, возникаемая при установке модулей Az

  • Применимо: эта проблема относится к версии 2002 и более поздних версий.
  • Причина. При установке модуля возникает ошибка. Сообщение об ошибке начинается: Register-PacakgeSource : A parameter cannot be found that matches parameter name. 'PackageManagementProvider'. Или сообщение об ошибке может содержать следующий текст: PackageManagement\Install-Package : Cannot convert value "2.0.1-preview" to type "System.Version". Error: "Input string was not in a correct format."
  • Исправление. Выполните следующий командлет в том же сеансе:
    Install-Module PowershellGet -MinimumVersion 2.3.0 -Force
    Закройте сеанс и запустите новый сеанс PowerShell с повышенными привилегиями.
  • Периодичность. Распространенные

При установке модуля Az выдает ошибку Администратор необходимых прав

  • Применимо: эта проблема относится к версии 2002 и более поздних версий.
  • Причина. При установке модуля из командной строки с повышенными привилегиями возникает ошибка. Ошибка: Administrator rights required.
  • Исправление. Закройте сеанс и запустите новый сеанс PowerShell с повышенными привилегиями. Убедитесь, что az не существует. Модуль учетных записей, загруженный в сеансе.
  • Периодичность. Распространенные

Сбой New-AzVmss командлета при использовании профиля 2020-09-01-hybrid

  • Применимо. Эта проблема относится к профилю 2020-09-01-hybrid.
  • Причина. Командлет New-AzVmss не работает с профилем 2020-09-01-hybrid.
  • Исправление. Используйте шаблон для создания масштабируемого набора виртуальных машин. Пример шаблонов azure Stack Hub Resource Manager можно найти в репозитории GitHub AzureStack-QuickStart-Templates/101-vmss-windows-vm и инструкции по использованию диспетчеров ресурсов Azure Stack Hub с Visual Studio Code.
  • Периодичность. Распространенные

Ошибка, возникающая при выполнении скрипта PowerShell

  • Применимо. Эта проблема относится к выпуску 2002 и более поздним версиям.

  • Причина. При выполнении скриптов или команд PowerShell с помощью определенных модулей Azure Stack Hub вам потребуется, чтобы скрипт или команда были доступны в модуле. Вы можете получать следующую ошибку:

    Method 'get_SerializationSettings' in type 'Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient' from assembly 'Microsoft.Azure.Commands.ResourceManager.Common, Version=4.0.0.0, 
    Culture=neutral, PublicKeyToken=31bf3856ad364e35' does not have an implementation.
    

    Текущий модуль — это модуль Az PowerShell, который заменил модуль AzureRM для PowerShell. При попытке запустить скрипт, который вызывает команды AzureRM при установке модуля Az, сценарий вызовет ошибки. Или при попытке запустить скрипт, который вызывает команды Az при установке модуля AzureRM, сценарий вызовет ошибки.

  • Исправление. Удалите модуль AzureRM и установите модуль Az. Инструкции см. в статье Установка модуля Az PowerShell для Azure Stack Hub. Если вы используете средства Azure Stack Hub, используйте средства Az. Клонируйте репозиторий инструментов из az branch или скачайте AzureStack-Tools из az branch. Инструкции см. в статье Скачивание средств Azure Stack Hub с сайта GitHub.

  • Периодичность. Распространенные

Ошибка, возникаемая при New-AzADServicePrincipal и New-AzADApplication

  • Применимо: среды Azure Stack, использующие Microsoft Entra ID.

  • Причина. В Azure Active Directory Graph появилось критическое изменение, ограничивающее IdentifierUri для приложений Active Directory поддомены проверенного домена в каталоге. До изменения это ограничение применялось только для мультитенантных приложений. Теперь это ограничение применяется и к приложениям с одним клиентом. Изменение приведет к следующей ошибке: Values of identifierUris property must use a verified domain of the organization or its subdomain' is displayed when running.

  • Исправление. Обойти это ограничение можно двумя способами.

    • Необходимо использовать имя субъекта-службы, которое является поддоменом клиента каталога. Например, если каталог имеет значение contoso.onmicrosoft.com, имя субъекта-службы должно иметь вид <foo>.contoso.onmicrosoft.com. Выполните следующий командлет:

      New-AzADServicePrincipal -Role Owner -DisplayName <foo>.contoso.onmicrosoft.com
      

      Дополнительные сведения об удостоверении и использовании субъектов-служб с Azure Stack Hub см. в статье Общие сведения о поставщиках удостоверений для Azure Stack Hub.

    • Создайте приложение Microsoft Entra, указав допустимоеIdentifierUri, а затем создайте субъект-службу, связыв его с помощью следующего командлета:

      $app=New-AzADApplication -DisplayName 'newapp' -IdentifierUris http://anything.contoso.onmicrosoft.com
      New-AzADServicePrincipal -Role Owner -ApplicationId $app.ApplicationId
      
  • Периодичность. Распространенные

Ошибка: "Сбой проверки подлинности SharedTokenCacheCredential"

  • Применимо. Данная проблема касается всех поддерживаемых выпусков.
  • Причина. Ошибка проверки подлинности SharedTokenCacheCredential возникает при установке нескольких версий AzAccounts с модулем PowerShell azure Stack Hub версии 2.1.1.
  • Исправление. Удалите все версии AzAccounts и установите только поддерживаемую версию AzAccounts 2.2.8.
  • Периодичность. Распространенные

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