Поделиться через


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

Важный!

Все версии модуля PowerShell Azure Resource Manager (AzureRM) устарели и не поддерживаются. Модуль PowerShell Az теперь является рекомендуемым модулем PowerShell для взаимодействия с Azure и Azure Stack Hub. В этой статье описывается, как приступить к работе с модулем Az PowerShell. Сведения о миграции в модуль Az PowerShell см. в статье Миграция из AzureRM в Azure PowerShell Az в Azure Stack Hub. Дополнительные сведения о расширенных функциональных возможностях модулей Az, которые были приняты в глобальной среде Azure, см. в статье Знакомство с модулем Azure Az PowerShell.

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

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

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

Вы также можете запустить модули Az для Azure Stack Hub в контейнере Docker. Инструкции см. в статье Использование Docker для запуска PowerShell для 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. При установке профиля устанавливаются модули PowerShell Azure Resource Manager, соответствующие указанному профилю.

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

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
    

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

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

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

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

  • Чтобы удалить существующие модули 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
    

    Если возникает ошибка, например "Модуль уже используется", закройте сеансы PowerShell, которые используют модули и повторно запустите эти командлеты.

  • Если 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.

Подключено: установка с подключением к Интернету

Модуль 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, а затем откройте новый сеанс 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
    

Отключено: установка без подключения к Интернету

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

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

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

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

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

  1. Чтобы установить модули Az из надежного веб-репозитория , выполните следующий код:

    [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. Установка модулей AzureStackL

    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

Настройка 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
    

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

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

Дополнительные сведения о перемещении скриптов AzureRM в Az и сведения о критических изменениях в модуле Az в Azure Stack Hub см. в статье Миграция из AzureRM в Azure PowerShell Az.

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

Ошибка, возникаемая при установке модулей 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.
  • Исправление. Используйте шаблон для создания масштабируемого набора виртуальных машин. В репозитории GitHub AzureStack-QuickStart-Templates/101-vmss-windows-vm вы можете найти образец шаблонов диспетчера ресурсов Azure Stack Hub, а также инструкции по использованию Azure Stack Hub Resource Manager с 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.
    

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

  • Исправление. Удалите модуль AzureRM и установите модуль Az. Инструкции см. в статье Установка модуля PowerShell Az для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 с модулем Azure Stack Hub PowerShell версии 2.1.1.
  • Исправление. Удалите все версии AzAccounts и установите только поддерживаемую версию AzAccounts версии 2.2.8.
  • Случай: Частый

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