Azure Stack Hub 用の PowerShell AzureRM モジュールをインストールする

Azure PowerShell Azure Resource Manager (AzureRM) には、Azure Stack Hub リソースの管理に Azure Resource Manager モデルを使用する一連のコマンドレットが用意されています。

重要

Azure Stack Hub PowerShell の古いバージョンの Web ページにアクセスしています。 Azure Resource Manager (AzureRM) PowerShell モジュールのすべてのバージョンが古く、サポート対象外です。 AzureRM モジュールは、今後の Azure Stack Hub ビルドでは更新されません。 Az モジュールは、ビルド 2002 以降に使用する必要があります。 2020-09-01-hybrid プロファイルは AzureRM モジュールではサポートされていません。

現在、Azure と Azure Stack Hub を操作するために推奨される PowerShell モジュールは Az PowerShell モジュールです。 Az PowerShell モジュールを使い始めるには、「Azure Stack Hub 用の PowerShell Az プレビュー モジュールをインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については。 「Azure Stack Hub での AzureRM から 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 のインストール」に従ってください。

    Note

    PowerShell 5.1 には、Windows マシンが必要です。

  • PowerShell の実行 (管理者特権でのコマンド プロンプト)

  • PowerShell ギャラリーへのアクセス
    PowerShell ギャラリーへのアクセスが必要になります。 ギャラリーとは、PowerShell コンテンツのための中央のリポジトリです。 PowerShellGet モジュールには、PowerShell 成果物の検出、インストール、更新、および発行を行うためのコマンドレットが含まれています。 これらの成果物の例としては、モジュール、DSC リソース、ロール機能、PowerShell ギャラリーおよびその他のプライベート リポジトリからのスクリプトなどがあります。 切断されたシナリオで PowerShell を使用している場合は、インターネットに接続しているマシンからリソースを取得し、切断されたマシンがアクセスできる場所に格納する必要があります。

PSGallery がリポジトリとして登録されているかどうかを検証します。

Note

この手順では、インターネットへのアクセスが必要です。

管理者特権の PowerShell プロンプトを開き、次のコマンドレットを実行します。

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 モジュールをすべてアンインストールしてください。 モジュールをアンインストールするには、次の 2 つの方法のいずれかを使用します。

  1. 既存の Azure Resource Manager モジュールと Az PowerShell モジュールをアンインストールするには、アクティブな PowerShell セッションをすべて閉じ、次のコマンドレットを実行します。

    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. C:\Program Files\WindowsPowerShell\ModulesC:\Users\{yourusername}\Documents\WindowsPowerShell\Modules の各フォルダーから、AzureAz、または Azs. で始まるすべてのフォルダーを削除します。 これらのフォルダーを削除すると、既存の PowerShell モジュールがすべて削除されます。

4.接続済みの場合: インターネット接続を使用して PowerShell for Azure Stack Hub をインストールする

必要な 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

Note

  • 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

Note

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 Development Kit (ASDK) に転送してインストールします。

インターネット接続が確立されたコンピューターにサインインし、次のスクリプトを使用して、Azure Stack Hub のバージョンに応じた Azure Resource Manager および Azure Stack Hub パッケージをダウンロードします。

インストールには 5 つの手順があります。

  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

Note

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

Note

Azure Stack Hub モジュール バージョン 1.7.1 は破壊的変更を伴うリリースです。 Azure Stack Hub 1.6.0 から移行するには、移行ガイドを参照してください。

Note

インターネット接続のないマシンでは、次のコマンドレットを実行して利用統計情報の収集を無効にすることをお勧めします。 利用統計情報の収集を無効にしないと、コマンドレットのパフォーマンスが低下することがあります。 これは、インターネット接続のないマシンのみ該当します。

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 を構成する

インターネットへのアクセスにプロキシ サーバーを必要とするシナリオでは、まず既存のプロキシ サーバーを使用するように PowerShell を構成します。

  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 IDを使用する 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

  • 修復: この制限は、次の 2 つの方法で回避できます。

    • ディレクトリ テナントのサブドメインであるサービス プリンシパル名を使用する必要があります。 たとえば、ディレクトリが contoso.onmicrosoft.com の場合、サービス プリンシパル名は <foo>.contoso.onmicrosoft.com の形式である必要があります。 次のコマンドレットを使用します。

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

      Azure Stack Hub での ID とサービス プリンシパルの使用の詳細については、「Azure Stack Hub の ID プロバイダーの概要」を参照してください。

    • 有効な IdentifierUri を提供するMicrosoft Entra アプリを作成し、次のコマンドレットを使用してアプリを関連付けるサービス プリンシパルを作成します。

      $app=NewAzureRMAdApplication -DisplayName 'newapp' -IdentifierUris http://anything.contoso.onmicrosoft.com
      NewAzureRMADServicePrincipal -Role Owner -ApplicationId $app.ApplicationId
      
  • 発生頻度: 共通

次のステップ