彷徨うITエンジニアの雑記

ITインフラ関連の雑記とか

個人でMS Azureの実習を始める手順②

AzureをCLIから操作するためにPowershell環境を整備する。
使用頻度の高いモジュールとしてAz、AzureADPreview、MSOnlineをインストールする。

1. AzureのPowershellモジュールの種類

Module Name Current ver. Minimum Powershell ver. Desc.
Az 5.4.0 5.1 基本のAzureモジュールで、AzureRMモジュールの後継
MSOnline 1.1.183.57 2.0 AzureAD用のモジュールで、AzureAD v1モジュールとも呼ぶ
AzureAD 2.0.2.128 3.0 AzureAD用のモジュールで、MSOnlineモジュールの後継。AzureAD v2モジュールとも呼ぶ
AzureADPreview 2.0.2.129 3.0 AzureADモジュールのプレビュー版。同モジュールとの共存は不可

2. インストール要件確認

Powershell 5.1、.Net Framework 4.7.2 以上がインストールされていることを確認する。
Azモジュール5.4.0のシステム要件:
https://docs.microsoft.com/ja-jp/powershell/azure/install-az-ps?view=azps-5.4.0#requirements

# Powershellのバージョン
> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      18362  1171

# .Net Frameworkのバージョン
> Get-Item 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full'


    Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4


Name                           Property
----                           --------
Full                           CBS           : 1
                               Install       : 1
                               InstallPath   : C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
                               Release       : 528040
                               Servicing     : 0
                               TargetVersion : 4.0.0
                               Version       : 4.8.03752

3. Powershellスクリプトの実行を許可する

管理者権限で以下のコマンドを実行する。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

後続作業は一般ユーザ権限でOK。

4. Azモジュールをインストールする

詳細はAzureのドキュメント一覧の Install Azure Powershell を参照
Overview of Azure PowerShell | Microsoft Docs

認証プロキシが存在する場合は以下を参照(素晴らしい!)
qiita.com

# Onlineインストール
> Install-Module -Name Az -AllowClobber -Scope CurrentUser

# バージョン確認
> Get-InstalledModule -Name Az -AllVersions

Version    Name                                Repository           Description
-------    ----                                ----------           -----------
5.4.0      Az                                  PSGallery            Microsoft Azure PowerShell - Cmdlets to manage r...

# 接続確認
> Connect-AzAccount

Account                       SubscriptionName TenantId                             Environment
-------                       ---------------- --------                             -----------
msazadmin@aabbcc12345.net MyAZSubscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx AzureCloud


アップデートは以下のコマンドを実行。
Update-Module -Name Az

アップデート後に古いバージョンが残っている場合は、古いバージョン削除して再インストールする。
Uninstall Azure PowerShell | Microsoft Docs

上記の方法で削除できない場合は $env:PSModulePath のどこかにある Az.* のフォルダをエクスプローラから削除する。
Scope=CurrentUser でインストールした場合は ~\ドキュメント\PowerShell\Modules 以下。

Offlineインストールの場合はGitHubからMSIをダウンロード可能。
https://github.com/Azure/azure-powershell

5. MSonlineモジュールをインストールする

最新版::
PowerShell Gallery | MSOnline 1.1.183.57

# Onlineインストール
> Install-Module -Name MSOnline -Scope CurrentUser

# バージョン
> Get-InstalledModule -Name MSOnline -AllVersions

Version    Name                                Repository           Description
-------    ----                                ----------           -----------
1.1.183.57 MSOnline                            PSGallery            Microsoft Azure Active Directory Module for Wind...

# 接続確認
> Connect-MsolService
> Get-MsolUser -UserPrincipalName msazadmin@aabbcc12345.net

UserPrincipalName             DisplayName isLicensed
-----------------             ----------- ----------
msazadmin@aabbcc12345.net msazadmin   True

6. AzureAD用のPowershellモジュールをインストールする

最新版:
PowerShell Gallery | AzureADPreview 2.0.2.129

# Onlineインストール
> Install-Module -Name AzureADPreview -Scope CurrentUser

# バージョン
> Get-InstalledModule -Name AzureADPreview -AllVersions

Version    Name                                Repository           Description
-------    ----                                ----------           -----------
2.0.2.129  AzureADPreview                      PSGallery            Azure Active Directory V2 Preview Module. ...

# 接続確認
> Connect-AzureAD

Account                       Environment TenantId                             TenantDomain        AccountType
-------                       ----------- --------                             ------------        -----------
msazadmin@aabbcc12345.net AzureCloud  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx aabbcc12345.net User