共用方式為


安裝適用於 Azure Stack Hub 的 PowerShell AzureRM 模組

Azure PowerShell Azure Resource Manager (AzureRM) 提供一組 Cmdlet,其使用 Azure Resource Manager 模型來管理 Azure Stack Hub 資源。

重要

您已達到過時版本的 Azure Stack Hub PowerShell 網頁。 所有版本的 Azure Resource Manager (AzureRM) PowerShell 模組都已過期且不支援。 在未來的 Azure Stack Hub 組建中,將不再更新 AzureRM 模組。 Az 模組必須用於組建 2002 和更新版本。 AzureRM 模組不支援 2020-09-01-hybrid 配置檔。

Az PowerShell 模組現在是建議的 PowerShell 模組,可與 Azure 和 Azure Stack Hub 互動。 若要開始使用 Az PowerShell 模組,請參閱 安裝適用於 Azure Stack Hub 的 PowerShell Az 預覽模組。 若要瞭解如何移轉至 Az PowerShell 模組。 請參閱 從 AzureRM 遷移至 Azure Stack Hub 中的 Azure PowerShell Az。 如需跨全球 Azure 採用的 Az 模組功能增加的詳細資訊,請參閱 Azure Az PowerShell 模組簡介。

您也需要使用 API 設定檔 來指定 Azure Stack Hub 資源提供者的相容端點。

API 設定檔可讓您管理 Azure 與 Azure Stack Hub 之間的版本差異。 API 版本設定檔是一組具有特定 API 版本的 Azure Resource Manager PowerShell 模組。 每個雲端平臺都有一組支援的 API 版本設定檔。 例如,Azure Stack Hub 支援特定的配置檔版本,例如 2019-03-01-hybrid。 當您安裝配置檔時,會安裝對應至指定配置檔的 Azure Resource Manager PowerShell 模組。

您可以在因特網連線、部分連線或已中斷連線的案例中安裝與 Azure Stack Hub 相容的 PowerShell 模組。 本文將逐步引導您完成這些案例的詳細指示。

您也可以在 Docker 容器中執行適用於 Azure Stack Hub 的 Azure Resource Manager 模組。 如需指示,請參閱 使用 Docker 執行適用於 Azure Stack Hub 的 PowerShell。

1.確認您的必要條件

開始使用 Azure Stack Hub 和 PowerShell Azure Resource Manager 模組之前,您必須具備下列必要條件:

  • PowerShell 5.1 版
    若要檢查您的版本,請執行 $PSVersionTable.PSVersion 並比較 主要 版本。 如果您沒有 PowerShell 5.1,請遵循 安裝 Windows PowerShell

    注意

    PowerShell 5.1 需要 Windows 計算機。

  • 在提升許可權的命令提示字元中執行 PowerShell。

  • PowerShell 資源庫 存取
    您需要存取 PowerShell 資源庫。 資源庫是 PowerShell 內容的中央存放庫。 PowerShellGet 模組包含用來探索、安裝、更新和發佈 PowerShell 成品的 Cmdlet。 這些成品的範例包括來自 PowerShell 資源庫 和其他私人存放庫的模組、DSC 資源、角色功能和腳本。 如果您在中斷連線的情況下使用PowerShell,您必須從具有因特網連線的電腦擷取資源,並將其儲存在中斷聯機的計算機可存取的位置。

驗證 PSGallery 是否已註冊為存放庫。

注意

此步驟需要因特網存取。

開啟已提升權限的 PowerShell 提示字元,然後執行下列 Cmdlet:

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

如果未註冊存放庫,請開啟提升許可權的 PowerShell 會話,然後執行下列命令:

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

3.卸載現有版本的 Azure Stack Hub PowerShell 模組

安裝必要版本之前,請確定您卸載任何先前安裝的 Azure Stack Hub Azure Resource Manager PowerShell 模組。 使用下列兩種方法之一卸載模組:

  1. 若要卸載現有的 Azure Resource Manager 和 Az PowerShell 模組,請關閉所有作用中的 PowerShell 會話,然後執行下列 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
    

    如果您遇到「模組已在使用中」之類的錯誤,請關閉使用模組的PowerShell工作階段,然後重新執行上述腳本。

  2. 從和資料夾中刪除開頭Azure為的所有Azs.C:\Program Files\WindowsPowerShell\ModulesAz資料夾。C:\Users\{yourusername}\Documents\WindowsPowerShell\Modules 刪除這些資料夾會移除任何現有的PowerShell模組。

4.已連線:使用因特網聯機安裝適用於 Azure Stack Hub 的 PowerShell

您需要的 API 版本設定檔和 Azure Stack Hub PowerShell 模組取決於您執行的 Azure Stack Hub 版本。

安裝 Azure Stack Hub PowerShell

執行下列 PowerShell 腳稿,在您的開發工作站上安裝這些模組:

針對 Azure Stack Hub 2002 或更新版本:

您可以使用使用者 AzureRm 模組或 Az 預覽模組。 使用 Az 模組需要 Azure Stack Hub 2002 或更新版本。

若要使用 Az 預覽模組,請遵循安裝 PowerShell Az 模組中的指示。

# 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:

# 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

注意

  • Azure Stack Hub 模組 1.8.0 版是重大變更版本。 如需詳細資訊, 請參閱版本附注

針對 Azure Stack Hub 1908 或更早版本:

# 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

注意

Azure Stack Hub 模組 1.7.2 版是重大變更版本。 若要從 Azure Stack Hub 1.6.0 移轉,請參閱 移轉指南

確認 PowerShell 的安裝

執行下列命令來確認安裝:

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

如果安裝成功,則會 AzureRm 在輸出中顯示和 AzureStack 模組。

5.已中斷連線:在沒有因特網連線的情況下安裝PowerShell

在中斷連線的案例中,您會先將PowerShell模組下載到具有因特網連線的電腦。 然後,您會將它們傳輸至 Azure Stack 開發工具套件 (ASDK) 進行安裝。

登入具有因特網連線的計算機,並使用下列腳本來下載 Azure Resource Manager 和 Azure Stack Hub 套件,視您的 Azure Stack Hub 版本而定。

安裝有五個步驟:

  1. 將 Azure Stack Hub PowerShell 安裝到連線的電腦。
  2. 啟用其他記憶體功能。
  3. 將 PowerShell 套件傳輸至已中斷連線的工作站。
  4. 在中斷連線的工作站上手動啟動 NuGet 提供者。
  5. 確認 PowerShell 的安裝。

安裝 Azure Stack Hub PowerShell

Azure Stack Hub 2002 或更新版本。

您可以使用 Azure Resource Manager 或 Az 預覽模組。 如需 Az 模組,請參閱安裝 PowerShell Az 模組指示。


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

注意

Azure Stack Hub 模組 1.8.0 版是重大變更版本。 如需詳細資訊, 請參閱版本附注

針對 Azure Stack Hub 1908 或更早版本:

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

注意

Azure Stack Hub 模組 1.7.1 版是重大變更。 若要從 Azure Stack Hub 1.6.0 移轉,請參閱 移轉指南

注意

在沒有因特網連線的計算機上,建議您執行下列 Cmdlet 來停用遙測數據收集。 您可能會遇到 Cmdlet 效能降低,而不需要停用遙測數據收集。 這僅適用於沒有因特網連線的計算機

Disable-AzureRmDataCollection

將套件新增至工作站

  1. 將下載的套件複製到 USB 裝置。

  2. 登入已中斷連線的工作站,並將套件從USB裝置複製到工作站上的位置。

  3. 在中斷連線的工作站上手動啟動 NuGet 提供者。 如需指示,請參閱 在未連線到因特網的計算機上手動啟動載入 NuGet 提供者。

  4. 將此位置註冊為預設存放庫,並從此存放庫安裝 Azure Resource Manager 和 AzureStack 模組:

    # 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 的安裝

執行下列命令來確認安裝:

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

6.將 PowerShell 設定為使用 Proxy 伺服器

在需要 Proxy 伺服器存取因特網的案例中,您必須先將 PowerShell 設定為使用現有的 Proxy 伺服器:

  1. 開啟提升權限的 PowerShell 命令提示字元。

  2. 執行下列命令:

    #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
    

已知問題

方法get_SerializationSettings錯誤

  • 原因:PowerShell Az 模組和 PowerShell Azure Resource Manager 模組不相容。

    下列錯誤指出 Azure Resource Manager 模組和 Az 模組會在相同的會話中載入:

    >  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.
    
  • 補救:卸載衝突的模組。

    如果您想要使用 Azure Resource Manager 模組,請卸載 Az 模組。 或者,如果您想要使用 Az 模組,請卸載 Azure Resource Manager。 關閉 PowerShell 會話,並卸載 Az 或 Azure Resource Manager 模組。

    您可以在卸載現有版本的 Azure Stack Hub PowerShell 模組中找到指示。

NewAzureRMADServicePrincipal 和 NewAzureRMAdApplication 擲回的錯誤

  • 適用:使用 Microsoft Entra 識別符的 Azure Stack 環境。

  • 原因:Azure Active Directory Graph 引進重大變更,以將 Active Directory 應用程式的 限制 IdentifierUri 為目錄中已驗證網域的子域。 變更之前,此限制只會針對多租使用者應用程式強制執行。 現在此限制也適用於單一租用戶應用程式。 變更會導致下列錯誤: Values of identifierUris property must use a verified domain of the organization or its subdomain' is displayed when running

  • 補救:您可以透過兩種方式解決這項限制。

    • 您必須使用服務主體名稱,其為目錄租使用者的子域。 例如,如果目錄是 contoso.onmicrosoft.com,服務主體名稱必須是 的格式 <foo>.contoso.onmicrosoft.com。 使用下列 Cmdlet:

      NewAzureRMADServicePrincipal -Role Owner -DisplayName <foo>.contoso.onmicrosoft.com
      

      如需身分識別及搭配 Azure Stack Hub 使用服務主體的詳細資訊,請參閱 Azure Stack Hub 的身分識別提供者概觀。

    • 建立提供有效 IdentifierUri Microsoft Entra 應用程式,然後使用下列 Cmdlet 建立與應用程式建立關聯的服務主體:

      $app=NewAzureRMAdApplication -DisplayName 'newapp' -IdentifierUris http://anything.contoso.onmicrosoft.com
      NewAzureRMADServicePrincipal -Role Owner -ApplicationId $app.ApplicationId
      
  • 發生次數:一般

下一步