Udostępnij za pośrednictwem


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

Ważny

Wszystkie wersje modułu Programu PowerShell usługi Azure Resource Manager (AzureRM) są nieaktualne i nie są obsługiwane. Moduł Az PowerShell jest teraz zalecanym modułem programu PowerShell do interakcji z platformą Azure i usługą Azure Stack Hub. W tym artykule opisano, jak rozpocząć pracę z modułem Az programu PowerShell. Aby uzyskać informacje o sposobie migracji do modułu Az programu PowerShell, zobacz Migrate from AzureRM to Azure PowerShell Az in Azure Stack Hub (Migrowanie z modułu AzureRM do modułu Az programu Azure PowerShell w usłudze Azure Stack Hub). Aby uzyskać szczegółowe informacje na temat zwiększonej funkcjonalności modułów Az, które zostały przyjęte na globalnej platformie Azure, zobacz Introducing the Azure Az PowerShell module.

Wersja usługi Azure Stack Hub Wersja programu PowerShell usługi 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 PSGallery.

W tym artykule wyjaśniono, jak zainstalować przy użyciu modułu PowerShellGetmoduły Az programu Azure PowerShell oraz zgodne moduły administratora Azure Stack Hub. 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 Uruchamianie programu PowerShell dla usługi Azure Stack Hubprzy użyciu platformy Docker.

Możesz użyć profili interfejsu API , aby określić zgodne punkty końcowe dla dostawców zasobów w usłudze 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 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 PowerShell usługi Azure Resource Manager odpowiadające określonemu profilowi.

Moduły Az programu PowerShell zgodne z usługą Azure Stack Hub można zainstalować w środowiskach z połączeniem 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ą 2002 lub nowszą oraz z zainstalowanymi wszystkimi bieżącymi poprawkami. Aby uzyskać więcej informacji, zobacz informacje o wersji usługi Azure Stack Hub.

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

Aby sprawdzić 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. W razie potrzeby zaktualizuj programu Windows PowerShell 5.1. Jeśli korzystasz z 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
    

Wymagania wstępne dotyczące systemów Linux i Mac

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

Odinstalowywanie istniejących wersji modułów programu PowerShell usługi Azure Stack Hub

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

  • Aby odinstalować istniejące moduły usługi 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 te polecenia cmdlet.

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

Połączono: Instalacja z łącznością z Internetem

Moduł Azure Stack Az współpracuje 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 w taki sam sposób 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 polecenia, 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 usługi 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
    

Bez połączenia: instalacja bez połączenia internetowego

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 przechowywania.
  3. Przetransportuj pakiety programu PowerShell do odłą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. Poniższy kod instaluje moduły Az z zaufanego repozytorium 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 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
    

Notatka

Na maszynach bez połączenia z Internetem zalecamy uruchomienie polecenia cmdlet Disable-AzDataCollection w celu wyłączenia zbierania danych telemetrycznych. W przeciwnym razie możesz doświadczyć spadku wydajności cmdletów. Dotyczy to tylko maszyn bez połączenia z Internetem.

Dodaj pakiety do swojej 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 moduły AzureRM 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. Instalowanie modułów Usługi AzureStackL

    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

Konfigurowanie programu PowerShell do korzystania z 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 wiersz polecenia 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
    

Korzystanie z modułu Az

Nadal można używać poleceń cmdlet i przykładów kodu opartych na modułach AzureRM. Należy jednak zmienić nazwę modułów i cmdletów. Nazwy modułów zostały zmienione w taki sposób, że AzureRM i platforma Azure stały się Az, i tak samo z poleceniami cmdlet. Na przykład nazwa modułu AzureRM.Compute została zmieniona na Az.Compute. New-AzureRMVM jest New-AzVM, a Get-AzureStorageBlob jest teraz Get-AzStorageBlob.

Aby zapoznać się z bardziej szczegółowym omówieniem i wskazówkami dotyczącymi przenoszenia skryptów z AzureRM do Az oraz informacji o zmianach powodujących niezgodność w module Az dla Azure Stack Hub, zobacz Migrate from AzureRM to 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 pojawił się 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."
  • Remediacja: Uruchom następujący 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: typowe

Podczas instalowania modułu Az błędnie pojawia się komunikat o błędzie wymagającym uprawnień administratora.

  • Dotyczy: ten problem dotyczy wersji 2002 i nowszych
  • Przyczyna: Podczas instalowania modułu z okna poleceń z podwyższonymi uprawnieniami jest zgłaszany błąd. Błąd wskazuje: „Administrator rights required”.
  • Korygowanie: zamknij sesję i rozpocznij nową sesję programu PowerShell z podwyższonym poziomem uprawnień. Upewnij się, że nie ma istniejącego Az. Moduł Accounts załadowany w sesji.
  • Wystąpienie: typowe

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

  • Dotyczy: ta kwestia dotyczy profilu hybrydowego 2020-09-01.
  • Przyczyna: Polecenie cmdlet New-AzVmss nie działa z profilem hybrydowym z dnia 2020-09-01.
  • Korygowanie: użyj szablonu do tworzenia zestawu skalowania maszyn wirtualnych. Przykładowe szablony Menedżera Zasobów Azure Stack Hub można znaleźć w repozytorium GitHub AzureStack-QuickStart-Templates/101-vmss-windows-vm. Można znaleźć instrukcje dotyczące korzystania z Menedżera Zasobów Azure Stack Hub w połączeniu z programem Visual Studio Code.
  • Wystąpienie: typowe

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

  • Dotyczy: ten problem dotyczy wersji 2002 i nowszych.

  • Przyczyna: Podczas uruchamiania skryptów lub poleceń PowerShell przy użyciu modułów specyficznych dla usługi Azure Stack Hub, konieczne jest, aby skrypt lub polecenie były dostępne w ramach modułu. 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: typowe

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

  • Dotyczy: środowiska usługi Azure Stack korzystające z identyfikatora Entra firmy Microsoft.

  • Przyczyna: Usługa Azure Active Directory Graph wprowadziła istotną zmianę, aby ograniczyć IdentifierUri dla aplikacji Active Directory do bycia tylko subdomenami zweryfikowanej domeny w katalogu. Przed zmianą to ograniczenie zostało wymuszone tylko dla aplikacji wielodostępnych. Teraz to ograniczenie dotyczy również aplikacji dla pojedynczego dzierżawcy. 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: możesz obejść to ograniczenie na dwa sposoby.

    • Musisz użyć nazwy podstawowej usługi, która jest poddomeną dzierżawcy katalogu. Jeśli na przykład katalog jest 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 pryncypałów usługi z Azure Stack Hub, zobacz Omówienie dostawców tożsamości dla Azure Stack Hub.

    • Utwórz aplikację Microsoft Entra z prawidłowym IdentifierUri, 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: typowe

Błąd: "Uwierzytelnienie za pomocą poświadczeń SharedTokenCache nie powiodło się"

  • Dotyczy: ten problem dotyczy wszystkich obsługiwanych wersji.
  • Przyczyna: Pojawia się błąd SharedTokenCacheCredential związany z niepowodzeniem uwierzytelniania, gdy zainstalowane są różne wersje modułu AzAccounts wraz z modułem PowerShell dla usługi Azure Stack Hub w wersji 2.1.1.
  • Korekta: Usuń wszystkie wersje modułu AzAccounts i zainstaluj tylko obsługiwaną wersję AzAccounts 2.2.8.
  • Wystąpienie: typowe

Następne kroki