Powershell上でazモジュールを利用してAzureを操作する必要が出てきたため、
Azure Powershellモジュールをインストールしてみました。
インストールするときに利用したコマンドや注意点などをインストールの流れに沿ってご紹介していきます。
事前準備
PowerShell スクリプトの実行ポリシーの確認
現在のユーザでpowershellスクリプトが実行できるように実行ポリシーが、「RemoteSigned」「Unrestricted」「Bypass」のいづれかであることを確認します。
Get-ExecutionPolicy
もし「Restricted」「AllSigned」であった場合には以下のコマンドで変更してください。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
「AZ Powershellモジュール」のインストール
インストールコマンド実行
以下のコマンドを実行してインストールします。
if (Get-Module -Name AzureRM -ListAvailable) {
Write-Warning -Message ('Az module not installed. Having both the AzureRM and ' +
'Az modules installed at the same time is not supported.')
} else {
Install-Module -Name Az -AllowClobber -Scope CurrentUser
}
以下のような表示が出たら「y」を押します。
その後以下のように緑色でインストール状況が表示されます。
緑のインストール画面表示が終わるとインストール完了です。
インストールの確認
「get-command」で確認してみます。
get-command |select-string "get-azvm"
インストールコマンド解説
Windows では PowerShell 5.1 に対して AzureRM と Az の両方のモジュールを同時にインストールすることはサポートされていません。
なので現在の端末に「AzureRM」がインストールされていないかをif文の条件に記載し、もし「AzureRM」がインストールされている場合、「Az module not installed.・・・・」と表示します。
もし「Az module not installed. ・・・・ same time is not supported.」が表示されたら
AzureRMが既存で存在した場合に表示されますので「AzureRM」をアンインストールしましょう。
AzureRMのアンインストールの方法は以下の記事にまとめてありますので参考としてください。
スクリプトの実行ポリシーが [Restricted] だとコマンド実行できない
もう一点注意点があり、Powershellの実行ポリシーを [Restricted] として元の設定に戻すなどすると、コマンドが実行できないことがありますので注意が必要です。
以下のようにエラーとなり実行できません。
PS C:\> Get-ExecutionPolicy
Restricted
PS C:\>
PS C:\>
PS C:\> Connect-AzAccount
Connect-AzAccount : 'Connect-AzAccount' コマンドはモジュール 'Az.Accounts' で見つかりましたが、このモジュールを読み込む
ことができませんでした。詳細については、'Import-Module Az.Accounts' を実行してください。
発生場所 行:1 文字:1
+ Connect-AzAccount
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Connect-AzAccount:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CouldNotAutoloadMatchingModule
PS C:\>
なのでAzurePowershellを実行する際にはPowreshellの実行ポリシーは「Restricted」以外のポリシーにして実行しましょう。
Powershell実行ポリシーについては以下の記事にもまとめていますので参考にしてください。
[参考] サブスクリプションの変更方法
AzurePowerShell でAzureを操作する際には、1つのサブスクリプションが選択された状態での操作しか対応していません。
なのでもし複数のサブスクリプションを利用している場合にはサブスクリプション切り替える必要があります。
サブスクリプションを変更する方法については以下の記事でまとめているので参考にしてください。
[参考] AzureCLIのインストールについて
Powershellのモジュールとして提供されるほかにも、AzureCLIというインターフェースも提供されており、こちらはコマンドプロンプトからもAzureに対してコマンド操作することができます。
AzureCLI のインストール方法については以下の記事でまとめてありますので参考にしてみてください。