Instale o módulo PowerShell Az para O Azure Stack Hub

Este artigo explica como instalar o Azure PowerShell Az e compatível com módulos de administrador do Azure Stack Hub utilizando o PowerShellGet. Os módulos Az podem ser instalados nas plataformas Windows, macOS e Linux.

Também pode executar os módulos Az para Azure Stack Hub num recipiente Docker. Para obter instruções, consulte Use Docker para executar PowerShell para Azure Stack Hub.

Se pretender instalar módulos de recursos PowerShell (AzureRM) para O Azure Stack Hub, consulte o módulo PowerShell AzureRM para O Hub Azure Stack.

Importante

Provavelmente não haverá novas libertações de módulos de recursos Azure. Os módulos Azure Resource Modules estão sob suporte apenas para correções críticas. Daqui para a frente haverá apenas lançamentos Az para Azure Stack Hub.

Pode utilizar perfis de API para especificar os pontos finais compatíveis para os fornecedores de recursos Azure Stack Hub.

Os perfis da API fornecem uma forma de gerir as diferenças de versão entre Azure e Azure Stack Hub. Um perfil de versão API é um conjunto de módulos PowerShell do Gestor de Recursos Azure com versões API específicas. Cada plataforma em nuvem tem um conjunto de perfis de versão API suportados. Por exemplo, o Azure Stack Hub suporta uma versão específica de perfil como 2020-09-01-híbrido. Quando instala um perfil, são instalados os módulos PowerShell do Gestor de Recursos Azure que correspondem ao perfil especificado.

Pode instalar módulos PowerShell Az compatíveis com o PowerShell Az em cenários ligados à Internet, parcialmente ligados ou desligados. Este artigo explica-lhe as instruções detalhadas para estes cenários.

1. Verifique os seus pré-requisitos

Os módulos Az são suportados no Azure Stack Hub com Update 2002 ou mais tarde e com as atuais fixações instaladas. Consulte as notas de lançamento do Azure Stack Hub para obter mais informações.

Os módulos Azure PowerShell Az funcionam com o PowerShell 5.1 ou superior em Windows, ou PowerShell Core 6.x e mais tarde em todas as plataformas. Deverá instalar a versão mais recente do PowerShell Core disponível para o seu sistema operativo. Azure PowerShell não tem outros requisitos quando funciona no PowerShell Core.

Para consultar a sua versão do PowerShell, execute o comando:

$PSVersionTable.PSVersion

Pré-requisitos para Windows

Para utilizar o Azure PowerShell no PowerShell 5.1 no Windows:

  1. Atualize para o Windows PowerShell 5.1 se for necessário. Se estiver no Windows 10, já tem o PowerShell 5.1 instalado.
  2. Instale o .NET Framework 4.7.2 ou posterior.
  3. Verifique se tem a versão mais recente do PowerShellGet. Executar os seguintes cmdlets a partir de um pedido elevado:
[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. Pré-requisitos para Linux e Mac

É necessária versão PowerShell Core 6.x ou versão posterior. Siga o link para instruções

3. Desinstalar as versões existentes dos módulos PowerShell do Hub Azure Stack

Antes de instalar a versão necessária, certifique-se de que desinstala qualquer gestor de recursos Azure Stack Hub Azure ou Az PowerShell previamente instalados. Desinstale os módulos utilizando um dos dois métodos seguintes:

  1. Para desinstalar os módulos Azure Resource Manager e Az PowerShell existentes, feche todas as sessões ativas do PowerShell e execute os seguintes cmdlets:

    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
    

    Se atingir um erro como "O módulo já está em uso", feche as sessões PowerShell que estão a utilizar os módulos e reexecute o script acima.

  2. Se o Uninstall-Module não tiver sucesso, elimine todas as pastas que começam com Azure , ou a partir das AzAzs. localizações $env:PSModulePath. Para Windows PowerShell, os locais podem ser C:\Program Files\WindowsPowerShell\ModulesC:\Users\{yourusername}\Documents\WindowsPowerShell\Modules e. . Para o PowerShell Core, as localizações podem ser C:\Program Files\PowerShell\7\Modules e C:\Users\{yourusername}\Documents\PowerShell\Modules . A eliminação destas pastas remove quaisquer módulos Azure PowerShell existentes.

4. Conectado: Instalar com conectividade internet

O módulo Azure Stack Az funcionará com o PowerShell 5.1 ou superior numa máquina Windows, ou PowerShell 6.x ou superior numa plataforma Linux ou macOS. A utilização dos cmdlets do PowerShellGet é o método de instalação preferido. Este método funciona da mesma forma nas plataformas suportadas.

  1. Executar o seguinte comando a partir de uma sessão PowerShell para atualizar PowerShellR para um mínimo da versão 2.2.3

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
    Install-Module PowerShellGet -MinimumVersion 2.2.3 -Force
    
  2. Feche a sessão PowerShell e, em seguida, abra uma nova sessão PowerShell para que a atualização possa produzir efeitos.

  1. Execute o seguinte comando a partir de uma sessão do PowerShell:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
    Install-Module -Name Az.BootStrapper -Force
    Install-AzProfile -Profile 2020-09-01-hybrid -Force
    Install-Module -Name AzureStack -RequiredVersion 2.2.0 
    
  1. Execute o seguinte comando a partir de uma sessão do PowerShell:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
    Install-Module -Name Az.BootStrapper -Force
    Install-AzProfile -Profile 2020-09-01-hybrid -Force
    Install-Module -Name AzureStack -RequiredVersion 2.1.1
    

Aviso

Não é possível instalar os módulos Azure Resource Manager (AzureRM) e Az para Windows ao mesmo tempo. Se precisar de manter o Azure Resource Manager disponível no seu sistema, instale o módulo Az para PowerShell Core 6.x ou mais tarde. Para tal, instale o PowerShell Core 6.x ou posterior e, em seguida, siga estas instruções num terminal do PowerShell Core.

5. Desligado: Instalar sem ligação à Internet

Num cenário desligado, primeiro descarregue os módulos PowerShell para uma máquina que tenha conectividade com a Internet. Em seguida, transfira-os para o Kit de Desenvolvimento da Pilha de Azure Stack (ASDK) para instalação.

Inscreva-se num computador com conectividade na Internet e use os seguintes scripts para descarregar os pacotes Azure Resource Manager e Azure Stack Hub, dependendo da sua versão do Azure Stack Hub.

A instalação tem cinco etapas:

  1. Instale o Azure Stack Hub PowerShell numa máquina conectada.
  2. Ativar funcionalidades adicionais de armazenamento.
  3. Transporte os pacotes PowerShell para a sua estação de trabalho desligada.
  4. Atrapa manualmente o fornecedor NuGet na sua estação de trabalho desligada.
  5. Confirme a instalação da PowerShell.

Instalar Azure Stack Hub PowerShell

Azure Stack Hub 2108 ou mais tarde.

Pode utilizar módulos Azure Resource Manager ou Az. Para O Gestor de Recursos Azure, consulte as instruções no módulo Install PowerShell AzureRM. O seguinte código guarda módulos de um repositório online https://www.powershellgallery.com/ confiável.

[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
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $savedModulesPath -Force -RequiredVersion 2.2.0

Azure Stack Hub 2102.

Pode utilizar módulos Azure Resource Manager ou Az. Para O Gestor de Recursos Azure, consulte as instruções no módulo Install PowerShell AzureRM. O seguinte código guarda módulos de um repositório online https://www.powershellgallery.com/ confiável.

[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
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $savedModulesPath -Force -RequiredVersion 2.1.1

Nota

Em máquinas sem ligação à Internet, recomendamos a execução do seguinte cmdlet para desativar a recolha de dados de telemetria. Pode experimentar uma degradação de desempenho dos cmdlets sem desativar a recolha de dados de telemetria. Isto é aplicável apenas para as máquinas sem conexões de internet

Disable-AzDataCollection

Adicione os seus pacotes à sua estação de trabalho

  1. Copie os pacotes descarregados para um dispositivo USB.

  2. Inscreva-se na estação de trabalho desligada e copie as embalagens do dispositivo USB para um local na estação de trabalho.

  3. Atrapa manualmente o fornecedor NuGet na sua estação de trabalho desligada. Para obter instruções, consulte a máquina manualmente de acesso ao fornecedor NuGet numa máquina que não esteja ligada à internet.

  4. Registe esta localização como o repositório predefinido e instale os AzureRM módulos e AzureStack módulos deste repositório:

 # 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

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

 Install-Module -Name Az -Repository $RepoName -RequiredVersion 2.0.1 -Scope AllUsers
 # 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

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

 Install-Module -Name Az -Repository $RepoName -RequiredVersion 2.0.1 -Scope AllUsers

Confirmar a instalação do PowerShell

Confirme a instalação executando o seguinte comando:

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

6. Configurar o PowerShell para utilizar um servidor proxy

Em cenários que requerem um servidor proxy para aceder à internet, primeiro configura o PowerShell para usar um servidor de procuração existente:

  1. Abra uma linha de comandos elevada do PowerShell.

  2. Execute os seguintes comandos:

    #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. Utilize o módulo Az

Pode utilizar os cmdlets e as amostras de código com base no Azure Resource Manager. No entanto, irá querer alterar o nome dos módulos e cmdlets. Os nomes do módulo foram alterados de modo que AzureRM e Azure se tornar Az , e o mesmo para cmdlets. Por exemplo, o módulo AzureRM.Compute foi renomeado para Az.Compute. New-AzureRMVM tornou-se New-AzVM, e Get-AzureStorageBlob é agora Get-AzStorageBlob.

Para uma discussão e orientação mais aprofundadas para mover o script AzurRM para Az e quebrar as alterações no módulo Az do Azure Stack Hub, consulte Migrar de AzureRM para Azure PowerShell Az.

Problemas conhecidos

Erro lançado ao instalar os módulos Az

  • Aplicável: Esta edição aplica-se a 2002 e mais tarde
  • Causa: Ao instalar o módulo, é lançado um erro. A mensagem de erro começa: Register-PacakgeSource : A parameter cannot be found that matches parameter name. 'PackageManagementProvider'. Ou a mensagem de erro pode incluir o seguinte texto: PackageManagement\Install-Package : Cannot convert value "2.0.1-preview" to type "System.Version". Error: "Input string was not in a correct format."
  • Remediação: Executar o seguinte cmdlet na mesma sessão:
    Install-Module PowershellGet -MinimumVersion 2.3.0 -Force
    Feche a sessão e inicie uma nova sessão elevada da PowerShell.
  • Ocorrência: Comum

Ao instalar o módulo Az lança falsamente os direitos de administração necessários

  • Aplicável: Esta edição aplica-se a 2002 e mais tarde
  • Causa: Ao instalar o módulo a partir de um ponto elevado, é lançado um erro. O erro diz Administrator rights required que. .
  • Remediação: Feche a sessão e inicie uma nova sessão elevada da PowerShell. Certifique-se de que não há um Az existente. Módulo de contas carregado na sessão.
  • Ocorrência: Comum

Cmdlet New-AzVmss falha ao utilizar o perfil híbrido 2020-09-01

  • Aplicável: Esta questão aplica-se ao perfil híbrido 2020-09-01.
  • Causa: O cmdlet New-AzVmss não funciona com o perfil 2020-09-01-híbrido.
  • Remediação: Utilize um modelo para criar conjunto de escala de máquina virtual. Pode encontrar uma amostra dos modelos do Gestor de Recursos do Hub Azure Stack no GitHub Repository AzureStack-QuickStart-Templates/101-vmss-windows-vm e pode encontrar instruções sobre a utilização de Azure Stack Hub Resource Managers com Visual Studio Código.
  • Ocorrência: Comum

Erro lançado ao executar um script PowerShell

  • Aplicável: Esta questão aplica-se a 2002 e mais tarde.

  • Causa: Ao executar scripts ou comandos PowerShell utilizando os módulos específicos do Azure Stack Hub, necessitará do seu script ou comando para estar disponível no módulo. Pode ver o seguinte erro:

    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.
    

    O módulo atual é o módulo PowerShell Az, que substituiu o módulo PowerShell AzureRM. Se tentar executar um script que recorreu aos comandos AzureRM quando o módulo Az estiver instalado, o seu script lançará erros. Ou se tentar executar um script que ligue para os comandos Az quando o módulo AzureRM estiver instalado, o seu script lançará erros.

  • Remediação: Desinstale o módulo AzureRM e instale o módulo Az. Para obter instruções, consulte o módulo PowerShell Az para O Centro de Pilhas Azure. Se estiver a utilizar as ferramentas Azure Stack Hub, utilize as ferramentas Az. Clone as ferramentas repositórios do ramo az, ou descarregue o AzureStack-Tools do ramo az. Para obter instruções, consulte as ferramentas do Azure Stack Hub do GitHub

  • Ocorrência: Comum

Erro atirado com New-AzADServicePrincipal e New-AzADApplication

  • Aplicável: Ambientes Azure Stack utilizando Azure Ative Directory (Azure AD).

  • Causa: Azure Ative Directory Graph introduziu uma alteração de rutura para restringir as IdentifierUri aplicações de Diretório Ativo como subdomínios de um domínio verificado no diretório. Antes da mudança, esta restrição só foi aplicada para as aplicações multi-arrendatários. Agora esta restrição aplica-se também a aplicações de inquilino único. A alteração resultará no seguinte erro: Values of identifierUris property must use a verified domain of the organization or its subdomain' is displayed when running .

  • Remediação: Pode contornar esta restrição de duas formas.

    • Você precisa usar um nome de princípio de serviço que é um subdomínio do inquilino do diretório. Por exemplo, se o diretório contoso.onmicrosoft.com for, o nome principal do serviço tem de ser da forma de <foo>.contoso.onmicrosoft.com . Utilize o seguinte cmdlet:

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

      Para obter mais informações sobre identidade e utilização de diretores de serviços com o Azure Stack Hub, consulte a visão geral dos fornecedores de identidade para O Azure Stack Hub.

    • Crie a aplicação AD AZure que forneça um válido IdentifierUri e, em seguida, crie o principal de serviço associando a app usando o seguinte cmdlet:

      $app=New-AzADApplication -DisplayName 'newapp' -IdentifierUris http://anything.contoso.onmicrosoft.com
      New-AzADServicePrincipal -Role Owner -ApplicationId $app.ApplicationId
      
  • Ocorrência: Comum

Passos seguintes