Instalowanie modułów Az i Azure Stack programu PowerShell dla usługi Azure Stack Hub

Wersja usługi Azure Stack Hub Wersja programu PowerShell w usłudze AzureStack
2102 2.1.1
2108 2.2.0
2206 2.3.0
2301+ 2.4.0

Aby uzyskać więcej informacji na temat modułów usługi AzureStack, zobacz artykuł PSGallery.

W tym artykule wyjaśniono, jak zainstalować moduły administratora Azure PowerShell Az i zgodne z usługą Azure Stack Hub przy użyciu modułu PowerShellGet. Moduły Az można zainstalować na platformach Windows, macOS i Linux.

Moduły Az dla usługi Azure Stack Hub można również uruchomić w kontenerze platformy Docker. Aby uzyskać instrukcje, zobacz Używanie platformy Docker do uruchamiania programu PowerShell dla usługi Azure Stack Hub.

Jeśli chcesz zainstalować moduł Moduły zasobów programu PowerShell (AzureRM) dla usługi Azure Stack Hub, zobacz Instalowanie modułu AzureRM programu PowerShell dla usługi Azure Stack Hub.

Ważne

Nie będzie nowych wersji modułów usługi Azure Resource Modules. Moduły modułów zasobów platformy Azure są obsługiwane tylko w przypadku krytycznych poprawek. W przyszłości będą dostępne tylko wersje Az dla usługi Azure Stack Hub.

Profile interfejsu API umożliwiają określenie zgodnych punktów końcowych dla dostawców zasobów usługi Azure Stack Hub.

Profile interfejsów API umożliwiają zarządzanie różnicami wersji między platformą Azure i usługą Azure Stack Hub. Profil wersji interfejsu API to zestaw modułów usługi Azure Resource Manager PowerShell z określonymi wersjami interfejsu API. Każda platforma w chmurze ma zestaw obsługiwanych profilów wersji interfejsu API. Na przykład usługa Azure Stack Hub obsługuje określoną wersję profilu, taką jak 2020-09-01-hybrid. Podczas instalowania profilu instalowane są moduły programu Azure Resource Manager PowerShell odpowiadające określonym profilom.

Moduły Az programu PowerShell zgodne z usługą Azure Stack Hub można zainstalować w scenariuszach połączonych z Internetem, częściowo połączonych lub rozłączonych. W tym artykule przedstawiono szczegółowe instrukcje dotyczące tych scenariuszy.

1. Sprawdź wymagania wstępne

Moduły Az są obsługiwane w usłudze Azure Stack Hub z aktualizacją Update 2002 lub nowszą oraz z zainstalowanymi bieżącymi poprawkami. Aby uzyskać więcej informacji, zobacz informacje o wersji usługi Azure Stack Hub .

Moduły Azure PowerShell Az współpracują z programem PowerShell 5.1 lub nowszym w systemie Windows lub powerShell Core 6.x i nowszym na wszystkich platformach. Należy zainstalować najnowszą wersję programu PowerShell Core dostępną dla systemu operacyjnego. Azure PowerShell nie ma innych wymagań podczas uruchamiania w programie PowerShell Core.

Aby sprawdzić używaną wersję programu PowerShell, uruchom polecenie:

$PSVersionTable.PSVersion

Wymagania wstępne dotyczące systemu Windows

Aby użyć programu Azure PowerShell w programie PowerShell 5.1 w systemie Windows:

  1. Jeśli to konieczne, przeprowadź aktualizację do programu Windows PowerShell 5.1. Jeśli używasz systemu Windows 10, masz już zainstalowany program PowerShell 5.1.

  2. Zainstaluj program .NET Framework 4.7.2 lub nowszy.

  3. Upewnij się, że masz najnowszą wersję modułu PowerShellGet. Uruchom następujące polecenia cmdlet z poziomu wiersza polecenia z podwyższonym poziomem uprawnień:

    [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. Wymagania wstępne dotyczące systemów Linux i Mac

Wymagana jest wersja programu PowerShell Core 6.x lub nowsza. Postępuj zgodnie z linkiem , aby uzyskać instrukcje

3. Odinstaluj istniejące wersje modułów programu PowerShell usługi Azure Stack Hub

Przed zainstalowaniem wymaganej wersji upewnij się, że odinstalujesz wszystkie wcześniej zainstalowane moduły usługi Azure Stack Hub azure Resource Manager lub Az programu PowerShell. Odinstaluj moduły przy użyciu jednej z następujących dwóch metod:

  1. Aby odinstalować istniejące moduły programu Azure Resource Manager i Az programu PowerShell, zamknij wszystkie aktywne sesje programu PowerShell i uruchom następujące polecenia cmdlet:

    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
    

    Jeśli wystąpi błąd, taki jak "Moduł jest już używany", zamknij sesje programu PowerShell korzystające z modułów i uruchom ponownie powyższy skrypt.

  2. Jeśli Uninstall-Module nie powiodła się, usuń wszystkie foldery rozpoczynające się od Azure, Azlub Azs. z lokalizacji $env:PSModulePath. W przypadku Windows PowerShell lokalizacje mogą być i C:\Program Files\WindowsPowerShell\ModulesC:\Users\{yourusername}\Documents\WindowsPowerShell\Modules. W przypadku programu PowerShell Core lokalizacje mogą być i C:\Program Files\PowerShell\7\ModulesC:\Users\{yourusername}\Documents\PowerShell\Modules. Usunięcie tych folderów powoduje usunięcie wszystkich istniejących modułów Azure PowerShell.

4. Połączono: instalowanie za pomocą łączności z Internetem

Moduł Az usługi Azure Stack będzie działać z programem PowerShell 5.1 lub nowszym na maszynie z systemem Windows lub programem PowerShell 6.x lub nowszym na platformie Linux lub macOS. Użycie poleceń cmdlet PowerShellGet jest preferowaną metodą instalacji. Ta metoda działa tak samo na obsługiwanych platformach.

  1. Uruchom następujące polecenie z sesji programu PowerShell, aby zaktualizować moduł PowerShellGet do minimalnej wersji 2.2.3

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    Install-Module PowerShellGet -MinimumVersion 2.2.3 -Force
    
  2. Zamknij sesję programu PowerShell, a następnie otwórz nową sesję programu PowerShell, aby aktualizacja mogła obowiązywać.

  3. Uruchom następujące polecenie, aby zainstalować moduły Az.

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    Install-Module -Name Az.BootStrapper -Force
    Install-AzProfile -Profile 2020-09-01-hybrid -Force
    
  4. Zainstaluj moduły programu PowerShell w usłudze AzureStack.

    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
    

Ostrzeżenie

Nie można jednocześnie zainstalować modułów Azure Resource Manager (AzureRM) i Az dla programu PowerShell 5.1 dla systemu Windows. Jeśli musisz zachować dostęp do usługi Azure Resource Manager w systemie, zainstaluj moduł Az dla programu PowerShell Core 6.x lub nowszego. Aby to zrobić, zainstaluj program PowerShell Core w wersji 6.x lub nowszej, a następnie wykonaj następujące instrukcje w terminalu programu PowerShell Core.

5. Rozłączone: instalowanie bez połączenia internetowego

W scenariuszu odłączonym należy najpierw pobrać moduły programu PowerShell na maszynę, która ma łączność z Internetem. Następnie należy przenieść je do zestawu Azure Stack Development Kit (ASDK) na potrzeby instalacji.

Zaloguj się do komputera z łącznością z Internetem i użyj następujących skryptów, aby pobrać pakiety usługi Azure Resource Manager i Azure Stack Hub w zależności od wersji usługi Azure Stack Hub.

Instalacja ma pięć kroków:

  1. Zainstaluj program PowerShell usługi Azure Stack Hub na połączonej maszynie.
  2. Włącz dodatkowe funkcje magazynu.
  3. Przetransportuj pakiety programu PowerShell do rozłączonej stacji roboczej.
  4. Ręcznie uruchom dostawcę NuGet na odłączonej stacji roboczej.
  5. Potwierdź instalację programu PowerShell.

Instalowanie programu PowerShell w usłudze Azure Stack Hub

  1. Możesz użyć modułów AzureRM lub Az . Poniższy kod zapisuje moduły Az z zaufanego repozytorium https://www.powershellgallery.com/online .

    [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. Po zainstalowaniu modułów Az przejdź do instalowania modułów usługi AzureStack.

    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
    

Uwaga

Na maszynach bez połączenia z Internetem zalecamy wykonanie następującego polecenia cmdlet w celu wyłączenia zbierania danych telemetrycznych. Może wystąpić obniżenie wydajności poleceń cmdlet bez wyłączania zbierania danych telemetrycznych. Dotyczy to tylko maszyn bez połączeń internetowych

Disable-AzDataCollection

Dodawanie pakietów do stacji roboczej

  1. Skopiuj pobrane pakiety do urządzenia USB.

  2. Zaloguj się do odłączonej stacji roboczej i skopiuj pakiety z urządzenia USB do lokalizacji na stacji roboczej.

  3. Ręcznie uruchom dostawcę NuGet na odłączonej stacji roboczej. Aby uzyskać instrukcje, zobacz Ręczne uruchamianie dostawcy NuGet na maszynie, która nie jest połączona z Internetem.

  4. Zarejestruj tę lokalizację jako repozytorium domyślne i zainstaluj AzureRM moduły i AzureStack z tego repozytorium:

     # 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. Zainstaluj moduły Az.

     Install-Module -Name Az -Repository $RepoName -RequiredVersion 2.0.1 -Scope AllUsers
    
  6. Zainstaluj moduły usługi AzureStack.

    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
    

Potwierdzanie instalacji programu PowerShell

Potwierdź instalację, uruchamiając następujące polecenie:

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

6. Konfigurowanie programu PowerShell do używania serwera proxy

W scenariuszach wymagających serwera proxy dostępu do Internetu należy najpierw skonfigurować program PowerShell do korzystania z istniejącego serwera proxy:

  1. Otwórz monit programu PowerShell z podwyższonym poziomem uprawnień.

  2. Uruchom następujące polecenia:

    #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. Korzystanie z modułu Az

Możesz użyć poleceń cmdlet i przykładów kodu opartych na modułach AzureRM. Należy jednak zmienić nazwę modułów i poleceń cmdlet. Nazwy modułów zostały zmienione tak, aby AzureRM platforma Azure stała się Azi taka sama w przypadku poleceń cmdlet. Na przykład nazwa modułu AzureRM.Compute została zmieniona na Az.Compute.Polecenie New-AzureRMVM stało się poleceniem New-AzVM, a polecenie Get-AzureStorageBlob to teraz polecenie Get-AzStorageBlob.

Aby uzyskać bardziej szczegółowe omówienie i wskazówki dotyczące przenoszenia skryptu AzurRM do modułu Az i zmian powodujących niezgodność w module Az usługi Azure Stack Hub, zobacz Migrowanie z modułu AzureRM do modułu Azure PowerShell Az.

Znane problemy

Błąd zgłaszany podczas instalowania modułów Az

  • Dotyczy: ten problem dotyczy wersji 2002 i nowszych
  • Przyczyna: Podczas instalowania modułu jest zgłaszany błąd. Rozpoczyna się komunikat o błędzie: Register-PacakgeSource : A parameter cannot be found that matches parameter name. 'PackageManagementProvider'. Lub komunikat o błędzie może zawierać następujący tekst: PackageManagement\Install-Package : Cannot convert value "2.0.1-preview" to type "System.Version". Error: "Input string was not in a correct format."
  • Korygowanie: uruchom następujące polecenie cmdlet w tej samej sesji:
    Install-Module PowershellGet -MinimumVersion 2.3.0 -Force
    Zamknij sesję i rozpocznij nową sesję programu PowerShell z podwyższonym poziomem uprawnień.
  • Wystąpienie: Wspólne

Podczas instalowania modułu Az błędnie zgłaszany jest błąd Administracja praw wymaganych

  • Dotyczy: ten problem dotyczy wersji 2002 i nowszych
  • Przyczyna: Podczas instalowania modułu z wiersza polecenia z podwyższonym poziomem uprawnień jest zgłaszany błąd. Błąd mówi: Administrator rights required.
  • Korygowanie: zamknij sesję i rozpocznij nową sesję programu PowerShell z podwyższonym poziomem uprawnień. Upewnij się, że nie ma istniejącego modułu Az. Moduł accounts załadowany w sesji.
  • Wystąpienie: Wspólne

Polecenie cmdlet New-AzVmss kończy się niepowodzeniem w przypadku korzystania z profilu hybrydowego 2020-09-01

  • Dotyczy: ten problem dotyczy profilu hybrydowego 2020-09-01.
  • Przyczyna: Polecenie cmdlet New-AzVmss nie działa z profilem hybrydowym 2020-09-01.
  • Korygowanie: użyj szablonu do tworzenia zestawu skalowania maszyn wirtualnych. Przykładowe szablony usługi Azure Stack Hub Resource Manager można znaleźć w repozytorium GitHub AzureStack-QuickStart-Templates/101-vmss-windows-vm. Instrukcje dotyczące korzystania z menedżerów zasobów usługi Azure Stack Hub z Visual Studio Code.
  • Wystąpienie: Wspólne

Błąd zgłoszony podczas uruchamiania skryptu programu PowerShell

  • Dotyczy: ten problem dotyczy wersji 2002 i nowszych.

  • Przyczyna: Podczas uruchamiania skryptów lub poleceń programu PowerShell przy użyciu modułów specyficznych dla usługi Azure Stack Hub potrzebny będzie skrypt lub polecenie, aby było dostępne w module. Może zostać wyświetlony następujący błąd:

    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.
    

    Bieżącym modułem jest moduł Az programu PowerShell, który zastąpił moduł AzureRM programu PowerShell. Jeśli spróbujesz uruchomić skrypt wywołujący polecenia modułu AzureRM po zainstalowaniu modułu Az, skrypt zgłosi błędy. Jeśli spróbujesz uruchomić skrypt wywołujący polecenia Az po zainstalowaniu modułu AzureRM, skrypt zgłosi błędy.

  • Korygowanie: odinstaluj moduł AzureRM i zainstaluj moduł Az. Aby uzyskać instrukcje, zobacz Instalowanie modułu Az programu PowerShell dla usługi Azure Stack Hub. Jeśli używasz narzędzi usługi Azure Stack Hub, użyj narzędzi Az. Sklonuj repozytorium narzędzi z gałęzi az lub pobierz AzureStack-Tools z gałęzi az . Aby uzyskać instrukcje, zobacz Pobieranie narzędzi usługi Azure Stack Hub z usługi GitHub

  • Wystąpienie: Wspólne

Błąd zgłoszony przy użyciu New-AzADServicePrincipal i New-AzADApplication

  • Dotyczy: środowiska usługi Azure Stack korzystające z Tożsamość Microsoft Entra.

  • Przyczyna: Usługa Azure Active Directory Graph wprowadziła zmianę powodującą niezgodność, aby ograniczyć IdentifierUri domenę podrzędną zweryfikowanej domeny w katalogu dla aplikacji usługi Active Directory. Przed zmianą to ograniczenie było wymuszane tylko dla aplikacji wielodostępnych. Teraz to ograniczenie dotyczy również aplikacji z jedną dzierżawą. Zmiana spowoduje następujący błąd: Values of identifierUris property must use a verified domain of the organization or its subdomain' is displayed when running.

  • Korygowanie: to ograniczenie można obejść na dwa sposoby.

    • Należy użyć nazwy jednostki usługi, która jest poddomeną dzierżawy katalogu. Jeśli na przykład katalog to contoso.onmicrosoft.com, nazwa główna usługi musi mieć postać <foo>.contoso.onmicrosoft.com. Użyj następującego polecenia cmdlet:

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

      Aby uzyskać więcej informacji na temat tożsamości i używania jednostek usługi w usłudze Azure Stack Hub, zobacz Omówienie dostawców tożsamości dla usługi Azure Stack Hub.

    • Utwórz aplikację Microsoft Entra z prawidłowym IdentifierUri kodem, a następnie utwórz jednostkę usługi kojarzącą aplikację przy użyciu następującego polecenia cmdlet:

      $app=New-AzADApplication -DisplayName 'newapp' -IdentifierUris http://anything.contoso.onmicrosoft.com
      New-AzADServicePrincipal -Role Owner -ApplicationId $app.ApplicationId
      
  • Wystąpienie: Wspólne

Błąd: "SharedTokenCacheCredential authentication failed" (Niepowodzenie uwierzytelniania sharedTokenCacheCredential)

  • Dotyczy: ten problem dotyczy wszystkich obsługiwanych wersji.
  • Przyczyna: Podczas instalowania wielu wersji modułu AzAccounts z modułem Azure Stack Hub PowerShell w wersji 2.1.1 jest zgłaszany błąd SharedTokenCacheCredential.
  • Korygowanie: usuń wszystkie wersje modułu AzAccounts i zainstaluj tylko obsługiwane moduły AzAccounts w wersji 2.2.8.
  • Wystąpienie: Wspólne

Następne kroki