Instalowanie modułu Az programu PowerShell dla usługi Azure Stack Hub

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

Prawdopodobnie nie będą dostępne nowe wersje modułów zasobów platformy Azure. 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 modułu 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 interfejsu 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 programu PowerShell usługi Azure Resource Manager 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ślonemu profilowi.

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 albo programem PowerShell Core 6.x lub 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 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 zostały odinstalowane 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 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ć C:\Program Files\WindowsPowerShell\Modules następujące: i C:\Users\{yourusername}\Documents\WindowsPowerShell\Modules. W przypadku programu PowerShell Core lokalizacje mogą mieć C:\Program Files\PowerShell\7\Modules wartość i C:\Users\{yourusername}\Documents\PowerShell\Modules. Usunięcie tych folderów powoduje usunięcie wszystkich istniejących modułów Azure PowerShell.

4. Połączone: instalowanie z łącznością z Internetem

Moduł Azure Stack Az będzie działać z programem PowerShell 5.1 lub nowszym na maszynie z systemem Windows albo 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 umożliwić zastosowanie aktualizacji.

  1. Uruchom następujące polecenie z sesji programu PowerShell:

    [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 
    
  1. Uruchom następujące polecenie z sesji programu PowerShell:

    [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
    

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łączono: instalowanie bez połączenia z Internetem

W scenariuszu bez połączenia najpierw pobierz 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 poniższych skryptów, aby pobrać pakiety usługi Azure Resource Manager i Azure Stack Hub w zależności od używanej 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

Usługa Azure Stack Hub 2108 lub nowsza.

Możesz użyć modułów azure Resource Manager lub Az. Aby uzyskać informacje na temat usługi Azure Resource Manager, zobacz instrukcje w temacie Instalowanie modułu AzureRM programu PowerShell. Poniższy kod zapisuje moduły 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
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $savedModulesPath -Force -RequiredVersion 2.2.0

Azure Stack Hub 2102.

Możesz użyć modułów azure Resource Manager lub Az. Aby uzyskać informacje na temat usługi Azure Resource Manager, zobacz instrukcje w temacie Instalowanie modułu AzureRM programu PowerShell. Poniższy kod zapisuje moduły 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
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ć spadek 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 na urządzenie 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 domyślne repozytorium 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

 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

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 używania 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 usłudze Azure Resource Manager. 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 usługi Azure Active Directory (Azure AD).

  • 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ę Azure AD 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