Azure Stack Hub için PowerShell Az modülünü yükleme

Bu makalede, PowerShellGet kullanarak Azure PowerShell Az ve uyumlu Azure Stack Hub yönetici modüllerinin nasıl yükleneceği açıklanmaktadır. Az modülleri Windows, macOS ve Linux platformlarına yüklenebilir.

Azure Stack Hub için Az modüllerini bir Docker kapsayıcısında da çalıştırabilirsiniz. Yönergeler için bkz. Azure Stack Hub için PowerShell'i çalıştırmak için Docker kullanma.

Azure Stack Hub için PowerShell Kaynak Modülleri (AzureRM) modülünü yüklemek istiyorsanız bkz. Azure Stack Hub için PowerShell AzureRM modülünü yükleme.

Önemli

Büyük olasılıkla yeni Azure Kaynak Modülleri modülü sürümleri olmayacaktır. Azure Kaynak Modülleri modülleri yalnızca kritik düzeltmeler için destek altındadır. Bundan sonra Azure Stack Hub için yalnızca Az sürümleri sunulacaktır.

Api profillerini kullanarak Azure Stack Hub kaynak sağlayıcıları için uyumlu uç noktaları belirtebilirsiniz.

API profilleri, Azure ile Azure Stack Hub arasındaki sürüm farklarını yönetmek için bir yol sağlar. API sürüm profili, belirli API sürümlerine sahip bir dizi Azure Resource Manager PowerShell modülüdür. Her bulut platformunun desteklenen api sürümü profilleri kümesi vardır. Örneğin, Azure Stack Hub 2020-09-01-hybrid gibi belirli bir profil sürümünü destekler. Bir profil yüklediğinizde, belirtilen profile karşılık gelen Azure Resource Manager PowerShell modülleri yüklenir.

Azure Stack Hub uyumlu PowerShell Az modüllerini İnternet'e bağlı, kısmen bağlı veya bağlantısı kesilmiş senaryolara yükleyebilirsiniz. Bu makalede, bu senaryolara yönelik ayrıntılı yönergelerde size yol gösterilir.

1. Önkoşullarınızı doğrulayın

Az modülleri, Güncelleştirme 2002 veya sonraki sürümleriyle ve geçerli düzeltmelerin yüklü olduğu Azure Stack Hub'da desteklenir. Daha fazla bilgi için bkz. Azure Stack Hub sürüm notları .

Azure PowerShell Az modülleri, Windows üzerinde PowerShell 5.1 veya üzeri ya da tüm platformlarda PowerShell Core 6.x ve üzeri ile çalışır. İşletim sisteminiz için kullanılabilen en son PowerShell Core sürümünü yüklemeniz gerekir. Azure PowerShell, PowerShell Core'da çalıştırıldığında başka bir gereksinime sahip değildir.

PowerShell sürümünüzü denetlemek için şu komutu çalıştırın:

$PSVersionTable.PSVersion

Windows önkoşulları

Azure PowerShell’i Windows üzerinde PowerShell 5.1’de kullanmak için:

  1. Gerekirse Windows PowerShell 5.1'e güncelleştirin. Windows 10 kullanıyorsanız, zaten PowerShell 5.1 yüklüdür.
  2. .NET Framework 4.7.2 veya sonraki sürümünü yükleyin.
  3. En son PowerShellGet sürümünü kullandığınızdan emin olun. Yükseltilmiş bir komut isteminden aşağıdaki cmdlet'leri çalıştırın:
[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. Linux ve Mac için önkoşullar

PowerShell Core 6.x veya sonraki bir sürüm gereklidir. Yönergeler için bağlantıyı izleyin

3. Azure Stack Hub PowerShell modüllerinin mevcut sürümlerini kaldırma

Gerekli sürümü yüklemeden önce, daha önce yüklenmiş azure stack hub Azure Resource Manager veya Az PowerShell modüllerini kaldırdığınızdan emin olun. Aşağıdaki iki yöntemden birini kullanarak modülleri kaldırın:

  1. Mevcut Azure Resource Manager ve Az PowerShell modüllerini kaldırmak için tüm etkin PowerShell oturumlarını kapatın ve aşağıdaki cmdlet'leri çalıştırın:

    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
    

    'Modül zaten kullanılıyor' gibi bir hatayla karşılaşırsanız, modülleri kullanan PowerShell oturumlarını kapatın ve yukarıdaki betiği yeniden çalıştırın.

  2. Uninstall-Module başarılı olmazsa, , Azveya Azs. ile Azurebaşlayan tüm klasörleri $env:PSModulePath konumlarından silin. Windows PowerShell için konumlar ve C:\Users\{yourusername}\Documents\WindowsPowerShell\ModulesolabilirC:\Program Files\WindowsPowerShell\Modules. PowerShell Core için konumlar ve C:\Users\{yourusername}\Documents\PowerShell\ModulesolabilirC:\Program Files\PowerShell\7\Modules. Bu klasörlerin silinmesi, mevcut Azure PowerShell modüllerini kaldırır.

4. Bağlandı: İnternet bağlantısı ile yükleme

Azure Stack Az modülü Bir Windows makinesinde PowerShell 5.1 veya üzeri, Linux veya macOS platformunda PowerShell 6.x veya üzeri ile çalışır. PowerShellGet cmdlet’lerinin kullanılması, tercih edilen yükleme yöntemidir. Bu yöntem desteklenen platformlarda aynı şekilde çalışır.

  1. PowerShellGet'i en az 2.2.3 sürümüne güncelleştirmek için bir PowerShell oturumundan aşağıdaki komutu çalıştırın

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
    Install-Module PowerShellGet -MinimumVersion 2.2.3 -Force
    
  2. Güncelleştirmenin etkili olabilmesi için PowerShell oturumunuzu kapatın ve yeni bir PowerShell oturumu açın.

  1. Bir PowerShell oturumunda aşağıdaki komutu çalıştırın:

    [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. Bir PowerShell oturumunda aşağıdaki komutu çalıştırın:

    [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
    

Uyarı

Windows için PowerShell 5.1 için Azure Resource Manager (AzureRM) ve Az modüllerini aynı anda yükleyemezsiniz. Azure Resource Manager sisteminizde kullanılabilir durumda tutmanız gerekiyorsa PowerShell Core 6.x veya üzeri için Az modülünü yükleyin. Bunu yapmak için PowerShell Core 6.x veya üzerini yükleyin ve ardından bir PowerShell Core terminalinde bu yönergeleri izleyin.

5. Bağlantısı kesildi: İnternet bağlantısı olmadan yükleme

Bağlantısız bir senaryoda, önce PowerShell modüllerini İnternet bağlantısı olan bir makineye indirirsiniz. Ardından, bunları yükleme için Azure Stack Geliştirme Seti'ne (ASDK) aktarırsınız.

İnternet bağlantısı olan bir bilgisayarda oturum açın ve Azure Stack Hub sürümünüze bağlı olarak Azure Resource Manager ve Azure Stack Hub paketlerini indirmek için aşağıdaki betikleri kullanın.

Yüklemenin beş adımı vardır:

  1. Azure Stack Hub PowerShell'i bağlı bir makineye yükleyin.
  2. Ek depolama özelliklerini etkinleştirin.
  3. PowerShell paketlerini bağlantısı kesilmiş iş istasyonunuza aktarın.
  4. Bağlantısı kesilmiş iş istasyonunuzda NuGet sağlayıcısını el ile önyükleme.
  5. PowerShell'in yüklenmesini onaylayın.

Azure Stack Hub PowerShell'i yükleme

Azure Stack Hub 2108 veya üzeri.

Azure Resource Manager veya Az modüllerini kullanabilirsiniz. Azure Resource Manager için PowerShell AzureRM modülünü yükleme yönergelerine bakın. Aşağıdaki kod, modülleri güvenilir çevrimiçi deposundan https://www.powershellgallery.com/kaydeder.

[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.

Azure Resource Manager veya Az modüllerini kullanabilirsiniz. Azure Resource Manager için PowerShell AzureRM modülünü yükleme yönergelerine bakın. Aşağıdaki kod, modülleri güvenilir çevrimiçi deposundan https://www.powershellgallery.com/kaydeder.

[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

Not

İnternet bağlantısı olmayan makinelerde, telemetri veri toplamayı devre dışı bırakmak için aşağıdaki cmdlet'i yürütmenizi öneririz. Telemetri verileri toplamayı devre dışı bırakmadan cmdlet'lerde performans düşüşü yaşayabilirsiniz. Bu yalnızca İnternet bağlantısı olmayan makineler için geçerlidir

Disable-AzDataCollection

Paketlerinizi iş istasyonunuza ekleme

  1. İndirilen paketleri bir USB cihazına kopyalayın.

  2. Bağlantısı kesilmiş iş istasyonunda oturum açın ve paketleri USB cihazından iş istasyonundaki bir konuma kopyalayın.

  3. Bağlantısı kesilmiş iş istasyonunuzda NuGet sağlayıcısını el ile önyükleme. Yönergeler için bkz. İnternet'e bağlı olmayan bir makinede NuGet sağlayıcısını el ile önyükleme.

  4. Bu konumu varsayılan depo olarak kaydedin ve ve AzureStack modüllerini bu depodan yükleyinAzureRM:

 # 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

PowerShell yüklenmesini onaylama

Aşağıdaki komutu çalıştırarak yüklemeyi onaylayın:

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

6. PowerShell'i ara sunucu kullanacak şekilde yapılandırma

İnternet'e erişmek için bir ara sunucu gerektiren senaryolarda, önce PowerShell'i var olan bir ara sunucuyu kullanacak şekilde yapılandırabilirsiniz:

  1. Yükseltilmiş bir PowerShell komu istemi açın.

  2. Aşağıdaki komutları çalıştırın:

    #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. Az modülünü kullanın

Azure Resource Manager temelinde cmdlet'leri ve kod örneklerini kullanabilirsiniz. Ancak modüllerin ve cmdlet'lerin adını değiştirmek isteyeceksiniz. Modül adları, Azure'ın AzureRM ve cmdlet'ler için aynı olacak Azşekilde değiştirildi. Örneğin, AzureRM.Compute modülü Az.Compute olarak yeniden adlandırılmıştır.Şimdi New-AzureRMVM New-AzVM ve Get-AzureStorageBlob de Get-AzStorageBlob olmuştur.

AzurRM betiğini Az'ye taşımaya ve Azure Stack Hub'ın Az modülündeki hataya neden olan değişikliklere yönelik daha kapsamlı bir tartışma ve kılavuz için bkz. AzureRM'den Azure PowerShell Az'ye geçiş.

Bilinen sorunlar

Az modülleri yüklenirken hata oluştu

  • Uygulanabilir: Bu sorun 2002 ve üzeri için geçerlidir
  • Neden: Modülü yüklerken bir hata oluşur. Hata iletisi başlar: Register-PacakgeSource : A parameter cannot be found that matches parameter name. 'PackageManagementProvider'. Veya hata iletisi aşağıdaki metni içerebilir: PackageManagement\Install-Package : Cannot convert value "2.0.1-preview" to type "System.Version". Error: "Input string was not in a correct format."
  • Düzeltme: Aynı oturumda aşağıdaki cmdlet'i çalıştırın:
    Install-Module PowershellGet -MinimumVersion 2.3.0 -Force
    Oturumunuzu kapatın ve yeni bir yükseltilmiş PowerShell oturumu başlatın.
  • Oluşum: Ortak

Az modülünü yüklerken gerekli Yönetici hakları hatası oluşuyor

  • Uygulanabilir: Bu sorun 2002 ve üzeri için geçerlidir
  • Neden: Modülü yükseltilmiş bir istemden yüklerken bir hata oluşur. Hatada , Administrator rights requiredifadesi yer alır.
  • Düzeltme: Oturumunuzu kapatın ve yeni bir yükseltilmiş PowerShell oturumu başlatın. Mevcut bir Az olmadığından emin olun. Oturumda yüklenen hesaplar modülü.
  • Oluşum: Ortak

2020-09-01-karma profili kullanılırken Cmdlet New-AzVmss başarısız oluyor

  • Geçerli: Bu sorun 2020-09-01-karma profili için geçerlidir.
  • Neden: New-AzVmss cmdlet'i 2020-09-01-karma profiliyle çalışmıyor.
  • Düzeltme: Sanal makine ölçek kümesi oluşturmak için bir şablon kullanın. Azure Stack Hub Resource Manager şablonlarının bir örneğini GitHub Deposu AzureStack-QuickStart-Templates/101-vmss-windows-vm'de bulabilir ve Visual Studio Code ile Azure Stack Hub Kaynak Yöneticileri'ni kullanma yönergelerini bulabilirsiniz.
  • Oluşum: Ortak

PowerShell betiği çalıştırılırken hata oluştu

  • Uygulanabilir: Bu sorun 2002 ve üzeri için geçerlidir.

  • Neden: Azure Stack Hub'a özgü modülleri kullanarak betikleri veya PowerShell komutlarını çalıştırırken betiğinizin veya komutunuzun modülde kullanılabilir olması gerekir. Aşağıdaki hatayı görebilirsiniz:

    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.
    

    Geçerli modül, PowerShell AzureRM modülünün yerini alan PowerShell Az modülüdür. Az modülü yüklendiğinde AzureRM komutlarını çağıran bir betik çalıştırmayı denerseniz, betiğiniz hata oluşturur. Veya AzureRM modülü yüklendiğinde Az komutlarını çağıran bir betik çalıştırmayı denerseniz, betiğiniz hata oluşturur.

  • Düzeltme: AzureRM modülünü kaldırın ve Az modülünü yükleyin. Yönergeler için bkz. Azure Stack Hub için PowerShell Az modülünü yükleme. Azure Stack Hub Araçları'nı kullanıyorsanız Az araçlarını kullanın. az dalından araç deposunu kopyalayın veya az dalından AzureStack-Tools indirin. Yönergeler için bkz. GitHub'dan Azure Stack Hub araçlarını indirme

  • Oluşum: Ortak

New-AzADServicePrincipal ve New-AzADApplication ile hata oluştu

  • Uygulanabilir: Azure Active Directory (Azure AD) kullanan Azure Stack ortamları.

  • Neden: Azure Active Directory Graph, Active Directory uygulamalarının dizindeki IdentifierUri doğrulanmış bir etki alanının alt etki alanları olmasını kısıtlamak için hataya neden olan bir değişiklik yaptı. Değişiklik öncesinde bu kısıtlama yalnızca çok kiracılı uygulamalar için zorunlu kılınmıştı. Artık bu kısıtlama tek kiracılı uygulamalar için de geçerlidir. Değişiklik şu hatayla sonuçlanır: Values of identifierUris property must use a verified domain of the organization or its subdomain' is displayed when running.

  • Düzeltme: Bu kısıtlamaya iki şekilde geçici bir çözüm bulabilirsiniz.

    • Dizin kiracısının alt etki alanı olan bir hizmet ilkesi adı kullanmanız gerekir. Örneğin, dizin ise contoso.onmicrosoft.com, hizmet asıl adı biçiminde <foo>.contoso.onmicrosoft.comolmalıdır. Aşağıdaki cmdlet'i kullanın:

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

      Azure Stack Hub ile kimlik ve hizmet sorumlularını kullanma hakkında daha fazla bilgi için bkz. Azure Stack Hub için kimlik sağlayıcılarına genel bakış.

    • Geçerli IdentifierUri bir uygulama sağlayan Azure AD uygulamasını oluşturun ve ardından aşağıdaki cmdlet'i kullanarak uygulamayı ilişkilendiren hizmet sorumlusunu oluşturun:

      $app=New-AzADApplication -DisplayName 'newapp' -IdentifierUris http://anything.contoso.onmicrosoft.com
      New-AzADServicePrincipal -Role Owner -ApplicationId $app.ApplicationId
      
  • Oluşum: Ortak

Hata: "SharedTokenCacheCredential kimlik doğrulaması başarısız oldu"

  • Uygulanabilir: Bu sorun desteklenen tüm sürümler için geçerlidir.
  • Neden: Azure Stack Hub PowerShell Modülü sürüm 2.1.1 ile azAccounts'ın birden çok sürümü yüklenirken SharedTokenCacheCredential kimlik doğrulaması başarısız oldu hatası oluştu.
  • Düzeltme: AzAccounts'ın tüm sürümlerini kaldırın ve yalnızca desteklenen AzAccounts sürüm 2.2.8'i yükleyin.
  • Oluşum: Ortak

Sonraki adımlar