Azure Stack Hub 用の PowerShell Az モジュールと Azure Stack モジュールをインストールする
Azure Stack Hub のバージョン | AzureStack PowerShell のバージョン |
---|---|
2102 | 2.1.1 |
2108 | 2.2.0 |
2206 | 2.3.0 |
2301+ | 2.4.0 |
AzureStack モジュールの詳細については、 PSGallery を参照してください。
この記事では、PowerShellGet を使用して Azure PowerShell Az および互換性のある Azure Stack Hub 管理者モジュールをインストールする方法について説明します。 Az modules は、Windows、macOS、Linux の各プラットフォームにインストールできます。
Docker コンテナー内の Azure Stack Hub に対して Az モジュールを実行することもできます。 手順については、Docker を使用して Azure Stack Hub に対して PowerShell を実行する方法に関するページを参照してください。
Azure Stack Hub 用の PowerShell Resource Modules (AzureRM) モジュールをインストールする場合は、「Azure Stack Hub 用の PowerShell AzureRM モジュールをインストールする」を参照してください。
重要
Azure Resource Modules モジュールの新しいリリースはありません。 Azure Resource Modules モジュールは、重要な修正についてのみサポートされています。 今後は、Azure Stack Hub の Az リリースのみが存在します。
"API プロファイル" を使用して、互換性のある Azure Stack Hub リソース プロバイダーのエンドポイントを指定することができます。
API プロファイルには、Azure と Azure Stack Hub のバージョンの違いを管理するための方法が用意されています。 API バージョンのプロファイルは、特定の API バージョンを持つ一連の Azure Resource Manager PowerShell モジュールです。 各クラウド プラットフォームでは、一連の API バージョンのプロファイルがサポートされています。 たとえば、Azure Stack Hub では、 2020-09-01-hybrid などの特定のプロファイル バージョンがサポートされています。 プロファイルをインストールすると、指定されたプロファイルに対応する Azure Resource Manager PowerShell モジュールがインストールされます。
Azure Stack Hub と互換性のある PowerShell Az モジュールは、インターネットに接続されている、部分的に接続されている、または接続が切断されているシナリオでインストールできます。 この記事では、これらのシナリオの詳細な手順について説明します。
1.前提条件を確認する
Az モジュールは、更新プログラム 2002 以降および現在の修正プログラムがインストールされている Azure Stack Hub でサポートされています。 詳細については、「Azure Stack Hub のリリース ノート」をご覧ください。
Azure PowerShell の Az モジュールは、Windows 上の PowerShell 5.1 以降、またはすべてのプラットフォーム上の PowerShell Core 6.x 以降で動作します。 お使いのオペレーティング システムで利用できる最新バージョンの PowerShell Core をインストールする必要があります。 PowerShell Core 上で実行する場合、Azure PowerShell にその他の要件はありません。
PowerShell のバージョンを確認するには、次のコマンドを実行します。
$PSVersionTable.PSVersion
Windows の前提条件
Windows 上の PowerShell 5.1 で Azure PowerShell を使用するには、次の手順に従います。
必要に応じて Windows PowerShell 5.1 に更新します。 Windows 10 の場合は、あらかじめ PowerShell 5.1 がインストールされています。
.NET Framework 4.7.2 以降をインストールします。
最新バージョンの PowerShellGet がインストールされていることを確認します。 管理者特権でのプロンプトで、次のコマンドレットを実行します。
[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 および Mac の前提条件
PowerShell Core 6.x 以降のバージョンが必要です。 手順については、リンクに従ってください。
3.既存のバージョンの Azure Stack Hub PowerShell モジュールをアンインストールする
必要なバージョンをインストールする前に、必ず以前にインストールした Azure Stack Hub Azure Resource Manager または Az PowerShell モジュールをすべてアンインストールしてください。 モジュールをアンインストールするには、次の 2 つの方法のいずれかを使用します。
既存の 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 セッションを終了してから、上のスクリプトをもう一度実行してください。
Uninstall-Module が成功しなかった場合、
Azure
、Az
、またはAzs.
で始まるすべてのフォルダーを $env:PSModulePath の場所から削除します。 Windows PowerShell の場合、場所はC:\Program Files\WindowsPowerShell\Modules
とC:\Users\{yourusername}\Documents\WindowsPowerShell\Modules
である可能性があります。 PowerShell Coreの場合、場所はC:\Program Files\PowerShell\7\Modules
とC:\Users\{yourusername}\Documents\PowerShell\Modules
である可能性があります。 これらのフォルダーを削除すると、既存の Azure PowerShell モジュールがすべて削除されます。
4.接続済みの場合: インターネット接続を使用したインストール
Azure Stack Az モジュールは、Windows マシン上では PowerShell 5.1 以上、Linux または macOS プラットフォームでは PowerShell 6.x 以上で動作します。 推奨されるインストール方法は、PowerShellGet コマンドレットを使用することです。 この方法は、サポートされているプラットフォームでも同様に機能します。
PowerShell セッションから次のコマンドを実行して、PowerShellGet をバージョン 2.2.3 以上に更新します
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Install-Module PowerShellGet -MinimumVersion 2.2.3 -Force
PowerShell セッションを閉じてから、更新を有効プログラムをできるように新しい PowerShell セッションを開きます。
Az モジュールをインストールするには、次のコマンドを実行します。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Install-Module -Name Az.BootStrapper -Force Install-AzProfile -Profile 2020-09-01-hybrid -Force
AzureStack PowerShell モジュールをインストールします。
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
警告
Windows 用の PowerShell 5.1 で Azure Resource Manager (AzureRM) と Az の両方のモジュールを同時にインストールすることはできません。 Azure Resource Manager をシステムで引き続き使用できるようにしておく必要がある場合は、PowerShell Core 6.x 以降用の Az モジュールをインストールします。 そのためには、PowerShell Core 6.x 以降をインストールしてから、PowerShell Core ターミナルで以下の手順に従ってください。
5.切断状態の場合: インターネット接続を使用しないインストール
接続が切断されたシナリオでは、まずインターネット接続が確立されたマシンに PowerShell モジュールをダウンロードします。 次に、それらを Azure Stack Development Kit (ASDK) に転送してインストールします。
インターネット接続が確立されたコンピューターにサインインし、次のスクリプトを使用して、Azure Stack Hub のバージョンに応じた Azure Resource Manager および Azure Stack Hub パッケージをダウンロードします。
インストールには 5 つの手順があります。
- 接続されているマシンに Azure Stack Hub PowerShell をインストールします。
- 追加のストレージ機能を有効にします。
- 接続が切断されたワークステーションに PowerShell パッケージを転送します。
- 切断されたワークステーション上で NuGet プロバイダーを手動でブートストラップします。
- PowerShell のインストールを確認します。
Azure Stack Hub PowerShell のインストール
AzureRM モジュールまたは Az モジュールを使用できます。 次のコードでは、信頼できるオンライン リポジトリ から Az モジュールを https://www.powershellgallery.com/保存します。
[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
Az モジュールがインストールされたら、AzureStack モジュールのインストールに進みます。
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
Note
インターネット接続のないマシンでは、次のコマンドレットを実行して利用統計情報の収集を無効にすることをお勧めします。 利用統計情報の収集を無効にしないと、コマンドレットのパフォーマンスが低下することがあります。 これは、インターネット接続のないマシンのみ該当します。
Disable-AzDataCollection
パッケージをワークステーションに追加する
ダウンロードしたパッケージを USB デバイスにコピーします。
接続が切断されたワークステーションにサインインし、パッケージを USB デバイスからワークステーション上の場所にコピーします。
切断されたワークステーション上で NuGet プロバイダーを手動でブートストラップします。 手順については、「インターネットに接続されていないマシンで NuGet プロバイダーを手動でブートストラップする」をご覧ください。
この場所を既定のレポジトリとして登録し、このレポジトリから
AzureRM
モジュールと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" [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Register-PSRepository -Name $RepoName -SourceLocation $SourceLocation -InstallationPolicy Trusted
Az モジュールをインストールします。
Install-Module -Name Az -Repository $RepoName -RequiredVersion 2.0.1 -Scope AllUsers
AzureStack モジュールをインストールします。
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 のインストールを確認する
次のコマンドを実行してインストールを確認します。
Get-Module -Name "Az*" -ListAvailable
Get-Module -Name "Azs*" -ListAvailable
6.プロキシ サーバーを使用するように PowerShell を構成する
インターネットへのアクセスにプロキシ サーバーを必要とするシナリオでは、まず既存のプロキシ サーバーを使用するように PowerShell を構成します。
管理者特権の PowerShell プロンプトを開きます。
次のコマンドを実行します。
#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 モジュールを使用する
コマンドレットとコード サンプルは、AzureRM モジュールに基づいて使用できます。 ただし、モジュールとコマンドレットの名前を変更する必要があります。 モジュール名は、AzureRM
および Azure が Az
になるように変更されており、コマンドレットについても同様です。 たとえば、AzureRM.Compute
モジュールは名前が Az.Compute
に変更されています。
New-AzureRMVM
は New-AzVM
になり、Get-AzureStorageBlob
は Get-AzStorageBlob
になっています。
Az への AzurRM スクリプトの移動、および Azure Stack Hub の AZ モジュールにおける破壊的変更に関する詳しい説明とガイダンスについては、AzureRM から Azure PowerShell Az への移行に関する記事を参照してください。
既知の問題
Az モジュールをインストールすると、エラーがスローされる
- 適用先:この問題は、2002 以降に適用されます。
- 原因:モジュールをインストールすると、エラーがスローされます。 エラー メッセージは次の文字列で始まります。
Register-PacakgeSource : A parameter cannot be found that matches parameter name. 'PackageManagementProvider'.
。または、エラー メッセージに次のテキストが含まれている可能性があります。PackageManagement\Install-Package : Cannot convert value "2.0.1-preview" to type "System.Version". Error: "Input string was not in a correct format."
- 修復: 同じセッションで、次のコマンドレットを実行します。
Install-Module PowershellGet -MinimumVersion 2.3.0 -Force
セッションを閉じ、新しい管理者特権の PowerShell セッションを開始します。 - 発生頻度: 共通
Az モジュールをインストールすると、管理者権限が必要であるというエラーが間違ってスローされる
- 適用先:この問題は、2002 以降に適用されます。
- 原因:管理者特権のプロンプトからモジュールをインストールすると、エラーがスローされます。 エラーは
Administrator rights required
と表示されます。 - 修復: セッションを閉じ、新しい管理者特権で PowerShell セッションを開始します。 既存の Az が存在しないことを確認します。 アカウント モジュールがセッションに読み込まれました。
- 発生頻度: 共通
2020-09-01-hybrid プロファイルを使用すると、コマンドレット New-AzVmss が失敗する
- 適用先: この問題は 2020-09-01-hybrid プロファイルに適用されます。
- 原因: コマンドレット New-AzVmss は 2020-09-01-hybrid プロファイルでは機能しません。
- 修復: 仮想マシン スケール セットを作成するためのテンプレートを使用します。 GitHub リポジトリ AzureStack-QuickStart-Templates/101-vmss-windows-vm でサンプルの Azure Stack Hub Resource Manager テンプレートを見つけ、Visual Studio Code で Azure Stack Hub Resource Manager を使用する手順を見つけることができます。
- 発生頻度: 共通
PowerShell スクリプトの実行中にスローされるエラー
適用先:この問題は、2002 以降に適用されます。
原因: Azure Stack Hub 固有のモジュールを使用してスクリプトまたは PowerShell コマンドを実行している場合、スクリプトまたはコマンドをモジュール内で使用できるようにする必要があります。 次のエラーがに表示される場合があります。
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.
現在のモジュールは PowerShell Az モジュールです。PowerShell AzureRM モジュールは、これによって置き換えられています。 Az モジュールがインストールされている場合に、AzureRM コマンドを呼び出すスクリプトを実行しようとすると、スクリプトによってエラーがスローされます。 または、AzureRM モジュールがインストールされている場合に、Az コマンドを呼び出すスクリプトを実行しようとすると、スクリプトによってエラーがスローされます。
修復: AzureRM モジュールをアンインストールして、Az モジュールをインストールします。 手順については、「Azure Stack Hub 用の PowerShell Az モジュールをインストールする」を参照してください。 Azure Stack Hub ツールを使用している場合は、Az ツールを使用します。 az ブランチからツール リポジトリをクローンするか、az ブランチから AzureStack-Tools をダウンロードします。 手順については、「GitHub からの Azure Stack Hub ツールのダウンロード」を参照してください。
発生頻度: 共通
New-AzADServicePrincipal と New-AzADApplication でスローされたエラー
適用対象: 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
の形式である必要があります。 次のコマンドレットを使用します。New-AzADServicePrincipal -Role Owner -DisplayName <foo>.contoso.onmicrosoft.com
Azure Stack Hub での ID とサービス プリンシパルの使用の詳細については、「Azure Stack Hub の ID プロバイダーの概要」を参照してください。
有効な
IdentifierUri
を提供するMicrosoft Entra アプリを作成し、次のコマンドレットを使用してアプリを関連付けるサービス プリンシパルを作成します。$app=New-AzADApplication -DisplayName 'newapp' -IdentifierUris http://anything.contoso.onmicrosoft.com New-AzADServicePrincipal -Role Owner -ApplicationId $app.ApplicationId
発生頻度: 共通
エラー: "SharedTokenCacheCredential 認証に失敗しました"
- 適用先:この問題は、サポートされているすべてのリリースに適用されます。
- 原因: Azure Stack Hub PowerShell モジュール バージョン 2.1.1 で複数のバージョンの AzAccounts がインストールされている場合、SharedTokenCacheCredential 認証に失敗したというエラーがスローされます。
- 修復: AzAccounts のすべてのバージョンを削除し、サポートされている AzAccounts バージョン 2.2.8 のみをインストールします。
- 発生頻度: 共通