Condividi tramite


Installare moduli Az di PowerShell e Azure Stack per l'hub di Azure Stack

Importante

Tutte le versioni del modulo PowerShell di Azure Resource Manager (AzureRM) non sono aggiornate e non supportate. Il modulo Az PowerShell è ora il modulo PowerShell consigliato per l'interazione con Azure e l'hub di Azure Stack. Questo articolo descrive come iniziare a usare il modulo Az PowerShell. Per informazioni su come eseguire la migrazione al modulo Az PowerShell, vedere Eseguire la migrazione da AzureRM ad Azure PowerShell Az nell'hub di Azure Stack. Per informazioni dettagliate sull'aumento delle funzionalità dei moduli Az, che sono stati adottati in Azure globale, vedere Introduzione al modulo Azure Az PowerShell.

Versione dell'hub di Azure Stack Versione di AzureStack PowerShell
2102 2.1.1
2108 2.2.0
2206 2.3.0
2301+ 2.4.0

Per altre informazioni sui moduli di AzureStack, vedere PSGallery.

Questo articolo illustra come installare i moduli az di Azure PowerShell e amministratori dell'hub di Azure Stack compatibili usando PowerShellGet. È possibile installare i moduli Az nelle piattaforme Windows, macOS e Linux.

È anche possibile eseguire i moduli Az per l'hub di Azure Stack in un contenitore Docker. Per istruzioni, vedere Usare Docker per eseguire PowerShell per l'hub di Azure Stack.

È possibile usare i profili API per specificare gli endpoint compatibili per i provider di risorse dell'hub di Azure Stack. I profili API consentono di gestire le differenze di versione tra Azure e l'hub di Azure Stack. Un profilo di versione dell'API è un set di moduli di PowerShell di Azure Resource Manager con versioni API specifiche. Ogni piattaforma cloud ha un set di profili di versione dell'API supportati. Ad esempio, l'hub di Azure Stack supporta una versione specifica del profilo, ad esempio 2020-09-01-hybrid. Quando si installa un profilo, vengono installati i moduli di PowerShell di Azure Resource Manager corrispondenti al profilo specificato.

È possibile installare moduli PowerShell Az compatibili con l'hub di Azure Stack in scenari connessi a Internet, parzialmente connessi o disconnessi. Questo articolo illustra le istruzioni dettagliate per questi scenari.

Verifica i prerequisiti

I moduli Az sono supportati nell'hub di Azure Stack con l'aggiornamento 2002 o versione successiva e con tutti gli hotfix correnti installati. Per ulteriori informazioni, consultare le note sulla versione di Azure Stack Hub.

I moduli Az di Azure PowerShell funzionano con PowerShell 5.1 o versione successiva in Windows o PowerShell Core 6.x e versioni successive in tutte le piattaforme. È necessario installare la versione più recente di PowerShell Core disponibile per il sistema operativo. Azure PowerShell non ha altri requisiti quando viene eseguito in PowerShell Core.

Per controllare la versione di PowerShell, eseguire il comando seguente:

$PSVersionTable.PSVersion

Prerequisiti per Windows

Per usare Azure PowerShell in PowerShell 5.1 in Windows:

  1. Se necessario, eseguire l'aggiornamento a Windows PowerShell 5.1 . Se si usa Windows 10, è già installato PowerShell 5.1.

  2. Installare .NET Framework 4.7.2 o versione successiva.

  3. Assicurarsi di avere la versione più recente di PowerShellGet. Eseguire i cmdlet seguenti da un prompt con privilegi elevati:

    [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
    

Prerequisiti per Linux e Mac

È necessaria la versione di PowerShell Core 6.x o successiva. Seguire il collegamento per istruzioni.

Disinstallare le versioni esistenti dei moduli powerShell dell'hub di Azure Stack

Prima di installare la versione necessaria, assicurarsi di disinstallare tutti i moduli azure Resource Manager dell'hub di Azure Stack installati in precedenza o Az PowerShell. Disinstallare i moduli usando uno dei due metodi seguenti:

  • Per disinstallare i moduli di Azure Resource Manager e Az PowerShell esistenti, chiudere tutte le sessioni di PowerShell attive ed eseguire i cmdlet seguenti:

    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 si verifica un errore, ad esempio "Il modulo è già in uso", chiudere le sessioni di PowerShell che usano i moduli ed eseguire nuovamente questi cmdlet.

  • Se Uninstall-Module non ha avuto successo, eliminare tutte le cartelle che iniziano con Azure, Az o Azs dalle $env:PSModulePath posizioni. Per Windows PowerShell, i percorsi potrebbero essere C:\Program Files\WindowsPowerShell\Modules e C:\Users\{yourusername}\Documents\WindowsPowerShell\Modules. Per PowerShell Core, le posizioni potrebbero essere C:\Program Files\PowerShell\7\Modules e C:\Users\{yourusername}\Documents\PowerShell\Modules. L'eliminazione di queste cartelle rimuove tutti i moduli di Azure PowerShell esistenti.

Connesso: installare con connettività Internet

Il modulo Az di Azure Stack funziona con PowerShell 5.1 o versione successiva in un computer Windows o powerShell 6.x o versione successiva in una piattaforma Linux o macOS. L'uso dei cmdlet PowerShellGet è il metodo di installazione preferito. Questo metodo funziona allo stesso modo nelle piattaforme supportate.

  1. Eseguire il comando seguente da una sessione di PowerShell per aggiornare PowerShellGet almeno alla versione 2.2.3:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    Install-Module PowerShellGet -MinimumVersion 2.2.3 -Force
    
  2. Chiudere la sessione di PowerShell, quindi aprire una nuova sessione di PowerShell in modo che l'aggiornamento possa essere applicato.

  3. Eseguire i comandi seguenti per installare i moduli Az:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    Install-Module -Name Az.BootStrapper -Force
    Install-AzProfile -Profile 2020-09-01-hybrid -Force
    
  4. Installare i moduli di 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
    

Disconnesso: installazione senza connessione Internet

In uno scenario disconnesso, scaricare prima i moduli di PowerShell in un computer con connettività Internet. Quindi, è possibile trasferirli ad Azure Stack Development Kit (ASDK) per l'installazione.

Accedere a un computer con connettività Internet e usare gli script seguenti per scaricare i pacchetti di Azure Resource Manager e dell'hub di Azure Stack, a seconda della versione dell'hub di Azure Stack.

L'installazione prevede cinque passaggi:

  1. Installare PowerShell dell'hub di Azure Stack in un computer connesso.
  2. Abilitare funzionalità di archiviazione aggiuntive.
  3. Trasferire i pacchetti di PowerShell nella workstation disconnessa.
  4. Eseguire manualmente l'inizializzazione del provider NuGet sulla workstation disconnessa.
  5. Confermare l'installazione di PowerShell.

Installare PowerShell per l'hub di Azure Stack

  1. Il codice seguente installa i moduli Az dal repository online affidabile:

    [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. Dopo aver installato i moduli Az, procedere con l'installazione dei moduli di 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
    

Annotazioni

Nei computer senza connessione Internet è consigliabile eseguire il cmdlet Disable-AzDataCollection per disabilitare la raccolta dei dati di telemetria. In caso contrario, è possibile che si verifichi una riduzione delle prestazioni dei cmdlet. Questo è applicabile solo per i computer senza connessione Internet.

Aggiungi i pacchetti alla tua workstation

  1. Copiare i pacchetti scaricati in un dispositivo USB.

  2. Accedere alla workstation disconnessa e copiare i pacchetti dal dispositivo USB in una posizione sulla workstation.

  3. Eseguire manualmente l'inizializzazione del provider NuGet sulla workstation disconnessa. Per le istruzioni, vedere Avvio manuale del provider NuGet in un computer che non è connesso a Internet.

  4. Registrare questa posizione come archivio predefinito e installare i moduli AzureRM e AzureStack da questo archivio:

     # 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. Installare i moduli Az.

     Install-Module -Name Az -Repository $RepoName -RequiredVersion 2.0.1 -Scope AllUsers
    
  6. Installare i moduli di 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
    

Confermare l'installazione di PowerShell

Verificare l'installazione eseguendo il comando seguente:

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

Configurare PowerShell per l'uso di un server proxy

Negli scenari che richiedono un server proxy per accedere a Internet, è prima necessario configurare PowerShell per l'uso di un server proxy esistente:

  1. Aprire un prompt di PowerShell con privilegi elevati.

  2. Eseguire i comandi seguenti:

    #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
    

Usare il modulo Az

È comunque possibile usare i cmdlet e gli esempi di codice basati sui moduli AzureRM. È tuttavia necessario modificare il nome dei moduli e dei cmdlet. I nomi dei moduli sono stati modificati in modo che AzureRM e Azure diventi Aze lo stesso per i cmdlet. Ad esempio, il AzureRM.Compute modulo è stato rinominato in Az.Compute. New-AzureRMVM è New-AzVMe Get-AzureStorageBlob ora è Get-AzStorageBlob.

Per una discussione più approfondita e indicazioni per lo spostamento di script AzureRM in Az e informazioni sulle modifiche di rilievo nel modulo Az dell'hub di Azure Stack, vedere Eseguire la migrazione da AzureRM ad Azure PowerShell Az.

Problemi noti

Errore generato durante l'installazione dei moduli Az

  • Applicabile: questo problema si applica al 2002 e versioni successive
  • Causa: quando si installa il modulo, viene generato un errore. Il messaggio di errore inizia: Register-PacakgeSource : A parameter cannot be found that matches parameter name. 'PackageManagementProvider'. oppure il messaggio di errore può includere il testo seguente: PackageManagement\Install-Package : Cannot convert value "2.0.1-preview" to type "System.Version". Error: "Input string was not in a correct format."
  • Correzione: eseguire il cmdlet seguente nella stessa sessione:
    Install-Module PowershellGet -MinimumVersion 2.3.0 -Force
    Chiudere la sessione e avviare una nuova sessione di PowerShell con privilegi elevati.
  • Occorrenza: comune

Quando si installa il modulo Az falsemente viene generato un errore di errore obbligatorio per i diritti di amministratore

  • Applicabile: questo problema si applica al 2002 e versioni successive
  • Causa: quando si installa il modulo da un prompt con privilegi elevati, viene generato un errore. L'errore indica , Administrator rights required.
  • Correzione: chiudere la sessione e avviare una nuova sessione di PowerShell con privilegi elevati. Assicurarsi che non esista un'istanza di Az esistente. Modulo Accounts caricato nella sessione.
  • Occorrenza: comune

Il cmdlet New-AzVmss fallisce quando si utilizza il profilo ibrido 01-09-2020

  • Applicabile: il problema si applica al profilo ibrido del 2020-09-01.
  • Causa: il cmdlet New-AzVmss non funziona con il profilo ibrido 2020-09-01.
  • Correzione: usare un modello per la creazione di un set di scalabilità di macchine virtuali. È possibile trovare un esempio dei modelli di Azure Stack Hub Resource Manager nel repository GitHub AzureStack-QuickStart-Templates/101-vmss-windows-vm ed è possibile trovare istruzioni sull'uso di Azure Stack Hub Resource Manager con Visual Studio Code.
  • Occorrenza: comune

Errore generato durante l'esecuzione di uno script di PowerShell

  • Applicabile: questo problema si applica al 2002 e versioni successive.

  • Causa: quando si eseguono script o comandi di PowerShell usando moduli specifici dell'hub di Azure Stack, è necessario che lo script o il comando siano disponibili nel modulo. È possibile che venga visualizzato l'errore seguente:

    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.
    

    Il modulo corrente è il modulo Az di PowerShell, che ha sostituito il modulo AzureRM di PowerShell. Se si tenta di eseguire uno script che chiama i comandi di AzureRM quando viene installato il modulo Az, lo script genererà errori. In alternativa, se si tenta di eseguire uno script che chiama i comandi Az quando viene installato il modulo AzureRM, lo script genererà errori.

  • Correzione: disinstallare il modulo AzureRM e installare il modulo Az. Per istruzioni, vedere Installare il modulo Az di PowerShell per l'hub di Azure Stack. Se si usano gli strumenti dell'hub di Azure Stack, usare gli strumenti Az. Si può clonare il repository degli strumenti dal ramo az, oppure si può scaricare il AzureStack-Tools del ramo az. Per istruzioni, vedere Scaricare gli strumenti dell'hub di Azure Stack da GitHub

  • Occorrenza: comune

Errore generato con New-AzADServicePrincipal e New-AzADApplication

  • Applicabile: ambienti Di Azure Stack che usano Microsoft Entra ID.

  • Causa: Azure Active Directory Graph ha introdotto una modifica sostanziale per limitare il target IdentifierUri delle applicazioni Active Directory, permettendo solo sottodomini di un dominio verificato nella directory. Prima della modifica, questa restrizione è stata applicata solo per le app multi-tenant. Ora questa restrizione si applica anche alle app a tenant singolo. La modifica genererà l'errore seguente: Values of identifierUris property must use a verified domain of the organization or its subdomain' is displayed when running.

  • Correzione: è possibile aggirare questa restrizione in due modi.

    • È necessario usare un nome del principio di servizio che sia un sottodominio del tenant della directory. Ad esempio, se la directory è contoso.onmicrosoft.com, il nome dell'entità servizio deve essere di tipo <foo>.contoso.onmicrosoft.com. Usare il cmdlet seguente:

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

      Per altre informazioni sull'identità e sull'uso di principali del servizio con l'Hub di Azure Stack, vedere Panoramica dei provider di identità per l'Hub di Azure Stack.

    • Creare l'app Microsoft Entra fornendo un valore valido IdentifierUri e poi creare il principale del servizio associato all'app usando il seguente cmdlet:

      $app=New-AzADApplication -DisplayName 'newapp' -IdentifierUris http://anything.contoso.onmicrosoft.com
      New-AzADServicePrincipal -Role Owner -ApplicationId $app.ApplicationId
      
  • Occorrenza: comune

Errore: "Autenticazione SharedTokenCacheCredential non riuscita"

  • Applicabile: questo problema si applica a tutte le versioni supportate.
  • Causa: viene generato un errore di autenticazione SharedTokenCacheCredential non riuscita quando sono installate più versioni di AzAccounts con il modulo PowerShell dell'hub di Azure Stack versione 2.1.1.
  • Correzione: rimuovere tutte le versioni di AzAccounts e installare solo AzAccounts versione 2.2.8 supportate.
  • Occorrenza: comune

Passaggi successivi