Azure Windows VM エージェントの概要

Microsoft Azure Windows VM エージェントは、仮想マシン (VM) と Azure ファブリック コントローラーのやり取りを管理する、セキュリティで保護された簡易プロセスです。 Azure Windows VM エージェントは、Azure 仮想マシン拡張機能の有効化と実行において主要な役割を果たします。 VM 拡張機能は、VM のデプロイ後の構成 (ソフトウェアのインストールと構成など) を有効にします。 VM 拡張機能は、VM の管理者パスワードのリセットなどの回復機能も有効にします。 Azure Windows VM エージェントがないと、VM 拡張機能を実行できません。

この記事では、Azure Windows VM エージェントをインストールして検出する方法について説明します。

前提条件

Azure Windows VM エージェントでは、次の Windows オペレーティング システムの x64 アーキテクチャがサポートされます。

  • Windows 10
  • Windows 11
  • Windows Server 2008 SP2
  • Windows Server 2008 R2
  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows Server 2016
  • Windows Server 2016 Core
  • Windows Server 2019
  • Windows Server 2019 Core
  • Windows Server 2022
  • Windows Server 2022 Core

重要

  • Azure Windows VM エージェントでは、.NET Framework 4.0 を使用して、少なくとも Windows Server 2008 SP2 (64 ビット) を実行する必要があります。 「Azure での仮想マシン エージェントの最小バージョン サポート」を参照してください

  • VM が IP アドレス168.63.129.16 にアクセスできることを確認します。 詳しくは、「IP アドレス 168.63.129.16 とは」を参照してください。

  • ゲスト VM 内で DHCP が有効になっていることを確認します。 これは、Azure Windows VM エージェントと拡張機能が機能するためのホストまたはファブリック アドレスを DHCP から取得するために必要です。 静的プライベート IP アドレスが必要な場合は、Azure portal または PowerShell を使用してそれを構成し、VM 内の DHCP オプションが有効になっていることを確認する必要があります。 PowerShell を使用した静的 IP アドレスの設定については、こちらをご覧ください。

  • 入れ子になった仮想化 VM で Azure Windows VM エージェントを実行すると、予期しない動作が発生する可能性があるため、その Dev/Test シナリオではサポートされません。

Azure Windows VM エージェントをインストールする

Azure Marketplace イメージ

Azure Windows VM エージェントは、Azure Marketplace イメージからデプロイされたすべての Windows VM に既定でインストールされます。 Azure Windows VM エージェントは、Azure portal、PowerShell、Azure CLI、Azure Resource Manager テンプレートから Azure Marketplace イメージをデプロイしてもインストールされます。

Azure Windows VM エージェント パッケージには、次の 2 つの部分があります。

  • Azure Windows プロビジョニング エージェント (PA)
  • Azure Windows ゲスト エージェント (WinGA)

VM をブートするには、VM に PA がインストールされている必要があります。 ただし、WinGA をインストールする必要はありません。 VM のデプロイした時に、WinGA をインストールしないことを選択できます。 次の例は、Azure Resource Manager テンプレートを使って provisionVmAgent オプションを選択する方法を示しています。

{
	"resources": [{
		"name": ["parameters('virtualMachineName')"],
		"type": "Microsoft.Compute/virtualMachines",
		"apiVersion": "2016-04-30-preview",
		"location": ["parameters('location')"],
		"dependsOn": ["[concat('Microsoft.Network/networkInterfaces/', parameters('networkInterfaceName'))]"],
		"properties": {
			"osProfile": {
				"computerName": ["parameters('virtualMachineName')"],
				"adminUsername": ["parameters('adminUsername')"],
				"adminPassword": ["parameters('adminPassword')"],
				"windowsConfiguration": {
					"provisionVmAgent": "false"
				}
			}
		}
	}]
}

エージェントがインストールされていない場合、Azure Backup や Azure Security など、Azure の一部のサービスを使用できません。 これらのサービスでは、拡張機能をインストールする必要があります。 WinGA なしで VM をデプロイする場合、最新バージョンのエージェントを後からインストールできます。

手動のインストール

Windows インストーラー パッケージを使用して、手動で Azure Windows VM エージェントをインストールできます。 Azure にデプロイされるカスタム VM イメージを作成するときには、手動でのインストールが必要な場合があります。

手動で Azure Windows VM エージェントをインストールするには、インストーラーをダウンロードし、最新のリリースを選択します。 Azure Windows VM エージェント リリースの GitHub ページで、特定のバージョンを検索することもできます。 Azure Windows VM エージェントは、Windows Server 2008 (64 ビット) 以降でサポートされます。

Note

ProvisionVMAgent を有効にせずにイメージからデプロイされた VM に Azure Windows VM エージェントを手動でインストールした後、AllowExtensionOperations オプションを更新することが重要です。

$vm.OSProfile.AllowExtensionOperations = $true
$vm | Update-AzVM

Azure Windows VM エージェントを検出する

PowerShell

Azure Resource Manager の PowerShell モジュールを使用して、Azure VM に関する情報を取得できます。 VM に関する情報 (Azure Windows VM エージェントのプロビジョニング状態など) を表示するには、Get-AzVM を使用します。

Get-AzVM

次は圧縮された出力の例から、OSProfileの内部ではめ込んでいた ProvisionVMAgent プロパティを示しています。 このプロパティを使用すると、VM に VM エージェントがデプロイされているかどうかを判定できます。

OSProfile                  :
  ComputerName             : myVM
  AdminUsername            : myUserName
  WindowsConfiguration     :
    ProvisionVMAgent       : True
    EnableAutomaticUpdates : True

次のスクリプトを使用して、Windows OS を実行している VM の名前と Azure Windows VM エージェントの状態の簡潔な一覧を返します。

$vms = Get-AzVM

foreach ($vm in $vms) {
    $agent = $vm | Select -ExpandProperty OSProfile | Select -ExpandProperty Windowsconfiguration | Select ProvisionVMAgent
    Write-Host $vm.Name $agent.ProvisionVMAgent
}

次のスクリプトを使用して、Linux OS を実行している VM の名前と Azure Windows VM エージェントの状態の簡潔な一覧を返します。

$vms = Get-AzVM

foreach ($vm in $vms) {
    $agent = $vm | Select -ExpandProperty OSProfile | Select -ExpandProperty Linuxconfiguration | Select ProvisionVMAgent
    Write-Host $vm.Name $agent.ProvisionVMAgent
}

手動での検出

Windows VM にログインすると、タスク マネージャーを使用して、実行中のプロセスを調べることができます。 Azure Windows VM エージェントを確認するには、タスク マネージャーを開いて [詳細] タブを選択し、WindowsAzureGuestAgent.exe という名前のプロセスを探します。 このプロセスが存在する場合は、VM エージェントがインストールされています。

Azure Windows VM エージェントをアップグレードする

Azure Windows VM エージェントは、Azure Marketplace からデプロイされたイメージ上で自動的にアップグレードされます。 新しいバージョンは Azure Storage に格納されているため、アクセスをブロックするファイアウォールがないことを確認してください。 新しい VM が Azure にデプロイされると、VM のプロビジョニング時に最新の VM エージェントが提供されます。 エージェントを手動でインストールした場合、またはカスタム VM イメージをデプロイしている場合は、イメージの作成時に新しい VM エージェントを含めるように手動で更新する必要があります。

Azure Windows ゲスト エージェントの自動ログ収集

Azure Windows ゲスト エージェントには、一部のログを自動的に収集する機能があります。 この機能は CollectGuestLogs.exe プロセスによって制御されます。 これは、サービスとしてのプラットフォーム (PaaS) クラウド サービスとサービスとしてのインフラストラクチャ (IaaS) VM の両方に存在します。 その目標は迅速かつ自動的に VM から診断ログを収集することであるため、オフライン分析に使用できます。

収集されるログは、イベント ログ、OS ログ、Azure ログ、および一部のレジストリ キーです。 エージェントによって、VM のホストに転送される ZIP ファイルが生成されます。 その後、エンジニアリング チームやサポート担当者がこの ZIP ファイルを使用して、VM を所有しているお客様の要求に関する問題を調査できます。

Azure Windows ゲスト エージェントと OSProfile 証明書

Azure Windows VM エージェントによって、VM または仮想マシン スケール セットの OSProfile 値で参照される証明書がインストールされます。 ゲスト VM 内の Microsoft 管理コンソール (MMC)証明書スナップインからこれらの証明書を手動で削除しても、Azure Windows ゲスト エージェントによって再び追加されます。 証明書を完全に削除するには、OSProfile から削除し、その後、ゲスト オペレーティング システム内から削除する必要があります。

仮想マシンについては、Remove-AzVMSecret を使用して、OSProfile から証明書を削除します。

仮想マシン スケール セットの証明書に関する詳細については、Azure 仮想マシン スケール セットに関するページの「非推奨の証明書を削除するにはどうすればよいですか?」を参照してください。

次のステップ

VM 拡張機能の詳細については、「Azure 仮想マシンの拡張機能とその機能」を参照してください。