Azure Stack Hub için PowerShell Az ve Azure Stack modüllerini yükleme

Azure Stack Hub Sürümü AzureStack PowerShell sürümü
2102 2.1.1
2108 2.2.0
2206 2.3.0
2301+ 2.4.0

AzureStack modülleri hakkında daha fazla bilgi için bkz. PSGallery.

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

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.

  3. Az modüllerini yüklemek için aşağıdakileri çalıştırın.

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    Install-Module -Name Az.BootStrapper -Force
    Install-AzProfile -Profile 2020-09-01-hybrid -Force
    
  4. AzureStack PowerShell modüllerini yükleyin.

    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
    

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

  1. AzureRM veya Az modüllerini kullanabilirsiniz. Aşağıdaki kod Az modüllerini 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
    
  2. Az modülleri yüklendikten sonra AzureStack modüllerini yüklemeye devam edin.

    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
    

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-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
    
  5. Az modüllerini yükleyin.

     Install-Module -Name Az -Repository $RepoName -RequiredVersion 2.0.1 -Scope AllUsers
    
  6. AzureStack modüllerini yükleyin.

    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
    

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

AzureRM modüllerini temel alan 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ü yüklenirken Yönetici gerekli 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-hybrid profili kullanılırken Cmdlet New-AzVmss başarısız oluyor

  • Uygulanabilir: Bu sorun 2020-09-01-karma profili için geçerlidir.
  • Neden: New-AzVmss cmdlet'i 2020-09-01-hybrid 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 komutunun 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. 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: 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 ilkesi 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:

      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 Microsoft Entra 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