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

Bu makalede, PowerShellGet kullanarak Azure PowerShell Az ve Azure Stack Hub yönetici modüllerinin nasıl yüklln olduğu açıklanmıştır. Az modülleri Windows, macOS ve Linux platformlarında yüklü olabilir.

Docker kapsayıcısı içinde yer alan Azure Stack Hub az modüllerini de çalıştırabilirsiniz. Yönergeler için bkz. Docker kullanarak PowerShell'i Azure Stack Hub.

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

Önemli

Muhtemelen yeni Azure Kaynak Modülleri modülü sürümü olmayacaktır. Azure Kaynak Modülleri modülleri yalnızca kritik düzeltmeler için destek altındadır. Bundan sonra yalnızca yeni sürümler için Az Azure Stack Hub.

Api profillerini kullanarak kaynak sağlayıcılarının uyumlu uç noktalarını Azure Stack Hub kullanabilirsiniz.

API profilleri, Azure ile Azure arasındaki sürüm farklarını yönetmek için bir Azure Stack Hub. API sürümü profili, belirli API sürümlerine Azure Resource Manager powershell modüllerinin bir kümesidir. Her bulut platformu, desteklenen api sürümü profilleri kümesine sahiptir. Örneğin, Azure Stack Hub 2020-09-01-hybridgibi belirli bir profil sürümünü destekler. Bir profil Azure Resource Manager profile karşılık gelen PowerShell modülleri yüklenir.

İnternet'e Azure Stack Hub, kısmen bağlı veya bağlantısız senaryolarda uyumlu PowerShell Az modülleri yükleyebilirsiniz. Bu makalede, bu senaryolar için ayrıntılı yönergeler açıklanmıştır.

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

Az modülleri, Güncelleştirme 2002 Azure Stack Hub sonraki bir sürümün yüklü olduğu ve geçerli düzeltmelerle birlikte desteklenen modüllerdir. Daha fazla Azure Stack Hub için bkz. sürüm notları.

Azure PowerShell Az modülleri tüm platformlarda PowerShell 5.1 veya sonraki bir Windows veya PowerShell Core 6.x ve sonraki bir ile çalışır. İşletim sisteminiz için kullanılabilir olan PowerShell Core sürümünü yüklemeniz gerekir. Azure PowerShell üzerinde çalıştırken başka bir PowerShell Core.

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

$PSVersionTable.PSVersion

Önkoşullar Windows

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. Aşağıdaki cmdlet'leri çalıştırın:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

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ırın

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

  1. Mevcut powershell Azure Resource Manager 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ıyor' gibi bir hatayla karşılaştınız, modülleri kullanan PowerShell oturumlarını kapatın ve yukarıdaki betiği yeniden çalıştırmanız gerekir.

  2. ile veya ile başlatan tüm AzureAz klasörleri ve Azs.C:\Program Files\WindowsPowerShell\ModulesC:\Users\{yourusername}\Documents\WindowsPowerShell\Modules klasörlerinden silin. Bu klasörlerin silinmesi, mevcut PowerShell modüllerini kaldırır.

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

Azure Stack Az modülü, bir Windows makinede PowerShell 5.1 veya daha büyük bir sürümüyle ya da Linux ya da macOS platformunda PowerShell 6.x veya daha büyük bir sürümüyle çalışır. PowerShellGet cmdlet’lerinin kullanılması, tercih edilen yükleme yöntemidir. Bu yöntem desteklenen platformlarda da 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. PowerShell oturumlarınızı kapatın ve güncelleştirmenin etkili olmak için 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.1.1 
    
  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 2019-03-01-hybrid -Force
    Install-Module -Name AzureStack -RequiredVersion 2.0.2-preview -AllowPrerelease
    

Not

Azure Stack Hub modülünün 2.0.2 sürümü yeni bir değişikliktir. Ayrıntılar için AzureRM'den AzureRM'Azure PowerShell Az'ye Azure Stack Hub bakın.

Uyarı

Windows için PowerShell 5.1 için hem Azure Resource Manager (AzureRM) hem de Az modüllerini aynı anda yükleyeyesiniz. Sisteminiz üzerinde kullanılabilir Azure Resource Manager gerekirse, PowerShell Core 6.x veya sonraki bir sürümü için Az modülünü yükleyin. Bunu yapmak için, PowerShell Core 6.x veya sonraki bir sürümü yükleyin ve ardından bu yönergeleri bir PowerShell Core 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 (ASDK) üzerine aktarsınız.

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

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

  1. PowerShell Azure Stack Hub bağlı bir makineye yükleme.
  2. Ek depolama özelliklerini etkinleştirin.
  3. PowerShell paketlerini bağlantısı kesilmiş iş istasyonuna taşıma.
  4. Bağlı olmayan iş istasyonu NuGet sağlayıcıyı el ile önyükleyebilirsiniz.
  5. PowerShell'in yüklemesini onaylayın.

PowerShell Azure Stack Hub yükleme

Azure Stack Hub 2102 veya sonrası.

Azure Resource Manager veya Az modüllerini kullanabilirsiniz. Daha Azure Resource Manager için PowerShell AzureRM modülünü yükleme yönergelerine bakın. Aşağıdaki kod, güvenilir çevrimiçi depodan modülleri 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 1.10.0
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $savedModulesPath -Force -RequiredVersion 2.1.1

Azure Stack Hub 2008 veya önceki bir sürüm.

Azure Resource Manager veya Az modüllerini kullanabilirsiniz. Daha Azure Resource Manager için PowerShell AzureRM modülünü yükleme yönergelerine bakın. Aşağıdaki kod, güvenilir çevrimiçi depodan modülleri 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 0.10.0-preview
Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $savedModulesPath -Force -RequiredVersion 2.0.2-preview

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 veri toplamayı devre dışı bırakmadan cmdlet'lerde performans düşüşüyle karşı karşınız olabilir. Bu yalnızca İnternet bağlantısı olmayan makineler için geçerlidir

Disable-AzDataCollection

Paketlerinizi iş istasyona 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ğlı olmayan iş istasyonu NuGet sağlayıcıyı el ile önyükleyebilirsiniz. Yönergeler için bkz. NuGet bağlıolmayan bir makinede sanal makine sağlayıcısını el ile önyükleme.

  4. Bu konumu varsayılan depo olarak kaydedin ve bu AzureRMAzureStack depodan ve 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"

 [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 1.10.0 -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.0.2-preview -AllowPrerelease -Scope AllUsers

Install-Module -Name Az -Repository $RepoName -RequiredVersion 0.10.0-preview -Scope AllUsers

PowerShell yüklenmesini onaylama

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

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

6. PowerShell'i ara sunucu kullanmak için yapılandırma

İnternet'e erişmek için bir ara sunucu gerektiren senaryolarda, önce PowerShell'i var olan bir ara sunucuyu kullanmak üzere 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ü kullanma

Cmdlet'leri ve kod örneklerini Azure Resource Manager. Ancak, modüllerin ve cmdlet'lerin adını değiştirmek gerekir. Modül adları, Azure AzureRM cmdlet'ler için aynı olacak Az şekilde değiştirilmiştir. Ö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 betiklerini Az'ye taşıma ve Azure Stack Hub'nin Az modülünde yapılan değişiklikleri bozmaya yönelik daha kapsamlı bir tartışma ve rehberlik için bkz. AzureRM'den Az'ye Azure PowerShell.

Bilinen sorunlar

Az modülleri yüklerken hata oluştu

  • Geçerli: Bu sorun 2002 ve sonrası 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
    Oturum kapatma ve yeni bir yükseltilmiş PowerShell oturumu başlatma.
  • Oluşum: Ortak

Az modülü yüklerken hatalı bir şekilde Yönetici hakları gerekli hatası oluştu

  • Geçerli: Bu sorun 2002 ve sonrası için geçerlidir
  • Neden: Modülü yükseltilmiş bir istemden yüklerken bir hata oluşur. Hata Administrator rights required şöyledir: .
  • Düzeltme: Oturum kapatma ve yeni bir yükseltilmiş PowerShell oturumu başlatma. Mevcut bir Az olmadığını emin olun. Oturumda yüklenen hesaplar modülü.
  • Oluşum: Ortak

2020-09-01-hybrid profili New-AzVmss cmdlet'i başarısız oluyor

  • Uygulanabilir: Bu sorun 2020-09-01-hybrid profili için geçerlidir.
  • Neden: New-AzVmss cmdlet'i 020-09-01-hybrid profiliyle çalışmıyor.
  • Düzeltme: Sanal makine ölçek kümesi oluşturmak için bir şablon kullanın. GitHub Repository AzureStack-QuickStart-Templates/101-vmss-windows-vm içinde Azure Stack Hub Resource Manager şablonlarını örnek olarak bulabilir ve Azure Stack Hub Resource Managers'ı Visual Studio Code ile kullanma hakkında yönerge bulabilirsiniz.
  • Oluşum: Ortak

PowerShell betiği çalıştırılan bir hata oluştu

  • Geçerli: Bu sorun 2002 ve sonrası için geçerlidir.

  • Neden: Betikleri veya PowerShell komutlarını belirli Azure Stack Hub kullanarak çalıştırıyorsanız, betiğinizin veya komutun modülde kullanılabilir olması gerekir. Aşağıdaki hatayı alabilirsiniz:

    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üklenirken AzureRM komutlarını çağıran bir betik çalıştırmayı denerse betiğiniz hata verir. Veya AzureRM modülü yüklenirken Az komutlarını çağıran bir betik çalıştırmayı denerse betiğiniz hata verir.

  • Düzeltme: AzureRM modülünü kaldırın ve Az modülünü yükleyin. Yönergeler için bkz. PowerShell Az modülünü yükleme Azure Stack Hub. Azure Stack Hub Tools'Azure Stack Hub Az araçlarını kullanın. araçlar deposunu az daldan kopya edin veya az AzureStack-Tools indirin. Yönergeler için bkz. Azure Stack Hub'den GitHub

  • Oluşum: Ortak

Hata, New-AzADServicePrincipal ve New-AzADApplication

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

  • Neden: Azure Active Directory Graph Active Directory uygulamalarının dizinde doğrulanmış bir etki alanının alt etki alanları olacak şekilde kısıtlayan IdentifierUri yeni bir değişiklik yaptı. Değişiklik öncesinde bu kısıtlama yalnızca çok kiracılı uygulamalar için uygulanmıştı. 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ıtlamayı iki şekilde düzeltebilirsiniz.

    • Dizin kiracısı alt etki alanı olan bir hizmet ilkesi adı kullanacağız. Örneğin, dizini contoso.onmicrosoft.com ise, hizmet asıl adının şeklinde olması <foo>.contoso.onmicrosoft.com gerekir. Aşağıdaki cmdlet'i kullanın:

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

      Kimlik ve hizmet sorumlularını Azure Stack Hub kullanma hakkında daha fazla bilgi için bkz. Azure Stack Hub.

    • Geçerli bir değer sağlayan Azure AD uygulamasını oluşturun ve ardından aşağıdaki cmdlet'i kullanarak uygulamayla ilgili IdentifierUri hizmet sorumlularını oluşturun:

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

Sonraki adımlar