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 uit te voeren voor Azure Stack Hub.
Als u de Module PowerShell Resource Modules (AzureRM) wilt installeren voor Azure Stack Hub, zie PowerShell AzureRM-module installeren voor 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 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:
- Werk indien nodig bij naar Windows PowerShell 5.1. Als u Windows 10 gebruikt, is PowerShell 5.1 al geïnstalleerd.
- Installeer .NET framework 4.7.2 of hoger.
- Zorg ervoor dat u beschikt over de nieuwste versie van PowerShellGet. Voer de volgende cmdlets uit vanaf een prompt met verhoogde opdracht:
[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 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:
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 ContinueAls 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.
Als de Uninstall-Module is geslaagd,
Azureverwijdert u alle mappen die beginnen met ,AzAzs.of uit de $env:PSModulePath-locaties. Voor Windows PowerShell zijn de locaties mogelijkC:\Program Files\WindowsPowerShell\ModulesenC:\Users\{yourusername}\Documents\WindowsPowerShell\Modules. Voor PowerShell Core zijn de locaties mogelijkC:\Program Files\PowerShell\7\ModulesenC:\Users\{yourusername}\Documents\PowerShell\Modules. Als u deze mappen verwijdert, worden alle bestaande Azure PowerShell 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.
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 -ForceSluit uw PowerShell-sessie en open een nieuwe PowerShell-sessie, zodat de update van kracht kan worden.
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.2.0
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
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:
- Installeer Azure Stack Hub PowerShell op een verbonden computer.
- Schakel aanvullende opslagfuncties in.
- Transporteren van de PowerShell-pakketten naar uw niet-verbonden werkstation.
- Start de NuGet-provider handmatig op uw niet-verbonden werkstation op.
- Bevestig de installatie van PowerShell.
PowerShell Azure Stack Hub installeren
Azure Stack Hub 2108 of hoger.
U kunt de modules Azure Resource Manager of Az gebruiken. Zie Azure Resource Manager PowerShell AzureRM-module installeren voor 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 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.
U kunt de modules Azure Resource Manager of Az gebruiken. Zie Azure Resource Manager PowerShell AzureRM-module installeren voor 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 2.0.1
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 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
Kopieer de gedownloade pakketten naar een USB-apparaat.
Meld u aan bij het niet-verbonden werkstation en kopieer de pakketten van het USB-apparaat naar een locatie op het werkstation.
Start de NuGet-provider handmatig op uw niet-verbonden werkstation op. Zie Handmatig opstarten van de NuGet-provider op een computer die niet is verbonden met internet voor instructies.
Registreer deze locatie als de standaardopslagplaats en installeer de
AzureRMmodules enAzureStackvanuit 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
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
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:
Open een PowerShell-prompt met verhoogde bevoegdheid.
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 AzureRM en Azure worden Azen 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 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 2020-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) voor instructies 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
IdentifierUriwijziging geïntroduceerd die de voor Active Directory-toepassingen beperkt tot de 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 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 is, moet
contoso.onmicrosoft.comde 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.comZie Overzicht van id-providers voor Azure Stack Hub voor meer informatie over identiteit en het gebruik van service-principals Azure Stack Hub.
Maak de Azure AD-app met een geldige
IdentifierUrien maak vervolgens de service-principal om de app te 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