重要
Azure Resource Manager (AzureRM) PowerShell モジュールのすべてのバージョンが古く、サポート対象外です。 Az PowerShell モジュールは、Azure と Azure Stack Hub を操作するための推奨される PowerShell モジュールになりました。 この記事では、Az PowerShell モジュールの使用を開始する方法について説明します。 Az PowerShell モジュールに移行する方法については、「 Azure Stack Hub で AzureRM から Azure PowerShell Az に移行する」を参照してください。 グローバル Azure 全体で採用されている Az モジュールの機能の強化の詳細については、「 Azure Az PowerShell モジュールの概要」を参照してください。
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 モジュールは、Windows、macOS、Linux プラットフォームにインストールできます。
Docker コンテナーで Azure Stack Hub 用の Az モジュールを実行することもできます。 手順については、「 Docker を使用して Azure Stack Hub の PowerShell を実行する」を参照してください。
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 モジュールは、インターネットに接続されている、部分的に接続されている、または切断されたシナリオにインストールできます。 この記事では、これらのシナリオの詳細な手順について説明します。
前提条件を確認する
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
Linux と Mac の前提条件
PowerShell Core 6.x 以降のバージョンが必要です。 手順については、 リンク 先を参照してください。
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 モジュールが削除されます。
接続済み: インターネット接続を使用してインストールする
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
オフライン: インターネット接続なしでインストールする
切断されたシナリオでは、まず、インターネットに接続されているコンピューターに 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 のインストール
次のコードは、 信頼できるオンライン リポジトリから Az モジュールをインストールします。
[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
注
インターネットに接続していないマシンでは、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 modulesL をインストールする
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
プロキシ サーバーを使用するように 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
Az モジュールを使用する
AzureRM モジュールに基づくコマンドレットとコード サンプルは引き続き使用できます。 ただし、モジュールとコマンドレットの名前を変更する必要があります。 モジュール名は、 AzureRM
と Azure が Az
になるように変更されました。コマンドレットの場合も同じです。 たとえば、 AzureRM.Compute
モジュールの名前が Az.Compute
に変更されました。
New-AzureRMVM
が New-AzVM
され、 Get-AzureStorageBlob
が Get-AzStorageBlob
されました。
AzureRM スクリプトを Az に移動するための詳細な説明とガイダンス、および 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 プロファイルで動作しません。
- 修復: 仮想マシン スケール セットを作成するためのテンプレートを使用します。 Azure Stack Hub Resource Manager テンプレートのサンプルは、GitHub リポジトリ の AzureStack-QuickStart-Templates/101-vmss-windows-vm にあり、 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 AzureRM モジュールを置き換えた PowerShell Az モジュールです。 Az モジュールがインストールされている状態で、AzureRM コマンドを呼び出すスクリプトを実行しようとすると、スクリプトはエラーを発生させます。 AzureRM モジュールがインストールされている状態で Az コマンドを呼び出すスクリプトを実行しようとすると、そのスクリプトはエラーを発生させます。
修復: AzureRM モジュールをアンインストールし、Az モジュールをインストールします。 手順については、 Azure Stack Hub 用の PowerShell Az モジュールのインストールに関するページを参照してください。 Azure Stack Hub Tools を使用している場合は、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
ID と Azure Stack Hub でのサービス プリンシパルの使用の詳細については、「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 のみをインストールします。
- 発生: 共通