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

azure Resource Manager (AzureRM) Azure PowerShell, Azure Stack Hub kaynaklarınızı yönetmek için Azure Resource Manager modelini kullanan bir cmdlet kümesi sağlar.

Önemli

Azure Stack Hub PowerShell'in eski bir sürümü için bir web sayfasına ulaştınız. Azure Resource Manager (AzureRM) PowerShell modülünün tüm sürümleri eski ve destek dışıdır. AzureRM modülleri artık gelecekteki Azure Stack Hub derlemelerinde güncelleştirilmeyecek. Az modülleri 2002 ve sonraki derlemeler için kullanılmalıdır. 2020-09-01-hybrid profili AzureRM modülleri için desteklenmez.

Az PowerShell modülü artık Azure ve Azure Stack Hub ile etkileşim için önerilen PowerShell modülüdür. Az PowerShell modülünü kullanmaya başlamak için bkz. Azure Stack Hub için PowerShell Az önizleme modülünü yükleme. Az PowerShell modülüne geçiş yapmayı öğrenmek için. Bkz. Azure Stack Hub'da AzureRM'den Azure PowerShell Az'ye geçiş. Genel Azure'da benimsenen Az modüllerinin artan işlevselliği hakkında ayrıntılı bilgi için bkz. Azure Az PowerShell modülüne giriş.

Azure Stack Hub kaynak sağlayıcıları için uyumlu uç noktaları belirtmek için API profillerini de kullanmanız gerekir.

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 2019-03-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 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.

Azure Stack Hub için Azure Resource Manager 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.

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

Azure Stack Hub ve PowerShell Azure Resource Manager modülünü kullanmaya başlamadan önce aşağıdaki önkoşullara sahip olmanız gerekir:

  • PowerShell Sürüm 5.1
    Sürümünüzü denetlemek için $PSVersionTable.PSVersion'ı çalıştırın ve Ana sürümü karşılaştırın. PowerShell 5.1'iniz yoksa Yükleme Windows PowerShell'ni izleyin.

    Not

    PowerShell 5.1 bir Windows makinesi gerektirir.

  • PowerShell'i yükseltilmiş bir komut isteminde çalıştırın.

  • erişimi PowerShell Galerisi
    PowerShell Galerisi erişmeniz gerekir. Galeri, PowerShell içeriğinin merkezi deposudur. PowerShellGet modülü PowerShell yapıtlarını bulmaya, yüklemeye, güncelleştirmeye ve yayımlamaya yönelik cmdlet'ler içerir. Bu yapıtlara örnek olarak modüller, DSC kaynakları, rol özellikleri ve PowerShell Galerisi ve diğer özel depolardaki betikler verilebilir. PowerShell'i bağlantısız bir senaryoda kullanıyorsanız, İnternet bağlantısı olan bir makineden kaynak almanız ve bunları bağlantısız makinenizin erişebileceği bir konumda depolamanız gerekir.

PSGallery'nin depo olarak kaydedilip kaydedilmediğini doğrulayın.

Not

Bu adım için İnternet erişimi gerekir.

Yükseltilmiş bir PowerShell istemi açın ve aşağıdaki cmdlet'leri çalıştırın:

Install-module -Name PowerShellGet -Force
Import-Module -Name PackageManagement -ErrorAction Stop
Get-PSRepository -Name "PSGallery"

Depo kayıtlı değilse yükseltilmiş bir PowerShell oturumu açın ve aşağıdaki komutu çalıştırın:

Register-PSRepository -Default
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted

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

Gerekli sürümü yüklemeden önce, daha önce yüklenmiş olan Azure Stack Hub Azure Resource Manager 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. ile AzureAzAzs. başlayan veya ve C:\Users\{yourusername}\Documents\WindowsPowerShell\Modules klasörlerinden C:\Program Files\WindowsPowerShell\Modules tüm klasörleri silin. Bu klasörlerin silinmesi, mevcut PowerShell modüllerini kaldırır.

4. Bağlandı: İnternet bağlantısı ile Azure Stack Hub için PowerShell'i yükleme

Api sürüm profili ve ihtiyacınız olan Azure Stack Hub PowerShell modülleri, çalıştırdığınız Azure Stack Hub sürümüne bağlıdır.

Azure Stack Hub PowerShell'i yükleme

Bu modülleri geliştirme iş istasyonunuza yüklemek için aşağıdaki PowerShell betiğini çalıştırın:

Azure Stack Hub 2002 veya üzeri için:

Kullanıcı AzureRm modüllerini veya Az önizleme modüllerini kullanabilirsiniz. Az modüllerinin kullanılması için Azure Stack Hub 2002 veya sonraki bir sürümü gerekir.

Az önizleme modüllerini kullanmak için PowerShell Az modülünü yükleme başlığındaki yönergeleri izleyin.

# Install the AzureRM.BootStrapper module. Select Yes when prompted to install NuGet
Install-Module -Name AzureRM.BootStrapper

# Install and import the API Version Profile required by Azure Stack Hub into the current PowerShell session.
Use-AzureRmProfile -Profile 2019-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.8.3 

Azure Stack Hub 1910 için:

# Install the AzureRM.BootStrapper module. Select Yes when prompted to install NuGet
Install-Module -Name AzureRM.BootStrapper

# Install and import the API Version Profile required by Azure Stack Hub into the current PowerShell session.
Use-AzureRmProfile -Profile 2019-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.8.0

Not

  • Azure Stack Hub modülü sürüm 1.8.0, yeni bir değişiklik sürümüdür. Ayrıntılar için sürüm notuna bakın.

Azure Stack Hub 1908 veya önceki sürümler için:

# Install the AzureRM.BootStrapper module. Select Yes when prompted to install NuGet
Install-Module -Name AzureRM.BootStrapper

# Install and import the API Version Profile required by Azure Stack Hub into the current PowerShell session.
Use-AzureRmProfile -Profile 2019-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.7.2

Not

Azure Stack Hub modülü sürüm 1.7.2, yeni bir değişiklik sürümüdür. Azure Stack Hub 1.6.0'dan geçiş yapmak için lütfen geçiş kılavuzuna bakın.

PowerShell yüklenmesini onaylama

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

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

Yükleme başarılı olursa çıkışta AzureRm ve AzureStack modülleri görüntülenir.

5. Bağlantısı kesildi: PowerShell'i İ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 2002 veya üzeri.

Azure Resource Manager veya Az önizleme modüllerini kullanabilirsiniz. Az modülleri için Bkz. PowerShell Az modülünü yükleme yönergeleri.


Install-module -Name PowerShellGet -Force 
Import-Module -Name PackageManagement -ErrorAction Stop

$Path = "<Path that is used to save the packages>"
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureRM -Path $Path -Force -RequiredVersion 2.5.0
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $Path -Force -RequiredVersion 1.8.3

Azure Stack Hub 1910.

Install-module -Name PowerShellGet -Force 
Import-Module -Name PackageManagement -ErrorAction Stop

$Path = "<Path that is used to save the packages>"
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureRM -Path $Path -Force -RequiredVersion 2.5.0
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $Path -Force -RequiredVersion 1.8.0

Not

Azure Stack Hub modülü sürüm 1.8.0, yeni bir değişiklik sürümüdür. Ayrıntılar için sürüm notuna bakın.

Azure Stack Hub 1908 veya önceki sürümler için:

Install-module -Name PowerShellGet -Force 
Import-Module -Name PackageManagement -ErrorAction Stop

$Path = "<Path that is used to save the packages>"
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureRM -Path $Path -Force -RequiredVersion 2.5.0
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $Path -Force -RequiredVersion 1.7.2

Not

Azure Stack Hub modülünün 1.7.1 sürümü hataya neden olan bir değişikliktir. Azure Stack Hub 1.6.0'dan geçiş yapmak için lütfen geçiş kılavuzuna bakın.

Not

İnternet bağlantısı olmayan makinelerde, telemetri verileri 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-AzureRmDataCollection

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 bu depodan Azure Resource Manager ve AzureStack modüllerini yükleyin:

    # requires -Version 5
    # requires -RunAsAdministrator
    # requires -Module PowerShellGet
    # requires -Module PackageManagement
    
    $SourceLocation = "<Location on the development kit that contains the PowerShell packages>"
    $RepoName = "MyNuGetSource"
    
    Register-PSRepository -Name $RepoName -SourceLocation $SourceLocation -InstallationPolicy Trusted
    
    Install-Module -Name AzureRM -Repository $RepoName
    
    Install-Module -Name AzureStack -Repository $RepoName
    

PowerShell yüklenmesini onaylama

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

Get-Module -Name "Azure*" -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
    

Bilinen sorun

Yöntem get_SerializationSettings hatası

  • Neden: PowerShell Az modülü ve PowerShell Azure Resource Manager modülleri uyumlu değil.

    Aşağıdaki hata, Azure Resource Manager modüllerinin ve Az modüllerinin aynı oturumda yüklendiğini gösterir:

    >  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.
    
  • Düzeltme: Çakışan modülleri kaldırın.

    Azure Resource Manager modüllerini kullanmak istiyorsanız Az modüllerini kaldırın. Veya Az modüllerini kullanmak istiyorsanız Azure Resource Manager kaldırın. PowerShell oturumunuzu kapatın ve Az veya Azure Resource Manager modüllerini kaldırın.

    Yönergeleri Azure Stack Hub PowerShell modüllerinin mevcut sürümlerini kaldırma makalesinde bulabilirsiniz.

NewAzureRMADServicePrincipal ve NewAzureRMAdApplication ile hata oluştu

  • Uygulanabilir: Microsoft Entra ID kullanan Azure Stack ortamları.

  • Neden: Azure Active Directory Graph, Active Directory uygulamalarının IdentifierUri dizindeki 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 uygulanıyordu. Artık bu kısıtlama tek kiracılı uygulamalar için de geçerlidir. Değişiklik şu hataya neden olur: 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 çözüm bulabilirsiniz.

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

      NewAzureRMADServicePrincipal -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 Microsoft Entra uygulamasını oluşturun ve ardından aşağıdaki cmdlet'i kullanarak uygulamayı ilişkilendiren hizmet sorumlusunu oluşturun:

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

Sonraki adımlar