Installieren von PowerShell Az- und Azure Stack-Modulen für Azure Stack Hub
Azure Stack Hub-Version | AzureStack PowerShell-Version |
---|---|
2102 | 2.1.1 |
2108 | 2.2.0 |
2206 | 2.3.0 |
2301+ | 2.4.0 |
Weitere Informationen zu AzureStack-Modulen finden Sie unter PSGallery.
In diesem Artikel wird erläutert, wie Sie mithilfe von PowerShellGet das Azure PowerShell Az-Modul und kompatible Azure Stack Hub-Administratormodule installieren. Die Az-Module können auf Windows-, macOS- und Linux-Plattformen installiert werden.
Sie können die Az-Module für Azure Stack Hub auch in einem Docker-Container ausführen. Anleitungen finden Sie unter Verwenden von Docker zum Ausführen von PowerShell für Azure Stack Hub.
Wenn Sie das PowerShell Resource Modules-Modul (AzureRM-Modul) für Azure Stack Hub installieren möchten, lesen Sie die Informationen unter Installieren des PowerShell AzureRM-Moduls für Azure Stack Hub.
Wichtig
Es werden keine neuen Modulreleases für Azure-Ressourcenmodule verfügbar sein. Für die Azure Resource Modules-Module wird nur noch Support für kritische Hotfixes bereitgestellt. In Zukunft gibt es nur noch Az-Releases für Azure Stack Hub.
Sie können API-Profile verwenden, um die kompatiblen Endpunkte für die Azure Stack Hub-Ressourcenanbieter anzugeben.
API-Profile bieten eine Möglichkeit, Versionsunterschiede zwischen Azure und Azure Stack Hub zu verwalten. Ein API-Versionsprofil ist eine Gruppe von Azure Resource Manager-PowerShell-Modulen mit spezifischen API-Versionen. Jede Cloudplattform verfügt über eine Gruppe von unterstützten API-Versionsprofilen. Azure Stack Hub unterstützt beispielsweise eine bestimmte Profilversion, z. B. 2020-09-01-hybrid. Wenn Sie ein Profil installieren, werden die Azure Resource Manager-PowerShell-Module installiert, die dem angegebenen Profil entsprechen.
Sie können mit Azure Stack Hub kompatible PowerShell Az-Module in einem Szenario mit Internetverbindung, mit teilweiser Internetverbindung oder ohne Internetverbindung installieren. Dieser Artikel leitet Sie durch die detaillierten Anweisungen für diese Szenarien.
1. Überprüfen der Voraussetzungen
AZ-Module werden in Azure Stack Hub mit Update 2002 oder höher unterstützt, wenn die aktuellen Hotfixes installiert sind. Weitere Informationen finden Sie in den Versionshinweisen zu Azure Stack Hub.
Die Azure PowerShell-Az-Module können mit PowerShell 5.1 oder höher unter Windows oder mit PowerShell Core 6.x und höher auf allen Plattformen verwendet werden. Sie sollten die letzte Version von PowerShell Core installieren, die für Ihr Betriebssystem verfügbar ist. Bei der Ausführung in PowerShell Core gibt es keine anderen Anforderungen an Azure PowerShell.
Führen Sie den Befehl aus, um Ihre PowerShell-Version zu überprüfen:
$PSVersionTable.PSVersion
Voraussetzungen für Windows
So verwenden Sie Azure PowerShell in PowerShell 5.1 unter Windows:
Führen Sie bei Bedarf ein Update auf Windows PowerShell 5.1 aus. Unter Windows 10 ist PowerShell 5.1 bereits installiert.
Installieren Sie .NET Framework 4.7.2 oder höher.
Vergewissern Sie sich, dass die aktuelle Version von PowerShellGet installiert ist. Führen Sie die folgenden Cmdlets in einer Eingabeaufforderung mit erhöhten Rechten aus:
[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. Voraussetzungen für Linux und Mac
Mindestens PowerShell Core 6.x erforderlich. Anweisungen finden Sie unter diesem Link.
3. Deinstallieren vorhandener Versionen der Azure Stack Hub-PowerShell-Module
Deinstallieren Sie vor der Installation der erforderlichen Version unbedingt alle zuvor installierten Azure Resource Manager- oder Az-PowerShell-Module für Azure Stack Hub. Deinstallieren Sie die Module mit einer der folgenden zwei Methoden:
Schließen Sie alle aktiven PowerShell-Sitzungen, und führen Sie die folgenden Cmdlets aus, um die vorhandenen Azure Resource Manager- und Az PowerShell-Module zu deinstallieren:
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
Wenn eine Fehlermeldung wie „Das Modul wird bereits verwendet“ auftritt, schließen Sie die PowerShell-Sitzungen, die die Module verwenden, und führen Sie das obige Skript erneut aus.
Wenn Uninstall-Module nicht erfolgreich war, löschen Sie alle Ordner, die mit
Azure
,Az
oderAzs.
beginnen, aus den $env:PSModulePath-Speicherorten. Für Windows PowerShell können die SpeicherorteC:\Program Files\WindowsPowerShell\Modules
undC:\Users\{yourusername}\Documents\WindowsPowerShell\Modules
verwendet werden. Für PowerShell Core können die SpeicherorteC:\Program Files\PowerShell\7\Modules
undC:\Users\{yourusername}\Documents\PowerShell\Modules
verwendet werden. Durch Löschen dieser Ordner werden alle vorhandenen Azure PowerShell-Module entfernt.
4. Verbunden: Installieren mit Internetverbindung
Das Azure Stack Az-Modul kann auf einem Windows-Computer mit PowerShell 5.1 oder höher oder auf einer Linux- bzw. macOS-Plattform mit PowerShell 6.x oder höher verwendet werden. Die Verwendung der PowerShellGet-Cmdlets ist die bevorzugte Installationsmethode. Die Funktionsweise dieser Methode ist auf den unterstützten Plattformen gleich.
Führen Sie den folgenden Befehl in einer PowerShell-Sitzung aus, um PowerShellGet mindestens auf Version 2.2.3 zu aktualisieren
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Install-Module PowerShellGet -MinimumVersion 2.2.3 -Force
Schließen Sie die PowerShell-Sitzung, und öffnen Sie eine neue PowerShell-Sitzung, damit das Update wirksam werden kann.
Führen Sie folgendes aus, um Az-Module zu installieren.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Install-Module -Name Az.BootStrapper -Force Install-AzProfile -Profile 2020-09-01-hybrid -Force
Installieren Sie AzureStack PowerShell-Module.
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
Warnung
Die Module Azure Resource Manager (AzureRM) und Az können für PowerShell 5.1 für Windows nicht gleichzeitig installiert sein. Wenn Azure Resource Manager weiterhin auf Ihrem System verfügbar sein soll, installieren Sie das Az-Modul für PowerShell Core 6.x oder höher. Installieren Sie dazu PowerShell Core 6.x oder höher, und befolgen Sie dann diese Anweisungen in einem PowerShell Core-Terminal.
5. Nicht verbunden: Installieren ohne Internetverbindung
In einem Szenario ohne Internetverbindung müssen Sie zuerst die PowerShell-Module auf einen Computer mit Internetverbindung herunterladen. Anschließend übertragen Sie sie für den Installationsvorgang in das Azure Stack Development Kit (ASDK).
Melden Sie sich bei einem Computer mit Internetverbindung an, und verwenden Sie die folgenden Skripts, um die Pakete „Azure Resource Manager“ und „Azure Stack Hub“ abhängig von Ihrer Version von Azure Stack Hub herunterzuladen.
Die Installation umfasst fünf Schritte:
- Installieren von Azure Stack Hub-PowerShell auf einem verbundenen Computer.
- Aktivieren zusätzlicher Speicherfunktionen
- Übertragen der PowerShell-Pakete auf Ihre getrennte Arbeitsstation
- Manuelles Bootstrapping des NuGet-Anbieters auf Ihrer getrennten Arbeitsstation
- Bestätigen der Installation von PowerShell
Installieren von Azure Stack Hub PowerShell
Sie können entweder AzureRM - oder Az-Module verwenden. Mit dem folgenden Code werden Az-Module aus einem vertrauenswürdigen Onlinerepository https://www.powershellgallery.com/gespeichert.
[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
Nachdem die Az-Module installiert wurden, fahren Sie mit der Installation der AzureStack-Module fort.
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
Hinweis
Für Computer ohne Internetverbindung empfiehlt es sich, das folgende Cmdlet auszuführen, um das Sammeln von Telemetriedaten zu deaktivieren. Andernfalls kommt es bei den Cmdlets unter Umständen zu einer Leistungsbeeinträchtigung, wenn die Telemetriedatensammlung nicht deaktiviert wird. Dies betrifft nur Computer ohne Internetverbindung.
Disable-AzDataCollection
Hinzufügen Ihrer Paketen auf Ihrer Arbeitsstation
Kopieren Sie die heruntergeladenen Pakete auf ein USB-Gerät.
Melden Sie sich bei der getrennten Arbeitsstation an, und kopieren Sie die Pakete vom USB-Gerät an einen Speicherort auf der Arbeitsstation.
Manuelles Bootstrapping des NuGet-Anbieters auf Ihrer getrennten Arbeitsstation Anweisungen finden Sie unter Manuelles Bootstrapping des NuGet-Anbieters auf einem Computer, der nicht mit dem Internet verbunden ist.
Registrieren Sie diesen Speicherort als Standardrepository, und installieren Sie die Module
AzureRM
undAzureStack
aus diesem Repository:# 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
Installieren Sie die Az-Module.
Install-Module -Name Az -Repository $RepoName -RequiredVersion 2.0.1 -Scope AllUsers
Installieren Sie die AzureStack-Module.
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
Bestätigen der Installation der PowerShell
Führen Sie den folgenden Befehl aus, um die Installation zu überprüfen:
Get-Module -Name "Az*" -ListAvailable
Get-Module -Name "Azs*" -ListAvailable
6. Konfigurieren von PowerShell für die Verwendung eines Proxyservers
In Szenarien, für die ein Proxyserver für den Zugriff auf das Internet erforderlich ist, konfigurieren Sie zuerst PowerShell für die Verwendung eines vorhandenen Proxyservers:
Öffnen Sie eine PowerShell-Eingabeaufforderung mit erhöhten Rechten.
Führen Sie die folgenden Befehle aus:
#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. Verwenden des Az-Moduls
Sie können die Cmdlets und Codebeispiele basierend auf AzureRM-Modulen verwenden. Allerdings sollten Sie den Namen der Module und Cmdlets ändern. Die Modulnamen haben sich geändert, sodass AzureRM
und Azure zu Az
werden. Gleiches gilt für die Cmdlets. So wurde beispielsweise das Modul AzureRM.Compute
in Az.Compute
umbenannt.
New-AzureRMVM
wurde zu New-AzVM
, und Get-AzureStorageBlob
ist jetzt Get-AzStorageBlob
.
Eine ausführlichere Erläuterung und Anleitungen zum Verschieben eines AzureRM-Skripts in Az sowie Informationen zu Breaking Changes im Az-Modul von Azure Stack Hub finden Sie unter Migrieren von AzureRM zum Az-Modul von Azure PowerShell.
Bekannte Probleme
Fehler bei der Installation der Az-Module
- Geltungsbereich: Dieses Problem betrifft das Release 2002 und höhere Releases
- Ursache: Bei der Installation des Moduls wird ein Fehler ausgelöst. Die Fehlermeldung beginnt wie folgt:
Register-PacakgeSource : A parameter cannot be found that matches parameter name. 'PackageManagementProvider'.
Oder die Fehlermeldung enthält den folgenden Text:PackageManagement\Install-Package : Cannot convert value "2.0.1-preview" to type "System.Version". Error: "Input string was not in a correct format."
- Abhilfe: Führen Sie das folgende Cmdlet in der gleichen Sitzung aus:
Install-Module PowershellGet -MinimumVersion 2.3.0 -Force
Schließen Sie die Sitzung, und starten Sie eine neue PowerShell-Sitzung mit erhöhten Rechten. - Häufigkeit: Allgemein
Bei der Installation des Az-Moduls wird fälschlicherweise ein Fehler vom Typ „Administratorrechte erforderlich“ ausgelöst
- Geltungsbereich: Dieses Problem betrifft das Release 2002 und höhere Releases
- Ursache: Wenn Sie das Modul über eine Eingabeaufforderung mit erhöhten Rechten installieren, wird ein Fehler ausgelöst. Der Fehler lautet
Administrator rights required
. - Abhilfe: Schließen Sie die Sitzung, und starten Sie eine neue PowerShell-Sitzung mit erhöhten Rechten. Stellen Sie sicher, dass Az nicht bereits vorhanden ist. Das Kontomodul wurde in die Sitzung geladen.
- Häufigkeit: Allgemein
Cmdlet New-AzVmss schlägt fehl, wenn das Profil „2020-09-01-hybrid“ verwendet wird
- Geltungsbereich: Dieses Problem gilt für das Profil 2020-09-01-hybrid.
- Ursache: Das Cmdlet New-AzVmss funktioniert nicht mit dem Profil „2020-09-01-hybrid“.
- Problembehebung: Verwenden Sie eine Vorlage zum Erstellen einer VM-Skalierung gruppe. Ein Beispiel für die Azure Stack Hub Resource Manager-Vorlagen finden Sie im GitHub-Repository AzureStack-QuickStart-Templates/101-vmss-windows-vm, ebenso wie Anweisungen zur Verwendung von Azure Stack Hub Resource Manager mit Visual Studio Code.
- Häufigkeit: Allgemein
Fehler beim Ausführen eines PowerShell-Skripts ausgelöst
Geltungsbereich: Dieses Problem betrifft das Release 2002 und höhere Releases.
Ursache: Wenn Sie Skripts oder PowerShell-Befehle mithilfe der spezifischen Azure Stack Hub-Module ausführen, muss Ihr Skript oder Befehl im Modul verfügbar sein. Es wird möglicherweise der folgende Fehler angezeigt:
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.
Das aktuelle Modul ist das PowerShell Az-Modul, das das PowerShell AzureRM-Modul ersetzt hat. Wenn Sie versuchen, ein Skript auszuführen, das AzureRM-Befehle aufruft, obwohl das Az-Modul installiert ist, löst Ihr Skript Fehler aus. Wenn Sie versuchen, ein Skript auszuführen, das Az-Befehle aufruft, obwohl das AzureRM-Modul installiert ist, löst Ihr Skript Fehler aus.
Abhilfe: Deinstallieren Sie das AzureRM-Modul, und installieren Sie das Az-Modul. Anleitungen finden Sie unter Installieren des PowerShell Az-Moduls für Azure Stack Hub. Wenn Sie die Azure Stack Hub-Tools verwenden, nutzen Sie die Az-Tools. Klonen Sie das Repository „Tools“ aus dem Branch az, oder laden Sie AzureStack-Tools aus dem Branch az herunter. Anweisungen dazu finden Sie unter Herunterladen von Azure Stack Hub-Tools aus GitHub.
Häufigkeit: Allgemein
Fehler bei New-AzADServicePrincipal und New-AzADApplication
Anwendbar: Azure Stack-Umgebungen mit Microsoft Entra ID.
Ursache: Azure Active Directory Graph hat einen Breaking Change eingeführt, um
IdentifierUri
für Active Directory-Anwendungen auf die Unterdomänen einer überprüften Domäne im Verzeichnis zu beschränken. Vor der Änderung wurde diese Einschränkung nur für mehrinstanzenfähige Apps erzwungen. Diese Einschränkung gilt jetzt auch für Einzelmandanten-Apps. Die Änderung führt zu folgendem Fehler:Values of identifierUris property must use a verified domain of the organization or its subdomain' is displayed when running
.Abhilfe: Sie haben zwei Möglichkeiten, um diese Einschränkung zu umgehen.
Sie müssen einen Dienstprinzipalnamen verwenden, der eine Unterdomäne des Verzeichnismandanten ist. Wenn das Verzeichnis beispielsweise
contoso.onmicrosoft.com
ist, muss der Dienstprinzipalname die Form<foo>.contoso.onmicrosoft.com
aufweisen. Verwenden Sie das folgende Cmdlet:New-AzADServicePrincipal -Role Owner -DisplayName <foo>.contoso.onmicrosoft.com
Weitere Informationen zur Identität und zur Verwendung von Dienstprinzipalen mit Azure Stack Hub finden Sie in der Übersicht über Identitätsanbieter für Azure Stack Hub.
Erstellen Sie die Microsoft Entra-App, die eine gültige
IdentifierUri
app bereitstellt, und erstellen Sie dann den Dienstprinzipal, der der App zugeordnet wird, mithilfe des folgenden Cmdlets:$app=New-AzADApplication -DisplayName 'newapp' -IdentifierUris http://anything.contoso.onmicrosoft.com New-AzADServicePrincipal -Role Owner -ApplicationId $app.ApplicationId
Häufigkeit: Allgemein
Fehler: „SharedTokenCacheCredential-Authentifizierungsfehler“
- Geltungsbereich: Dieses Problem gilt für alle unterstützten Versionen.
- Ursache: Der Fehler SharedTokenCacheCredential-Authentifizierungsfehler wird ausgelöst, wenn mehrere Versionen von AzAccounts zusammen mit dem Azure Stack Hub PowerShell-Modul, Version 2.1.1, installiert sind.
- Abhilfe: Entfernen Sie alle Versionen von AzAccounts, und installieren Sie nur die unterstützte Version 2.2.8 von AzAccounts.
- Häufigkeit: Allgemein