PowerShell Az- en Azure Stack-modules installeren voor Azure Stack Hub

Azure Stack Hub-versie AzureStack PowerShell-versie
2102 2.1.1
2108 2.2.0
2206 2.3.0
2301+ 2.4.0

Zie de PSGallery voor meer informatie over AzureStack-modules.

In dit artikel wordt uitgelegd hoe u de Azure PowerShell Az en compatibele Azure Stack Hub-beheerdersmodules installeert met behulp van PowerShellGet. De Az-modules kunnen worden geïnstalleerd op Windows-, macOS- en Linux-platforms.

U kunt de Az-modules voor Azure Stack Hub ook uitvoeren in een Docker-container. Zie Docker gebruiken om PowerShell voor Azure Stack Hub uit te voeren voor instructies.

Zie PowerShell AzureRM-module voor Azure Stack Hub installeren als u de Module PowerShell Resource Modules (AzureRM) voor Azure Stack Hub wilt installeren.

Belangrijk

Er komen geen nieuwe modulereleases van Azure Resource Modules. De Modules van Azure Resource Modules worden alleen ondersteund voor kritieke oplossingen. In de toekomst zijn er alleen Az-releases voor Azure Stack Hub.

U kunt API-profielen gebruiken om de compatibele eindpunten voor de Azure Stack Hub-resourceproviders op te geven.

API-profielen bieden een manier om versieverschillen tussen Azure en Azure Stack Hub te beheren. Een API-versieprofiel is een set Azure Resource Manager PowerShell-modules met specifieke API-versies. Elk cloudplatform heeft een set ondersteunde API-versieprofielen. Azure Stack Hub ondersteunt bijvoorbeeld een specifieke profielversie, zoals 2020-09-01-hybrid. Wanneer u een profiel installeert, worden de Azure Resource Manager PowerShell-modules geïnstalleerd die overeenkomen met het opgegeven profiel.

U kunt Azure Stack Hub-compatibele PowerShell Az-modules installeren in scenario's met internetverbinding, gedeeltelijk verbonden of niet-verbonden. In dit artikel worden de gedetailleerde instructies voor deze scenario's beschreven.

1. Controleer uw vereisten

Az-modules worden ondersteund in Azure Stack Hub met Update 2002 of hoger en met de huidige hotfixes geïnstalleerd. Zie de opmerkingen bij de release van Azure Stack Hub voor meer informatie.

De Azure PowerShell Az-modules werken met PowerShell 5.1 of hoger in Windows of PowerShell Core 6.x en hoger op alle platforms. Installeer de nieuwste versie van PowerShell Core die beschikbaar is voor uw besturingssysteem. Azure PowerShell heeft geen andere vereisten bij het uitvoeren op PowerShell Core.

Voer de opdracht uit om te controleren welke PowerShell-versie u hebt:

$PSVersionTable.PSVersion

Vereisten voor Windows

Ga als volgt te werk om Azure PowerShell te gebruiken in PowerShell 5.1 in Windows:

  1. Werk indien nodig bij naar Windows PowerShell 5.1. Als u Windows 10 gebruikt, is PowerShell 5.1 al geïnstalleerd.

  2. Installeer .NET framework 4.7.2 of hoger.

  3. Zorg ervoor dat u beschikt over de nieuwste versie van PowerShellGet. Voer de volgende cmdlets uit vanaf een prompt met verhoogde bevoegdheid:

    [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. Vereisten voor Linux en Mac

PowerShell Core 6.x of hoger is vereist. Volg de koppeling voor instructies

3. Bestaande versies van de Azure Stack Hub PowerShell-modules verwijderen

Voordat u de vereiste versie installeert, moet u alle eerder geïnstalleerde Azure Stack Hub Azure Resource Manager- of Az PowerShell-modules verwijderen. Verwijder de modules met behulp van een van de volgende twee methoden:

  1. Als u de bestaande Azure Resource Manager- en Az PowerShell-modules wilt verwijderen, sluit u alle actieve PowerShell-sessies en voert u de volgende cmdlets uit:

    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
    

    Als u een fout krijgt zoals 'De module is al in gebruik', sluit u de PowerShell-sessies die de modules gebruiken en voert u het bovenstaande script opnieuw uit.

  2. Als het Uninstall-Module niet lukt, verwijdert u alle mappen die beginnen met Azure, Azof Azs. uit de $env:PSModulePath-locaties. Voor Windows PowerShell zijn C:\Program Files\WindowsPowerShell\Modules de locaties mogelijk en C:\Users\{yourusername}\Documents\WindowsPowerShell\Modules. Voor PowerShell Core zijn C:\Program Files\PowerShell\7\Modules de locaties mogelijk en C:\Users\{yourusername}\Documents\PowerShell\Modules. Als u deze mappen verwijdert, worden alle bestaande Azure PowerShell modules verwijderd.

4. Verbonden: installeren met internetverbinding

De Azure Stack Az-module werkt met PowerShell 5.1 of hoger op een Windows-computer of Met PowerShell 6.x of hoger op een Linux- of macOS-platform. Het gebruik van de PowerShellGet-cmdlets is de voorkeursinstallatiemethode. Deze methode werkt hetzelfde op de ondersteunde platforms.

  1. Voer de volgende opdracht uit vanuit een PowerShell-sessie om PowerShellGet bij te werken naar minimaal versie 2.2.3

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    Install-Module PowerShellGet -MinimumVersion 2.2.3 -Force
    
  2. Sluit uw PowerShell-sessie en open vervolgens een nieuwe PowerShell-sessie zodat de update van kracht kan worden.

  3. Voer het volgende uit om Az-modules te installeren.

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

    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
    

Waarschuwing

U kunt niet zowel de Azure Resource Manager (AzureRM) als de Az-modules voor PowerShell 5.1 voor Windows op hetzelfde moment hebben geïnstalleerd. Als u Azure Resource Manager beschikbaar wilt houden op uw systeem, installeert u de Az-module voor PowerShell Core 6.x of hoger. Hiervoor installeert u PowerShell Core 6.x of hoger en volgt u deze instructies in een PowerShell Core-terminal.

5. Verbinding verbroken: installeren zonder internetverbinding

In een niet-verbonden scenario downloadt u eerst de PowerShell-modules naar een computer met internetverbinding. Vervolgens verplaatst u ze naar de Azure Stack Development Kit (ASDK) voor installatie.

Meld u aan bij een computer met internetverbinding en gebruik de volgende scripts om de Azure Resource Manager- en Azure Stack Hub-pakketten te downloaden, afhankelijk van uw versie van Azure Stack Hub.

De installatie bestaat uit vijf stappen:

  1. Installeer Azure Stack Hub PowerShell op een verbonden machine.
  2. Aanvullende opslagfuncties inschakelen.
  3. Transporteer de PowerShell-pakketten naar uw niet-verbonden werkstation.
  4. Start de NuGet-provider handmatig op op uw niet-verbonden werkstation.
  5. Bevestig de installatie van PowerShell.

Azure Stack Hub PowerShell installeren

  1. U kunt AzureRM - of Az-modules gebruiken. Met de volgende code worden Az-modules opgeslagen uit een betrouwbare online opslagplaats 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. Nadat de Az-modules zijn geïnstalleerd, gaat u verder met het installeren van de AzureStack-modules.

    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
    

Notitie

Op computers zonder internetverbinding raden we u aan de volgende cmdlet uit te voeren om het verzamelen van telemetriegegevens uit te schakelen. Mogelijk ondervindt u prestatievermindering van de cmdlets zonder het verzamelen van telemetriegegevens uit te schakelen. Dit geldt alleen voor computers zonder internetverbinding

Disable-AzDataCollection

Uw pakketten toevoegen aan uw werkstation

  1. Kopieer de gedownloade pakketten naar een USB-apparaat.

  2. Meld u aan bij het niet-verbonden werkstation en kopieer de pakketten van het USB-apparaat naar een locatie op het werkstation.

  3. Start de NuGet-provider handmatig op op uw niet-verbonden werkstation. Zie Handmatig bootstrappen van de NuGet-provider op een computer die niet is verbonden met internet voor instructies.

  4. Registreer deze locatie als de standaardopslagplaats en installeer de AzureRM modules en AzureStack vanuit deze opslagplaats:

     # 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. Installeer de Az-modules.

     Install-Module -Name Az -Repository $RepoName -RequiredVersion 2.0.1 -Scope AllUsers
    
  6. Installeer de AzureStack-modules.

    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
    

Installatie van PowerShell bevestigen

Bevestig de installatie door de volgende opdracht uit te voeren:

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

6. PowerShell configureren voor het gebruik van een proxyserver

In scenario's waarin een proxyserver toegang tot internet vereist, configureert u PowerShell eerst om een bestaande proxyserver te gebruiken:

  1. Open een PowerShell-prompt met verhoogde bevoegdheid.

  2. Voer de volgende opdrachten uit:

    #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. De Az-module gebruiken

U kunt de cmdlets en codevoorbeelden gebruiken op basis van AzureRM-modules. U kunt echter de naam van de modules en cmdlets wijzigen. De modulenamen zijn gewijzigd, zodat AzureRM En Azure worden Az, en hetzelfde voor cmdlets. De naam van de module AzureRM.Compute is bijvoorbeeld gewijzigd in Az.Compute. New-AzureRMVM is gewijzigd in New-AzVM en Get-AzureStorageBlob is nu Get-AzStorageBlob.

Zie Migreren van AzureRM naar Azure PowerShell Az voor een uitgebreidere bespreking en richtlijnen voor het verplaatsen van Het AzurRM-script naar Az en wijzigingen die fouten veroorzaken in de Az-module van Azure Stack Hub.

Bekende problemen

Er is een fout opgetreden bij het installeren van de Az-modules

  • Van toepassing: dit probleem is van toepassing op 2002 en hoger
  • Oorzaak: Bij het installeren van de module wordt een fout gegenereerd. Het foutbericht begint: Register-PacakgeSource : A parameter cannot be found that matches parameter name. 'PackageManagementProvider'. of het foutbericht kan de volgende tekst bevatten: PackageManagement\Install-Package : Cannot convert value "2.0.1-preview" to type "System.Version". Error: "Input string was not in a correct format."
  • Herstel: voer de volgende cmdlet uit in dezelfde sessie:
    Install-Module PowershellGet -MinimumVersion 2.3.0 -Force
    Sluit uw sessie en start een nieuwe PowerShell-sessie met verhoogde bevoegdheid.
  • Exemplaar: algemeen

Bij het installeren van az-module genereert fout Beheer vereiste rechten

  • Van toepassing: dit probleem is van toepassing op 2002 en hoger
  • Oorzaak: Bij het installeren van de module vanaf een prompt met verhoogde bevoegdheid, wordt er een fout gegenereerd. De fout zegt: Administrator rights required.
  • Herstel: sluit uw sessie en start een nieuwe PowerShell-sessie met verhoogde bevoegdheid. Zorg ervoor dat er geen bestaande Az is. De module Accounts die in de sessie is geladen.
  • Exemplaar: algemeen

Cmdlet New-AzVmss mislukt bij gebruik van het hybride profiel 2020-09-01

  • Van toepassing: dit probleem is van toepassing op het hybride profiel 2020-09-01.
  • Oorzaak: De cmdlet New-AzVmss werkt niet met het hybride profiel 2020-09-01.
  • Herstel: gebruik een sjabloon voor het maken van een virtuele-machineschaalset. U vindt een voorbeeld van de Azure Stack Hub Resource Manager-sjablonen in de GitHub-opslagplaats AzureStack-QuickStart-Templates/101-vmss-windows-vm en instructies over het gebruik van Azure Stack Hub Resource Managers met Visual Studio Code.
  • Exemplaar: algemeen

Er is een fout opgetreden bij het uitvoeren van een PowerShell-script

  • Van toepassing: dit probleem is van toepassing op 2002 en hoger.

  • Oorzaak: Wanneer u scripts of PowerShell-opdrachten uitvoert met behulp van de azure Stack Hub-specifieke modules, moet uw script of opdracht beschikbaar zijn in de module. Mogelijk ziet u de volgende fout:

    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.
    

    De huidige module is de PowerShell Az-module, die de PowerShell AzureRM-module heeft vervangen. Als u probeert een script uit te voeren dat AzureRM-opdrachten aanroept wanneer de Az-module wordt geïnstalleerd, genereert uw script fouten. Of als u probeert een script uit te voeren dat Az-opdrachten aanroept wanneer de AzureRM-module is geïnstalleerd, genereert uw script fouten.

  • Herstel: verwijder de AzureRM-module en installeer de Az-module. Zie PowerShell Az-module voor Azure Stack Hub installeren voor instructies. Als u de Azure Stack Hub Tools gebruikt, gebruikt u de Az-hulpprogramma's. Kloon de opslagplaats met hulpprogramma's uit de az branch of download de AzureStack-Tools vanuit de az branch. Zie Azure Stack Hub-hulpprogramma's downloaden van GitHub voor instructies

  • Exemplaar: algemeen

Fout opgetreden bij New-AzADServicePrincipal en New-AzADApplication

  • Van toepassing: Azure Stack-omgevingen die gebruikmaken van Microsoft Entra ID.

  • Oorzaak: Azure Active Directory Graph heeft een wijziging geïntroduceerd die fouten veroorzaakt om de IdentifierUri voor Active Directory-toepassingen te beperken tot subdomeinen van een geverifieerd domein in de directory. Vóór de wijziging werd deze beperking alleen afgedwongen voor de apps met meerdere tenants. Deze beperking is nu ook van toepassing op apps met één tenant. De wijziging resulteert in de volgende fout: Values of identifierUris property must use a verified domain of the organization or its subdomain' is displayed when running.

  • Herstel: u kunt deze beperking op twee manieren omzeilen.

    • U moet een service-principalnaam gebruiken die een subdomein van de maptenant is. Als de map bijvoorbeeld is contoso.onmicrosoft.com, moet de naam van de service-principal de vorm hebben van <foo>.contoso.onmicrosoft.com. Gebruik de volgende cmdlet:

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

      Zie Overzicht van id-providers voor Azure Stack Hub voor meer informatie over identiteit en het gebruik van service-principals met Azure Stack Hub.

    • Maak de Microsoft Entra app die een geldige IdentifierUri app biedt en maak vervolgens de service-principal die de app aan de app koppelen met behulp van de volgende cmdlet:

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

Fout: 'SharedTokenCacheCredential-verificatie is mislukt'

  • Van toepassing: dit probleem is van toepassing op alle ondersteunde releases.
  • Oorzaak: Er wordt een fout met sharedTokenCacheCredential-verificatie opgetreden wanneer meerdere versies van AzAccounts zijn geïnstalleerd met Azure Stack Hub PowerShell Module versie 2.1.1.
  • Herstel: verwijder alle versies van AzAccounts en installeer alleen de ondersteunde AzAccounts-versie 2.2.8.
  • Exemplaar: algemeen

Volgende stappen