東京エレクトロンデバイス株式会社

Microsoft Azureコラム

2026/05/15

Writer: 手戸 蒼唯(てど あおい)

Azure PowerShellとは?Azureリソースの操作・管理を自動化する基本を解説

Microsoft Azureの多様なリソースを効率的に管理・運用するには、コマンドラインによる自動化が不可欠です。Azure PowerShellは、PowerShellの強力なオブジェクト指向の設計とスクリプティング能力を基盤に、Azureリソースを直接操作するために設計されたモジュール群です。


このツールを用いることで、仮想マシンの作成やネットワーク設定、ストレージ管理といったAzure上のほぼすべての操作を、対話的なコマンドライン操作や自動化スクリプトを通じてプログラム的に実行できます。


本記事では、Azure PowerShellの基本的な概念から、主要な機能、Azure CLIとの違い、具体的な利用開始手順、そしてコスト管理やセキュリティ設定の自動化といった実践的な活用シナリオまでを網羅的に解説します。


Azureの運用自動化や、コマンドラインでのリソース管理に関心のある方にとって、本記事がその第一歩となれば幸いです。


東京エレクトロンデバイスは、Azure PowerShellを活用した運用自動化をはじめ、企業のAzure活用を総合的に支援しています。

無料相談も受け付けておりますので、お気軽にご相談ください。

お問い合わせはこちら

Azure PowerShellとは?

Azure PowerShellは、PowerShellからAzureリソースを直接操作するために設計されたモジュール群です。これは、対話的なコマンドライン操作と、自動化されたスクリプト実行の両方に対応しています。


Azure PowerShellは、Azure Resource Manager(ARM)のREST APIを呼び出すことで、PowerShellの構文を用いて、仮想マシンの作成やネットワークの設定、ストレージの管理といったAzure上のほぼすべての操作をプログラム的に実行できます。


Windows、Linux、macOSの各プラットフォームで利用でき、PCにローカルインストールして使用するだけでなく、ブラウザからPowerShellにアクセスできるAzure Cloud Shellや、隔離された環境を構築できるDockerコンテナ内でも実行可能です。


PowerShellの概要

PowerShellは、Microsoftによって開発された、クロスプラットフォーム対応のコマンドラインツールです。PowerShellの主な特徴として、オブジェクト指向の設計とコマンドレットがあります。


オブジェクト指向の設計

一般的なシェル(WindowsのコマンドプロンプトやLinuxのBashなど)では、コマンド間のデータの受け渡しはプレーンテキストで行われます。これにより、あるコマンドの出力を次のコマンドで利用する(パイプライン)際には、文字列のパースが必要となり、処理が煩雑になります。


一方PowerShellでは、コマンド間で受け渡されるのは.NETオブジェクトです。.NETオブジェクトは、構造化されたプロパティと、そのデータを操作するためのメソッドを含んでいます。

例えば、仮想マシンを表すオブジェクトには、「名前」「状態」「IPアドレス」といったプロパティが含まれており、パイプライン処理を行う際にこれらの情報に直接アクセスできます。この設計により、スクリプトの信頼性と可読性が向上しています。


コマンドレット

PowerShellで使用されるコマンドは、コマンドレットと呼ばれます。コマンドレットは、以下のように動詞-名詞という標準化された命名規則に従っており、直感的で発見しやすいのが特徴です。

  • Get-Process: 実行中のプロセスを取得する
  • Stop-Service: サービスを停止する


このように、PowerShellは単なるコマンド実行環境ではなく、システムの管理と自動化を効率的に行うために設計されています。

次のセクションからは、Azure PowerShellについて詳しくご紹介します。


Azure PowerShellの主な機能

Azure PowerShellは、PowerShellの基盤の上に、Azureリソースを管理するための機能を提供しています。ここでは、その主要な機能について解説します。

2_Azure Cloud ShellからAzure PowerShellを利用する様子.webp

Azure Cloud ShellからAzure PowerShellを使用する様子 (参考:Microsoft)


リソースの包括的な管理

Azure PowerShellは、Azureのコントロールプレーンとデータプレーンの両方を操作するコマンドレットを提供します。

  • コントロールプレーン操作:サブスクリプション内のリソースを管理する操作です。例えば、仮想マシン(VM)の作成、リソースグループの削除、ネットワーク設定の変更などが含まれます。
  • データプレーン操作:リソースのインスタンスの機能を制御する操作です。例えば、ストレージアカウントにファイルをアップロードしたり、データベースでクエリを実行したりすることが含まれます。


両方を操作するアプローチがあるため、インフラ管理から日常的なタスクまで、Azure操作のほぼ全範囲を自動化することが可能です。


スクリプティング

Azure PowerShellは、反復的で複雑なタスクを自動化することができます。手動操作では時間と手間がかかり、ヒューマンエラーが発生しやすい作業も、スクリプト化することで正確に実行できます。


豊富なモジュール

Azure PowerShellは、Azureの各サービスに対応する複数のモジュールで構成されています。

これにより、必要な機能だけを選択的に利用できます。以下に主要なモジュールとその役割を示します。

モジュール名

管理対象のAzureサービス

利用例

AzAccounts

認証、サブスクリプション、テナント

Azureへのログイン、アクティブなサブスクリプションの設定

AzCompute

仮想マシン、スケールセット、ディスク

VMの作成、起動、停止、サイズ変更

AzStorage

ストレージアカウント、BLOB、ファイル、キュー

ストレージアカウントの作成、BLOBストレージへのファイルアップロード

AzNetwork

仮想ネットワーク、ネットワークセキュリティグループ、ロードバランサー

ネットワークルールの構成、IPアドレスの管理

AzResources

リソースグループ、ARMテンプレート、タグ

リソースグループの管理、リソースへのタグ付け

AzWebsites

App Service、Web Apps

Webアプリケーションのデプロイと管理


Azure CLIとの違い

Azureのコマンドラインツールとして、Azure PowerShellの他にAzure CLIも提供されています。

どちらを選択するかは、ユーザーの経験や作業環境によって異なります。以下に両者の特徴をまとめた表を示します。

特徴

Azure PowerShell

Azure CLI

ベース言語・構文

  • PowerShell
  • 動詞-名詞 形式のコマンドレット
  • Bashライク
  • 「az <group> <command>」 形式

対応プラットフォーム

設計当初はWindowsのみ、現在はクロスプラットフォーム対応 (Windows,macOS, Linux)

設計当初からクロスプラットフォーム対応、Linux/macOS環境で好まれる

出力形式

.NETオブジェクト

JSON文字列

コマンド操作

オブジェクト指向のため、リッチな対話的操作

簡潔なコマンドで迅速な操作


Azure PowerShellの料金

Azure PowerShell自体のインストール・利用は無料です。

ただし、Azure PowerShellから作成・操作するAzureリソース(仮想マシン、ストレージ、データベースなど)には、通常のAzure利用料金が発生します。

  • ツール利用料:無料(インストールや実行に課金なし)
  • リソース利用料:Azureの課金ルールに従って計算(従量課金または予約制など)
  • 試用環境:Azure無料アカウントでは、一定の無料クレジットや無料枠を利用可能


例:Azure PowerShellからVMを作成すると、そのVMの稼働時間やディスク容量に応じた料金がAzure側で発生します。

※2025年8月時点の情報です。最新の情報はAzure PowerShellの公式ドキュメントからご確認ください。


Azure PowerShellの利用手順

それでは、Azure PowerShellを利用するための手順をステップごとにご説明します。

ローカルPC、Azure Cloud Shell、Dockerコンテナの3通りで利用する手順をご紹介します。


ローカルPCの場合

まずは、ローカルPC(Windows)にインストールする手順を示します。macOS、Linuxでも同様の手順でインストールできます。


1. PowerShellの起動

現在、PowerShellはWindowsに標準搭載されています。「Windowsキー」を押し、「スタート」から「PowerShell」を検索して起動します。

3_PowerShellの起動.webp

PowerShellの起動


2. PowerShellのバージョンの確認

以下のコマンドを実行してPowerShellのバージョンを確認しましょう。


```PowerShell

$PSVersionTable.PSVersion

```

4_PowerShellのバージョンの確認.webp

PowerShellのバージョンの確認


PowerShellのバージョンが5.1(Majorが5、Minorが1)未満の場合は、以下のコマンドを実行してアップグレードしましょう。


```PowerShell

winget install --id Microsoft.PowerShell --source winget

```


3. Azure PowerShellのインストール

以下のコマンドを実行し、Azure PowerShellをインストールしましょう。インストール完了まで少し時間がかかりますが、エラーメッセージが出力されなければ成功です。


```PowerShell

Install-Module -Name Az -Repository PSGallery -Force

```


4. Azureアカウントにサインイン

以下のコマンドを実行し、リソースの管理を行うAzureアカウントにサインインしましょう。


```PowerShell

Connect-AzAccount

```


5_Azureアカウントにサインイン.webp

Azureアカウントにサインイン


上記のステップでローカルPCからAzure PowerShellの利用が可能になります。


Azure Cloud Shell

1. Azure Cloud Shellにアクセス


まずはAzure Cloud Shell公式サイトにアクセスし、「PowerShell」を選択します。


6_Azure Cloud Shellにアクセス.webp

Azure Cloud Shellにアクセス


2. ストレージアカウントの接続(任意)

続いて、ストレージアカウントを接続するか確認するウィンドウが表示されます。必要に応じてストレージアカウントをマウントしましょう。

7_ストレージアカウントの接続(任意).webp

ストレージアカウントの接続(任意)


設定が完了すると、PowerShellが起動します。Azure Cloud Shellには、Azure PowerShellがプリインストールされているため、上記のステップですぐに利用可能です。


Dockerコンテナ

1. Azure PowerShellのDockerイメージを取得


ターミナルを起動し、以下のコマンドを実行してAzure PowerShellのDockerイメージを取得しましょう。


```bash

docker pull mcr.microsoft.com/azure-powershell

```


8_Azure PowerShellのDockerイメージを取得.webp

Azure PowerShellのDockerイメージを取得


2. Dockerコンテナを起動

以下のコマンドを実行してAzure PowerShellのDockerコンテナを起動しましょう。


```bash

docker run -it mcr.microsoft.com/azure-powershell

```


3. Azureアカウントにサインイン

以下のコマンドを実行し、リソースの管理を行うAzureアカウントにデバイス認証でサインインしましょう。


```bash

Connect-AzAccount -UseDeviceAuthentication

```


9_デバイス認証でAzureアカウントにサインイン.webp

デバイス認証でAzureアカウントにサインイン


表示されたURLにアクセスし、9桁のコードを入力することでサインインできます。


上記のステップでDockerコンテナからAzure PowerShellの利用が可能になります。


Azure PowerShellの活用デモ

Azure PowerShellを活用することでAzure上の様々な操作が可能になりますが、このセクションでは「Azure OpenAI Serviceのリソースを作成し、作成したリソースを確認する」というデモを行います。


まずは利用手順のセクションに従ってAzure PowerShellを設定します。


次に以下のコマンドを実行し、Azure OpenAI Serviceのリソースを作成します。


```PowerShell

New-AzCognitiveServicesAccount `

-ResourceGroupName "#リソースグループ名" `

-Name "#リソース名" `

-Type "OpenAI" `

-SkuName "S0" `

-Location "East US"

```


実行が完了したので以下のコマンドで確認すると、結果が表示され、正しくリソースが作成できていることが分かりました。


```PowerShell

Get-AzCognitiveServicesAccount -ResourceGroupName "#リソースグループ名"

```


10_リソースの作成結果.webp

リソースの作成結果


Azure PowerShellの使い方のコツ

Azure PowerShellを効率的に使うためには、いくつかのベストプラクティスを取り入れることが有効です。ここでは、実務に役立つコツをご紹介します。


データの効率的なフィルタリング

Azure環境では、数百、数千のリソースを扱う場合もあります。大量のデータから必要な情報だけを抽出する技術は重要です。


  • Where-Object:コマンドレットが返すオブジェクトのコレクションを、特定のプロパティ値に基づいて絞り込むために使用します。  
  • Select-Object:オブジェクトが持つ多数のプロパティの中から、必要なものだけを選択して表示を整形します。  


例:WestUSリージョンにあり、サイズが`Standard_D2s`のVMの名前と電源状態だけを表示する


```PowerShell

Get-AzVM -ResourceGroupName "MyResourceGroup" -Location "WestUS" |

Where-Object { $_.HardwareProfile.VmSize -eq 'Standard_D2s' } |

Select-Object -Property Name, @{Name='PowerState'; Expression={$_.PowerState}}

```


上記のように、コマンドをパイプラインで繋ぎ、段階的にデータを絞り込んでいくのがPowerShellの基本的なフィルタリングです。


また、「Get-*」コマンドレットが提供する「-Name」や「-ResourceGroupName」などのパラメータを活用し、不要なデータを取得しないように心がけることも重要です。


「-WhatIf」による操作の事前確認

リソースの変更や削除といった操作を行う前に、そのコマンドが実行された場合に何が起こるかをプレビューできる「-WhatIf」パラメータは重要な安全機能です。  


例:リソースグループを削除する前に、どのリソースが削除されるかを確認する


```PowerShell

Remove-AzResourceGroup -Name "MyCriticalResourceGroup" -WhatIf

```


上記のようなコマンドを実行するとメッセージが表示され、実行される操作の概要が示されます。本番環境での操作前には、`-WhatIf`を付けて実行することが推奨されます。


Try-Catchによるエラーハンドリング

スクリプトが予期せぬエラーで中断してしまうことを防ぎ、安定した自動化を実現するためには、Try-Catchブロックを活用しましょう。  


  • Tryブロック:エラーが発生する可能性のあるコードを囲みます。
  • Catchブロック:Tryブロック内でエラーが発生した場合に実行されるコードを記述します。


例:存在しない可能性のあるVMの情報を取得しようとする


```PowerShell

try {

$vm = Get-AzVM -ResourceGroupName "MyResourceGroup" -Name "NonExistentVM" -ErrorAction Stop

Write-Host "VM $($vm.Name) の状態は $($vm.PowerState) です。"

}

catch {

Write-Warning "VMの取得に失敗しました。エラー: $($_.Exception.Message)"


}

```


上記のように「$_.Exception.Message」を使用すると、具体的なエラーメッセージを取得できます。  


Azure PowerShellの活用シーン

Azure PowerShellは、ビジネス上の課題を解決するためのツールとして多様なシーンで活用できます。以下に3つの具体的なユースケースをご紹介します。


コスト管理のための自動スケジュール

テスト環境のVMは、業務時間外や休日には不要である場合が多いです。これらのVMを夜間や週末に自動的に停止し、翌朝に起動させることで、コンピューティングコストを削減できます。  


特定のタグが付与されたVMをフィルタリングし、一括で状態を変更するスクリプトをAzure PowerShellで作成できます。この処理は、Azure AutomationのRunbook(実行可能なスクリプト)として実装し、スケジュール機能と組み合わせることが有効です。


リソースの自動ライフサイクル管理

サンドボックス環境や一時的なプロジェクトでは、不要になったリソースが放置されることが問題となります。Azure PowerShellを活用することで、リソースのライフサイクルを自動で管理できます。


例えば、「expireOn」というタグにリソースの有効期限日を設定するルールを設け、Azure PowerShellで実行可能なスクリプトを作成します。

そして、Azure Automationで毎日スクリプトを実行することで、「expireOn」タグの日付が過去になっているリソースを自動的に削除できます。


セキュリティ設定の自動チェック

企業のセキュリティポリシーがAzure環境全体で遵守されているか、手動で確認するのは困難です。例えば、全てのストレージアカウントで安全な通信(HTTPS)が有効になっているかを定期的にチェックする必要があります。


サブスクリプション内のストレージアカウントをフィルタリングし、「EnableHttpsTrafficOnly」というタグを取得するスクリプトを作成することで、HTTPS通信が無効になっているものをリストアップすることができます。



Azure PowerShell利用時の注意点

Azure PowerShellは有用なツールですが、効果的に利用するためにはいくつかの注意点を理解する必要があります。最後に、主な注意点を解説します。


破壊的変更の確認

Microsoftは、PowerShellモジュールのアップグレードの際に、コマンドレット名の変更、パラメータの削除、出力オブジェクトの構造変更などの破壊的変更を導入することがあります。


本番環境でスクリプトを安定して運用するためには、以下の対策が重要です。


  • モジュールバージョンの固定

  Azure Functionsのrequirements.psd1ファイルや、CI/CDエージェントのセットアップスクリプトで、使用するPowerShellモジュールのバージョンを明示的に指定しましょう。

  • 公式ドキュメントの確認

  新しいメジャーバージョンへアップグレードする前に、公式ドキュメントを参照し、スクリプトへの影響を確認しましょう。

  • Previewモジュールの回避

  Previewモジュールは新機能のテスト用であり、破壊的変更が頻繁に発生する可能性があるため、本番環境での使用は避けましょう。  


PowerShell実行ポリシーの確認

PowerShellには、悪意のあるスクリプトの実行を防ぐためのセキュリティ機能として実行ポリシーが存在します。

Windowsクライアントでは、デフォルトでRestricted(スクリプト実行不可)に設定される場合があるため、スクリプトを実行する前に実行ポリシーを確認しましょう。  


以下のコマンドを実行することで確認可能です。


```PowerShell

Get-ExecutionPolicy -List

```


以下に、主要な実行ポリシーとその意味を示します。

ポリシー

意味

Restricted

  • スクリプト実行を一切許可しない
  • 対話的なコマンドのみ実行可能

RemoteSigned

  • ローカルで作成したスクリプトは実行可能
  • インターネットからダウンロードしたスクリプトは、デジタル署名が必要

Unrestricted

  • すべてのスクリプトを実行可能
  • インターネットからダウンロードしたスクリプトの実行時には確認画面が表示

Bypass

何もブロックされず、確認画面も非表示


安全な資格情報の取り扱い

スクリプト内に資格情報をハードコーディングすることは、不正アクセスや情報漏洩といったセキュリティリスクにつながります。


資格情報を安全に取り扱うためには、シークレットや証明書をAzure Key Vaultに安全に保管し、スクリプト実行時にマネージドIDを使用して動的に取得するといった手法が推奨されます。


まとめ

本記事では、Azure PowerShellの基本的な概要から、主な機能、利用手順、活用例、注意点までを詳しく解説しました。

Azure PowerShellは、PowerShellの基盤を活用してAzureリソースを効率的に管理するためのツールです。


Azure PowerShellを使用することで、リソースの包括的な管理やスクリプトによる自動化が可能となり、業務効率を向上させることができます。

また、ローカルPC、Azure Cloud Shell、Dockerコンテナなど、さまざまな環境で利用可能であり、柔軟性の高いツールです。本記事でご紹介したコツや注意事項も参考に、Azure PowerShellを活用してAzureリソースの管理を最適化しましょう。


東京エレクトロンデバイスは企業のAzure導入を支援しています。お問い合わせはこちら

CONTACT
お問い合わせ

Microsoft AzureおよびAI・IoTに関する
お問い合わせはこちらから

東京エレクトロンデバイス株式会社

Copyright © Tokyo Electron Device LTD. All Rights Reserved.
当ウェブサイトでは、サイトの利便性向上のためにクッキーを利用しています。サイトの閲覧を続行されるには、クッキーの使用にご同意いただきますようお願いします。詳細はこちら