Installera PowerShell Az-modulen för Azure Stack Hub

Den här artikeln beskriver hur du installerar Azure PowerShell Az och kompatibla Azure Stack Hub-administratörsmoduler med PowerShellGet. Az-modulerna kan installeras på Windows-, macOS- och Linux-plattformar.

Du kan också köra Az-modulerna för Azure Stack Hub i en Docker-container. Anvisningar finns i Använda Docker för att köra PowerShell för Azure Stack Hub.

Om du vill installera PowerShell-resursmoduler (AzureRM) för Azure Stack Hub läser du Installera PowerShell AzureRM-modul för Azure Stack Hub.

Viktigt

Det kommer sannolikt inte att finnas några nya versioner av Azure Resource Modules-modulen. Azure Resource Modules-modulerna har endast stöd för kritiska korrigeringar. Framöver kommer det bara att finnas Az-versioner för Azure Stack Hub.

Du kan använda API-profiler för att ange kompatibla slutpunkter för Azure Stack Hub-resursprovidrar.

API-profiler är ett sätt att hantera versionsskillnader mellan Azure och Azure Stack Hub. En API-versionsprofil är en uppsättning Azure Resource Manager PowerShell-moduler med specifika API-versioner. Varje molnplattform har en uppsättning API-versionsprofiler som stöds. Azure Stack Hub stöder till exempel en specifik profilversion, till exempel 2020-09-01-hybrid. När du installerar en profil installeras Azure Resource Manager PowerShell-moduler som motsvarar den angivna profilen.

Du kan installera Azure Stack Hub-kompatibla PowerShell Az-moduler i Internetanslutna, delvis anslutna eller frånkopplade scenarier. Den här artikeln vägleder dig genom de detaljerade instruktionerna för dessa scenarier.

1. Kontrollera dina förutsättningar

Az-moduler stöds på Azure Stack Hub med Uppdatering 2002 eller senare och med de aktuella snabbkorrigeringarna installerade. Mer information finns i Viktig information om Azure Stack Hub .

Azure PowerShell Az-modulerna fungerar med PowerShell 5.1 eller senare i Windows eller PowerShell Core 6.x och senare på alla plattformar. Du bör installera den senaste versionen av PowerShell Core som är tillgänglig för ditt operativsystem. Azure PowerShell har inga andra krav när du kör PowerShell Core.

Du kan kontrollera vilken PowerShell-version du har genom att köra kommandot:

$PSVersionTable.PSVersion

Krav för Windows

Använda Azure PowerShell i PowerShell 5.1 på Windows:

  1. Uppdatera vid behov till Windows PowerShell 5.1. Om du använder Windows 10 kan PowerShell 5.1 redan vara installerat.
  2. Installera .NET Framework 4.7.2 eller senare.
  3. Kontrollera att du har den senaste versionen av PowerShellGet. Kör följande cmdletar från en upphöjd fråga:
[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. Förutsättningar för Linux och Mac

PowerShell Core 6.x eller senare version krävs. Följ länken för instruktioner

3. Avinstallera befintliga versioner av Azure Stack Hub PowerShell-moduler

Innan du installerar den version som krävs måste du avinstallera alla tidigare installerade Azure Stack Hub Azure-Resource Manager- eller Az PowerShell-moduler. Avinstallera modulerna med någon av följande två metoder:

  1. Om du vill avinstallera befintliga Azure Resource Manager- och Az PowerShell-moduler stänger du alla aktiva PowerShell-sessioner och kör följande cmdletar:

    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
    

    Om du stöter på ett fel som "Modulen används redan" stänger du De PowerShell-sessioner som använder modulerna och kör skriptet ovan igen.

  2. Om Uninstall-Module inte lyckades tar du bort alla mappar som börjar med Azure, Azeller Azs. från platserna $env:PSModulePath. För Windows PowerShell kan platserna vara C:\Program Files\WindowsPowerShell\Modules och C:\Users\{yourusername}\Documents\WindowsPowerShell\Modules. För PowerShell Core kan platserna vara C:\Program Files\PowerShell\7\Modules och C:\Users\{yourusername}\Documents\PowerShell\Modules. Om du tar bort dessa mappar tas alla befintliga Azure PowerShell moduler bort.

4. Ansluten: Installera med Internetanslutning

Azure Stack Az-modulen fungerar med PowerShell 5.1 eller senare på en Windows-dator eller PowerShell 6.x eller senare på en Linux- eller macOS-plattform. Att använda PowerShellGet-cmdletar är den installationsmetod som föredras. Den här metoden fungerar på samma sätt på plattformar som stöds.

  1. Kör följande kommando från en PowerShell-session för att uppdatera PowerShellGet till minst version 2.2.3

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
    Install-Module PowerShellGet -MinimumVersion 2.2.3 -Force
    
  2. Stäng PowerShell-sessionen och öppna sedan en ny PowerShell-session så att uppdateringen kan träda i kraft.

  1. Kör följande kommando från en PowerShell-session:

    [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. Kör följande kommando från en PowerShell-session:

    [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
    

Varning

Du kan inte ha både Azure Resource Manager-modulerna (AzureRM) och Az installerade för PowerShell 5.1 för Windows samtidigt. Om du behöver ha Azure Resource Manager tillgängligt i systemet installerar du Az-modulen för PowerShell Core 6.x eller senare. För att göra det installerar du PowerShell Core 6.x eller senare och följer instruktionerna i PowerShell Core-terminalen.

5. Frånkopplad: Installera utan internetanslutning

I ett frånkopplat scenario laddar du först ned PowerShell-modulerna till en dator som har internetanslutning. Sedan överför du dem till Azure Stack Development Kit (ASDK) för installation.

Logga in på en dator med Internetanslutning och använd följande skript för att ladda ned Azure Resource Manager- och Azure Stack Hub-paketen, beroende på din version av Azure Stack Hub.

Installationen består av fem steg:

  1. Installera Azure Stack Hub PowerShell på en ansluten dator.
  2. Aktivera ytterligare lagringsfunktioner.
  3. Transportera PowerShell-paketen till den frånkopplade arbetsstationen.
  4. Starta NuGet-providern manuellt på den frånkopplade arbetsstationen.
  5. Bekräfta installationen av PowerShell.

Installera Azure Stack Hub PowerShell

Azure Stack Hub 2108 eller senare.

Du kan antingen använda Azure Resource Manager- eller Az-moduler. Information om Azure Resource Manager finns i anvisningarna i Installera PowerShell AzureRM-modulen. Följande kod sparar moduler från en tillförlitlig onlinelagringsplats 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
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $savedModulesPath -Force -RequiredVersion 2.2.0

Azure Stack Hub 2102.

Du kan antingen använda Azure Resource Manager- eller Az-moduler. Information om Azure Resource Manager finns i anvisningarna i Installera PowerShell AzureRM-modulen. Följande kod sparar moduler från en tillförlitlig onlinelagringsplats 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
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $savedModulesPath -Force -RequiredVersion 2.1.1

Anteckning

På datorer utan internetanslutning rekommenderar vi att du kör följande cmdlet för att inaktivera insamlingen av telemetridata. Du kan uppleva en prestandaförsämring av cmdletarna utan att inaktivera insamlingen av telemetridata. Detta gäller endast för datorer utan internetanslutningar

Disable-AzDataCollection

Lägga till dina paket på din arbetsstation

  1. Kopiera de nedladdade paketen till en USB-enhet.

  2. Logga in på den frånkopplade arbetsstationen och kopiera paketen från USB-enheten till en plats på arbetsstationen.

  3. Starta NuGet-providern manuellt på den frånkopplade arbetsstationen. Anvisningar finns i Starta NuGet-providern manuellt på en dator som inte är ansluten till Internet.

  4. Registrera den här platsen som standardlagringsplats och installera modulerna AzureRM och AzureStack från den här lagringsplatsen:

 # 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

Bekräfta installationen av PowerShell

Bekräfta installationen genom att köra följande kommando:

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

6. Konfigurera PowerShell att använda en proxyserver

I scenarier som kräver en proxyserver för att komma åt Internet konfigurerar du först PowerShell för att använda en befintlig proxyserver:

  1. Öppna en PowerShell-prompt med utökad behörighet.

  2. Kör följande kommandon:

    #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. Använd Az-modulen

Du kan använda cmdletar och kodexempel baserat på Azure Resource Manager. Du vill dock ändra namnet på modulerna och cmdletarna. Modulnamnen har ändrats så att AzureRM och Azure blir Az, och samma för cmdletar. AzureRM.Compute-modulens namn har till exempel ändrats till Az.Compute. New-AzureRMVM har blivit New-AzVM, och Get-AzureStorageBlob är nu Get-AzStorageBlob.

En mer ingående diskussion och vägledning för att flytta AzurRM-skript till Az och icke-bakåtkompatibla ändringar i Az-modulen i Azure Stack Hub finns i Migrera från AzureRM till Azure PowerShell Az.

Kända problem

Fel uppstod när Az-modulerna skulle installeras

  • Tillämpligt: Det här problemet gäller för 2002 och senare
  • Orsak: När du installerar modulen utlöses ett fel. Felmeddelandet börjar: Register-PacakgeSource : A parameter cannot be found that matches parameter name. 'PackageManagementProvider'. Eller så kan felmeddelandet innehålla följande text: PackageManagement\Install-Package : Cannot convert value "2.0.1-preview" to type "System.Version". Error: "Input string was not in a correct format."
  • Reparation: Kör följande cmdlet i samma session:
    Install-Module PowershellGet -MinimumVersion 2.3.0 -Force
    Stäng sessionen och starta en ny upphöjd PowerShell-session.
  • Förekomst: Vanligt

När du installerar Az-modulen genereras felaktigt Admin rättigheter som krävs fel

  • Tillämpligt: Det här problemet gäller för 2002 och senare
  • Orsak: När du installerar modulen från en upphöjd fråga utlöses ett fel. Felet säger, Administrator rights required.
  • Reparation: Stäng sessionen och starta en ny upphöjd PowerShell-session. Kontrollera att det inte finns någon befintlig Az. Kontomodulen lästes in i sessionen.
  • Förekomst: Vanligt

Cmdlet-New-AzVmss misslyckas när du använder hybridprofilen 2020-09-01

  • Tillämpligt: Det här problemet gäller hybridprofilen 2020-09-01.
  • Orsak: Cmdleten New-AzVmss fungerar inte med hybridprofilen 2020-09-01.
  • Reparation: Använd en mall för att skapa vm-skalningsuppsättningar. Du hittar ett exempel på Azure Stack Hub-Resource Manager mallar på GitHub-lagringsplatsen AzureStack-QuickStart-Templates/101-vmss-windows-vm och du hittar instruktioner om hur du använder Azure Stack Hub Resource Managers med Visual Studio Code.
  • Förekomst: Vanligt

Ett fel uppstod när ett PowerShell-skript kördes

  • Tillämpligt: Det här problemet gäller för 2002 och senare.

  • Orsak: När du kör skript eller PowerShell-kommandon med hjälp av Azure Stack Hub-specifika moduler måste skriptet eller kommandot vara tillgängligt i modulen. Du kan se följande fel:

    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.
    

    Den aktuella modulen är PowerShell Az-modulen, som har ersatt PowerShell AzureRM-modulen. Om du försöker köra ett skript som anropar AzureRM-kommandon när Az-modulen är installerad genererar skriptet fel. Eller om du försöker köra ett skript som anropar Az-kommandon när AzureRM-modulen är installerad genererar skriptet fel.

  • Reparation: Avinstallera AzureRM-modulen och installera Az-modulen. Anvisningar finns i Installera PowerShell Az-modulen för Azure Stack Hub. Om du använder Azure Stack Hub Tools använder du Az-verktygen. Klona verktygslagringsplatsen från az-grenen eller ladda ned AzureStack-Tools från az-grenen . Anvisningar finns i Ladda ned Azure Stack Hub-verktyg från GitHub

  • Förekomst: Vanligt

Fel uppstod med New-AzADServicePrincipal och New-AzADApplication

  • Tillämpligt: Azure Stack-miljöer med Azure Active Directory (Azure AD).

  • Orsak: Azure Active Directory Graph introducerade en icke-bakåtkompatibel ändring för att begränsa IdentifierUri för Active Directory-program att vara underdomäner för en verifierad domän i katalogen. Före ändringen tillämpades den här begränsningen endast för appar med flera klientorganisationer. Nu gäller den här begränsningen även appar för enskilda klientorganisationer. Ändringen resulterar i följande fel: Values of identifierUris property must use a verified domain of the organization or its subdomain' is displayed when running.

  • Reparation: Du kan kringgå den här begränsningen på två sätt.

    • Du måste använda ett tjänstprincipnamn som är en underdomän till katalogklientorganisationen. Om katalogen till exempel är contoso.onmicrosoft.commåste tjänstens huvudnamn vara av formatet <foo>.contoso.onmicrosoft.com. Använd följande cmdlet:

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

      Mer information om identitet och användning av tjänstens huvudnamn med Azure Stack Hub finns i Översikt över identitetsprovidrar för Azure Stack Hub.

    • Skapa Azure AD-appen som tillhandahåller en giltig IdentifierUri och skapa sedan tjänstens huvudnamn som associerar appen med hjälp av följande cmdlet:

      $app=New-AzADApplication -DisplayName 'newapp' -IdentifierUris http://anything.contoso.onmicrosoft.com
      New-AzADServicePrincipal -Role Owner -ApplicationId $app.ApplicationId
      
  • Förekomst: Vanligt

Fel: "SharedTokenCacheCredential-autentiseringen misslyckades"

  • Tillämpligt: Det här problemet gäller för alla versioner som stöds.
  • Orsak: Ett Fel vid autentisering med SharedTokenCacheCredential-autentisering utlöses när flera versioner av AzAccounts har installerats med Azure Stack Hub PowerShell-modul version 2.1.1.
  • Reparation: Ta bort alla versioner av AzAccounts och installera endast azaccounts version 2.2.8 som stöds.
  • Förekomst: Vanligt

Nästa steg