De Az-module van PowerShell installeren voor Azure Stack Hub

In dit artikel wordt uitgelegd hoe u de az Azure PowerShell 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 ook de Az-modules voor Azure Stack Hub uitvoeren in een Docker-container. Zie Docker gebruiken om PowerShell uitte voeren voor Azure Stack Hub.

Zie PowerShell AzureRM-moduleinstalleren voor Azure Stack Hub als u de Module PowerShell-resourcemodules (AzureRM) wilt Azure Stack Hub.

Belangrijk

Er zullen waarschijnlijk geen nieuwe azure-resourcemodulereleases zijn. De Azure-resourcemodules 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 op te geven voor de Azure Stack Hub resourceproviders.

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

U kunt Azure Stack Hub 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. Uw vereisten controleren

Az-modules worden ondersteund op Azure Stack Hub update 2002 of hoger en met de huidige hotfixes geïnstalleerd. Zie de Azure Stack Hub release voor meer informatie.

De Azure PowerShell Az-modules werken met PowerShell 5.1 of hoger op Windows of PowerShell Core 6.x en hoger op alle platforms. Installeer de meest recente versie van PowerShell Core beschikbaar is voor uw besturingssysteem. Azure PowerShell heeft geen andere vereisten wanneer deze worden uitgevoerd 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:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Install-Module PowerShellGet -MinimumVersion 2.2.3 -Force

2. Vereisten voor Linux en Mac

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

3. Bestaande versies van de PowerShell-modules Azure Stack Hub 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 powershell-modules Azure Resource Manager PowerShell en PowerShell wilt verwijderen, sluit u alle actieve PowerShell-sessies en voer 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 er een foutbericht wordt weergegeven als 'De module is al in gebruik', sluit u de PowerShell-sessies die de modules gebruiken en moet u het bovenstaande script opnieuw uitvoeren.

  2. Verwijder alle mappen die beginnen met Azure of uit de mappen en AzAzs.C:\Program Files\WindowsPowerShell\ModulesC:\Users\{yourusername}\Documents\WindowsPowerShell\Modules . Als u deze mappen verwijdert, worden alle bestaande 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 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 een nieuwe PowerShell-sessie, zodat de update van kracht kan worden.

  1. Voer de volgende opdracht uit vanuit een PowerShell-sessie:

    [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 
    
  1. Voer de volgende opdracht uit vanuit een PowerShell-sessie:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
    Install-Module -Name Az.BootStrapper -Force
    Install-AzProfile -Profile 2019-03-01-hybrid -Force
    Install-Module -Name AzureStack -RequiredVersion 2.0.2-preview -AllowPrerelease
    

Notitie

Azure Stack Hub moduleversie 2.0.2 is een wijziging die een grote wijziging is. Raadpleeg Migrate from AzureRM to Azure PowerShell Az in Azure Stack Hub (Migreren van AzureRM naar Az in Azure Stack Hub voor meer informatie.

Waarschuwing

U kunt de modules Azure Resource Manager (AzureRM) en Az niet tegelijkertijd voor PowerShell 5.1 voor Windows installeren. Als u de Azure Resource Manager op uw systeem wilt houden, 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 kunt u deze overdragen 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 heeft vijf stappen:

  1. Installeer Azure Stack Hub PowerShell op een verbonden computer.
  2. Schakel aanvullende opslagfuncties in.
  3. Transporteren van de PowerShell-pakketten naar uw niet-verbonden werkstation.
  4. Start de NuGet-provider handmatig op uw niet-verbonden werkstation op.
  5. Bevestig de installatie van PowerShell.

PowerShell Azure Stack Hub installeren

Azure Stack Hub 2102 of hoger.

U kunt de modules Azure Resource Manager of Az gebruiken. Zie Azure Resource Manager PowerShell AzureRM-module installerenvoor meer informatie. De volgende code slaat modules op uit 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 1.10.0
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $savedModulesPath -Force -RequiredVersion 2.1.1

Azure Stack Hub 2008 of eerder.

U kunt de modules Azure Resource Manager of Az gebruiken. Zie Azure Resource Manager PowerShell AzureRM-module installerenvoor meer informatie. De volgende code slaat modules op uit 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 0.10.0-preview
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $savedModulesPath -Force -RequiredVersion 2.0.2-preview

Notitie

Op computers zonder internetverbinding wordt u aangeraden de volgende cmdlet uit te voeren voor het uitschakelen van het verzamelen van telemetriegegevens. Het is mogelijk dat de prestaties van de cmdlets worden gedegradeerd zonder het verzamelen van telemetriegegevens uit te uitschakelen. Dit is alleen van toepassing op de machines 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 uw niet-verbonden werkstation op. Zie Handmatig opstarten van de NuGet-providerop een computer die niet is verbonden met internet voor instructies.

  4. Registreer deze locatie als de standaardopslagplaats en installeer de AzureRM modules en vanuit deze AzureStack 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

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

 Install-Module -Name Az -Repository $RepoName -RequiredVersion 1.10.0 -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.0.2-preview -AllowPrerelease -Scope AllUsers

Install-Module -Name Az -Repository $RepoName -RequiredVersion 0.10.0-preview -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 waarvoor een proxyserver toegang tot internet vereist, moet u eerst PowerShell configureren voor het gebruik van een bestaande proxyserver:

  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 Azure Resource Manager. U moet echter de naam van de modules en cmdlets wijzigen. De modulenamen zijn gewijzigd zodat en Azure worden en hetzelfde AzureRMAz 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 Migrate from AzureRM to Azure PowerShell Az(Migreren van AzureRM naar az) voor een uitgebreidere bespreking en richtlijnen voor het verplaatsen van een AzurRM-script naar Az en belangrijke wijzigingen in de Az-module van Azure Stack Hub.

Bekende problemen

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 foutmelding weergegeven. 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 in dezelfde sessie de volgende cmdlet uit:
    Install-Module PowershellGet -MinimumVersion 2.3.0 -Force
    Sluit uw sessie en start een nieuwe PowerShell-sessie met verhoogde bevoegdheid.
  • Occurrence: Algemeen

Bij het installeren van de Az-module wordt ten onrechte de fout Beheerdersrechten vereist weergegeven

  • Van toepassing: dit probleem is van toepassing op 2002 en hoger
  • Oorzaak: Wanneer u de module installeert vanaf een prompt met verhoogde opdrachtprompt, wordt er een foutmelding weergegeven. De fout geeft aan, 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.
  • Occurrence: Algemeen

CmdletNew-AzVmss mislukt bij gebruik van profiel 2020-09-01-hybrid

  • Van toepassing: dit probleem is van toepassing op het profiel 2020-09-01-hybrid.
  • Oorzaak: De cmdlet New-AzVmss werkt niet met het profiel 020-09-01-hybrid.
  • 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 voor het gebruik van Azure Stack Hub Resource Managers met Visual Studio Code.
  • Occurrence: Algemeen

Fout die is 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 met behulp van de Azure Stack Hub 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 is geïnstalleerd, worden er fouten in het script uitgevoerd. Als u een script probeert uit te voeren dat Az-opdrachten aanroept wanneer de AzureRM-module is geïnstalleerd, worden er fouten in het script uitgevoerd.

  • Herstel: verwijder de AzureRM-module en installeer de Az-module. Zie Install PowerShell Az module for Azure Stack Hub (PowerShell Az-module installeren voor meer Azure Stack Hub. Als u de hulpprogramma's Azure Stack Hub gebruikt, gebruikt u de Az-hulpprogramma's. Kloon de opslagplaats met hulpprogramma's vanuit de az branch of download de AzureStack-Tools van de az branch. Zie Download Azure Stack Hub tools from GitHub (Hulpprogramma'GitHub

  • Occurrence: Algemeen

Fout opgetreden bij New-AzADServicePrincipal en New-AzADApplication

  • Van toepassing: Azure Stack omgevingen maken met Azure Active Directory (Azure AD).

  • Oorzaak: er Azure Active Directory Graph wijziging geïntroduceerd die de voor Active Directory-toepassingen beperkt tot de subdomeinen van een geverifieerd IdentifierUri domein in de directory. Vóór de wijziging werd deze beperking alleen afgedwongen voor de apps met meerdere tenants. Deze beperking geldt nu ook voor 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 verhelpen.

    • U moet een service-principenaam gebruiken die een subdomein is van de directory-tenant. Als de map bijvoorbeeld contoso.onmicrosoft.com is, 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 Azure AD-app met een geldige en maak vervolgens de service-principal om de app te IdentifierUri 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
      
  • Occurrence: Algemeen

Volgende stappen