Windows 用の仮想マシン拡張機能とその機能Virtual machine extensions and features for Windows

Azure 仮想マシン (VM) 拡張機能は、Azure VM でのデプロイ後の構成と自動タスクを提供する複数の小さなアプリケーションです。Azure virtual machine (VM) extensions are small applications that provide post-deployment configuration and automation tasks on Azure VMs. たとえば、仮想マシンでソフトウェアのインストールやウイルス対策保護が必要な場合、あるいは、仮想マシン内でスクリプトを実行するために、VM 拡張機能を使用できます。For example, if a virtual machine requires software installation, anti-virus protection, or to run a script inside of it, a VM extension can be used. Azure VM 拡張機能は、Azure CLI、PowerShell、Azure Resource Manager テンプレート、および Azure Portal を使って実行できます。Azure VM extensions can be run with the Azure CLI, PowerShell, Azure Resource Manager templates, and the Azure portal. 拡張機能は、新しい VM の展開にバンドルすることも、既存の任意のシステムに対して実行することもできます。Extensions can be bundled with a new VM deployment, or run against any existing system.

この記事では、VM 拡張機能の概要と Azure VM 拡張機能を使用する場合の前提条件を示し、VM 拡張機能を検出、管理、および削除する方法についてのガイダンスを提供します。This article provides an overview of VM extensions, prerequisites for using Azure VM extensions, and guidance on how to detect, manage, and remove VM extensions. 構成がそれぞれ固有の VM 拡張機能が多数あるため、この記事では一般的な情報を示します。This article provides generalized information because many VM extensions are available, each with a potentially unique configuration. 拡張機能に固有の詳細情報については、それぞれの拡張機能のドキュメントをご覧ください。Extension-specific details can be found in each document specific to the individual extension.

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

ユース ケースとサンプルUse cases and samples

さまざまな Azure VM 拡張機能が存在しますが、そのユース ケースはそれぞれ異なります。Several different Azure VM extensions are available, each with a specific use case. 次に例をいくつか示します。Some examples include:

プロセス固有の拡張機能のほか、カスタム スクリプト拡張機能を Windows と Linux の両方の仮想マシンで使用できます。In addition to process-specific extensions, a Custom Script extension is available for both Windows and Linux virtual machines. Windows 用カスタム スクリプト拡張機能では、VM で実行する任意の PowerShell スクリプトを使用できます。The Custom Script extension for Windows allows any PowerShell script to be run on a VM. カスタム スクリプトは、ネイティブの Azure ツールが提供可能な構成以上の構成を必要とする Azure のデプロイを設計する場合に役立ちます。Custom scripts are useful for designing Azure deployments that require configuration beyond what native Azure tooling can provide. 詳しくは、Windows VM のカスタム スクリプト拡張機能に関する記事をご覧ください。For more information, see Windows VM Custom Script extension.

前提条件Prerequisites

VM 上で拡張機能を処理するには、Azure Windows エージェントがインストールされている必要があります。To handle the extension on the VM, you need the Azure Windows Agent installed. 一部の個々の拡張機能には、リソースまたは依存関係へのアクセスなどの前提条件があります。Some individual extensions have prerequisites, such as access to resources or dependencies.

Azure VM エージェントAzure VM agent

Azure VM エージェントは、Azure VM と Azure ファブリック コントローラーとの相互動作を管理します。The Azure VM agent manages interactions between an Azure VM and the Azure fabric controller. VM エージェントは、Azure VM のデプロイと管理の多くの機能面を担当します (VM 拡張機能の実行など)。The VM agent is responsible for many functional aspects of deploying and managing Azure VMs, including running VM extensions. Azure VM エージェントは、Azure Marketplace イメージにプレインストールされており、サポートされているオペレーティング システムに手動でインストールすることができます。The Azure VM agent is preinstalled on Azure Marketplace images, and can be installed manually on supported operating systems. Windows 用 の Azure VM エージェントは、Windows ゲスト エージェントと呼ばれます。The Azure VM Agent for Windows is known as the Windows Guest agent.

サポートされているオペレーティング システムおよびインストール手順については、「仮想マシンのエージェントおよび拡張機能について」を参照してください。For information on supported operating systems and installation instructions, see Azure virtual machine agent.

サポートされているエージェントのバージョンSupported agent versions

最適なエクスペリエンスを提供するために、エージェントの最小バージョンが用意されています。In order to provide the best possible experience, there are minimum versions of the agent. 詳細については、 こちらの記事を参照してください。For more information, see this article.

サポート対象の OSSupported OSes

Windows ゲスト エージェントは複数の OS で実行されますが、拡張機能フレームワークでは拡張を行う OS に対して制限があります。The Windows Guest agent runs on multiple OSes, however the extensions framework has a limit for the OSes that extensions. 詳細については、 こちらの記事を参照してください。For more information, see this article.

一部の拡張機能は、すべての OS ではサポートされず、"エラー コード 51、'OS がサポートされていません' " が出力される場合があります。Some extensions are not supported across all OSes and may emit Error Code 51, 'Unsupported OS'. サポートの可否については、個々の拡張機能のドキュメントを確認してください。Check the individual extension documentation for supportability.

ネットワーク アクセスNetwork access

拡張機能パッケージは、Azure Storage 拡張機能リポジトリからダウンロードされ、拡張機能ステータスのアップロードが Azure Storage に転記されます。Extension packages are downloaded from the Azure Storage extension repository, and extension status uploads are posted to Azure Storage. サポートされているバージョンのエージェントを使用する場合、エージェント通信用の Azure ファブリック コントローラーに通信をリダイレクトするためにエージェントを使用できるので、VM リージョン内の Azure Storage へのアクセスを許可する必要はありません。If you use supported version of the agents, you do not need to allow access to Azure Storage in the VM region, as can use the agent to redirect the communication to the Azure fabric controller for agent communications. サポートされていないバージョンのエージェントを使用する場合は、VM からそのリージョン内の Azure Storage への送信アクセスを許可する必要があります。If you are on a non-supported version of the agent, you need to allow outbound access to Azure storage in that region from the VM.

重要

ゲスト ファイアウォールを使用して 168.63.129.16 へのアクセスをブロックした場合、上記のアクセス許可とは関係なく、拡張機能はエラーになります。If you have blocked access to 168.63.129.16 using the guest firewall, then extensions fail irrespective of the above.

エージェントは、拡張機能パッケージおよびレポート ステータスをダウンロードするためだけに使用できます。Agents can only be used to download extension packages and reporting status. たとえば、拡張機能のインストール時に GitHub からスクリプトをダウンロードする必要がある場合 (カスタム スクリプト)、または Azure Storage へのアクセスが必要な場合 (Azure Backup) は、追加のファイアウォール/ネットワーク セキュリティ グループ ポートが開かれている必要があります。For example, if an extension install needs to download a script from GitHub (Custom Script) or needs access to Azure Storage (Azure Backup), then additional firewall/Network Security Group ports need to be opened. 拡張機能はそれぞれ、独自のアプリケーションになっているため、要件も異なります。Different extensions have different requirements, since they are applications in their own right. たとえば、拡張機能が Azure Storage へのアクセスを必要とする場合、ストレージの Azure NSG サービス タグを使用してアクセスを許可できます。For extensions that require access to Azure Storage, you can allow access using Azure NSG Service Tags for Storage.

Windows ゲスト エージェントでは、エージェント トラフィックの要求をリダイレクトするために使用するプロキシ サーバーをサポートしていません。The Windows Guest Agent does not have proxy server support for you to redirect agent traffic requests through.

VM 拡張機能の検出Discover VM extensions

Azure VM と共に、多くのさまざまな VM 拡張機能を使用できます。Many different VM extensions are available for use with Azure VMs. 完全な一覧を表示するには、Get-AzVMExtensionImage を使用します。To see a complete list, use Get-AzVMExtensionImage. 次の例では、WestUS の場所で利用できるすべての拡張機能が表示されています。The following example lists all available extensions in the WestUS location:

Get-AzVmImagePublisher -Location "WestUS" | `
Get-AzVMExtensionImageType | `
Get-AzVMExtensionImage | Select Type, Version

VM 拡張機能の実行Run VM extensions

Azure VM 拡張機能は既存の VM で実行できます。これは、構成の変更や、デプロイ済みの VM での接続の回復が必要な場合に便利です。Azure VM extensions run on existing VMs, which is useful when you need to make configuration changes or recover connectivity on an already deployed VM. また、VM 拡張機能を Azure Resource Manager テンプレートのデプロイにバンドルすることもできます。VM extensions can also be bundled with Azure Resource Manager template deployments. Resource Manager テンプレートで拡張機能を使用すると、Azure VM をデプロイし、デプロイ後の操作を行わずに構成できます。By using extensions with Resource Manager templates, Azure VMs can be deployed and configured without post-deployment intervention.

既存の VM に対して拡張機能を実行するには、次の方法を使用します。The following methods can be used to run an extension against an existing VM.

PowerShellPowerShell

個々の拡張機能を実行するための PowerShell コマンドがいくつか存在します。Several PowerShell commands exist for running individual extensions. 一覧を表示するには、Get-command を使用して拡張機能をフィルター処理します。To see a list, use Get-Command and filter on Extension:

Get-Command Set-Az*Extension* -Module Az.Compute

次のような出力が表示されます。This provides output similar to the following:

CommandType     Name                                          Version    Source
-----------     ----                                          -------    ------
Cmdlet          Set-AzVMAccessExtension                       4.5.0      Az.Compute
Cmdlet          Set-AzVMADDomainExtension                     4.5.0      Az.Compute
Cmdlet          Set-AzVMAEMExtension                          4.5.0      Az.Compute
Cmdlet          Set-AzVMBackupExtension                       4.5.0      Az.Compute
Cmdlet          Set-AzVMBginfoExtension                       4.5.0      Az.Compute
Cmdlet          Set-AzVMChefExtension                         4.5.0      Az.Compute
Cmdlet          Set-AzVMCustomScriptExtension                 4.5.0      Az.Compute
Cmdlet          Set-AzVMDiagnosticsExtension                  4.5.0      Az.Compute
Cmdlet          Set-AzVMDiskEncryptionExtension               4.5.0      Az.Compute
Cmdlet          Set-AzVMDscExtension                          4.5.0      Az.Compute
Cmdlet          Set-AzVMExtension                             4.5.0      Az.Compute
Cmdlet          Set-AzVMSqlServerExtension                    4.5.0      Az.Compute
Cmdlet          Set-AzVmssDiskEncryptionExtension             4.5.0      Az.Compute

次の例では、カスタム スクリプト拡張機能を使って、ターゲットの仮想マシン上に GitHub リポジトリからスクリプトをダウンロードし、スクリプトを実行します。The following example uses the Custom Script extension to download a script from a GitHub repository onto the target virtual machine and then run the script. カスタム スクリプト拡張機能について詳しくは、カスタム スクリプト拡張機能の概要に関する記事をご覧ください。For more information on the Custom Script extension, see Custom Script extension overview.

Set-AzVMCustomScriptExtension -ResourceGroupName "myResourceGroup" `
    -VMName "myVM" -Name "myCustomScript" `
    -FileUri "https://raw.githubusercontent.com/neilpeterson/nepeters-azure-templates/master/windows-custom-script-simple/support-scripts/Create-File.ps1" `
    -Run "Create-File.ps1" -Location "West US"

次の例では、VM アクセス拡張機能を使って、Windows VM の管理パスワードを一時パスワードにリセットします。In the following example, the VM Access extension is used to reset the administrative password of a Windows VM to a temporary password. VM アクセス拡張機能について詳しくは、Windows VM でのリモート デスクトップ サービスのリセットに関する記事をご覧ください。For more information on the VM Access extension, see Reset Remote Desktop service in a Windows VM. これを実行した後は、最初のログイン時にパスワードをリセットします。Once you have run this, you should reset the password at first login:

$cred=Get-Credential

Set-AzVMAccessExtension -ResourceGroupName "myResourceGroup" -VMName "myVM" -Name "myVMAccess" `
    -Location WestUS -UserName $cred.GetNetworkCredential().Username `
    -Password $cred.GetNetworkCredential().Password -typeHandlerVersion "2.0"

Set-AzVMExtension コマンドを使って、任意の VM 拡張機能を開始できます。The Set-AzVMExtension command can be used to start any VM extension. 詳細については、Set-AzVMExtension のリファレンスを参照してください。For more information, see the Set-AzVMExtension reference.

Azure ポータルAzure portal

VM 拡張機能は、Azure Portal から既存の VM に適用できます。VM extensions can be applied to an existing VM through the Azure portal. ポータルで VM を選択し、 [拡張機能] を選択してから、 [追加] を選択します。Select the VM in the portal, choose Extensions, then select Add. 利用可能な拡張機能の一覧から目的の拡張機能を選択し、ウィザードの手順に従います。Choose the extension you want from the list of available extensions and follow the instructions in the wizard.

次の例は、Azure Portal からの Microsoft Antimalware 拡張機能のインストールを示しています。The following example shows the installation of the Microsoft Antimalware extension from the Azure portal:

antimalware 拡張機能のインストール

Azure Resource Manager のテンプレートAzure Resource Manager templates

VM 拡張機能を Azure Resource Manager テンプレートに追加し、テンプレートのデプロイを使用して実行できます。VM extensions can be added to an Azure Resource Manager template and executed with the deployment of the template. テンプレートを使用して拡張機能をデプロイする場合は、完全に構成された Azure デプロイを作成できます。When you deploy an extension with a template, you can create fully configured Azure deployments. たとえば、次の JSON は、負荷分散された一連の VM と Azure SQL データベースをデプロイし、各 VM に .NET Core アプリケーションをインストールする Resource Manager テンプレートからの抜粋です。For example, the following JSON is taken from a Resource Manager template deploys a set of load-balanced VMs and an Azure SQL database, then installs a .NET Core application on each VM. VM 拡張機能はソフトウェアのインストールに対応します。The VM extension takes care of the software installation.

詳しくは、Resource Manager テンプレート全体をご覧ください。For more information, see the full Resource Manager template.

{
    "apiVersion": "2015-06-15",
    "type": "extensions",
    "name": "config-app",
    "location": "[resourceGroup().location]",
    "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
    "[variables('musicstoresqlName')]"
    ],
    "tags": {
    "displayName": "config-app"
    },
    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ]
    },
    "protectedSettings": {
        "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.windows.net')]"
    }
    }
}

Resource Manager テンプレートの作成の詳細については、Windows VM 拡張機能を使った Azure Resource Manager テンプレートの作成に関するページを参照してください。For more information on creating Resource Manager templates, see Authoring Azure Resource Manager templates with Windows VM extensions.

VM 拡張機能のデータの保護Secure VM extension data

VM 拡張機能の実行時には、資格情報、ストレージ アカウント名、ストレージ アカウント アクセス キーなどの機密情報を含めなければならない場合があります。When you run a VM extension, it may be necessary to include sensitive information such as credentials, storage account names, and storage account access keys. 多くの VM 拡張機能には、データを暗号化し、ターゲットの VM 内でのみ暗号化を解除する保護された構成が含まれます。Many VM extensions include a protected configuration that encrypts data and only decrypts it inside the target VM. 拡張機能には、それぞれ固有の保護された構成スキーマがあります。スキーマについては、拡張機能のドキュメントで詳しく説明されています。Each extension has a specific protected configuration schema, and each is detailed in extension-specific documentation.

次の例は、Windows 用カスタム スクリプト拡張機能のインスタンスを示しています。The following example shows an instance of the Custom Script extension for Windows. 実行するコマンドには、一連の資格情報が含まれています。The command to execute includes a set of credentials. この例では、実行するコマンドは暗号化されません。In this example, the command to execute is not encrypted:

{
    "apiVersion": "2015-06-15",
    "type": "extensions",
    "name": "config-app",
    "location": "[resourceGroup().location]",
    "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
    "[variables('musicstoresqlName')]"
    ],
    "tags": {
    "displayName": "config-app"
    },
    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ],
        "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.windows.net')]"
    }
    }
}

command to execute プロパティを protected 構成に移動すると、次の例に示すように実行文字列が保護されます。Moving the command to execute property to the protected configuration secures the execution string, as shown in the following example:

{
    "apiVersion": "2015-06-15",
    "type": "extensions",
    "name": "config-app",
    "location": "[resourceGroup().location]",
    "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
    "[variables('musicstoresqlName')]"
    ],
    "tags": {
    "displayName": "config-app"
    },
    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ]
    },
    "protectedSettings": {
        "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.windows.net')]"
    }
    }
}

エージェントと拡張機能を更新する方法How do agents and extensions get updated?

エージェントと拡張機能は、同じ更新メカニズムを共有します。The Agents and Extensions share the same update mechanism. 一部の更新プログラムでは、追加のファイアウォール規則を必要としません。Some updates do not require additional firewall rules.

更新プログラムが利用できる場合で、拡張機能への変更があり、次のような他の VM モデルが変更されるときは、更新プログラムは VM にのみインストールされます。When an update is available, it is only installed on the VM when there is a change to extensions, and other VM Model changes such as:

  • データ ディスクData disks
  • ExtensionsExtensions
  • ブート診断コンテナーBoot diagnostics container
  • ゲスト OS のシークレットGuest OS secrets
  • VM サイズVM size
  • ネットワーク プロファイルNetwork profile

別のリージョンの VM は異なるバージョン上に搭載できるので、パブリッシャーは別のタイミングで、更新プログラムをリージョンで使用できるようにします。Publishers make updates available to regions at different times, so it is possible you can have VMs in different regions on different versions.

VM にデプロイされる拡張機能の一覧Listing Extensions Deployed to a VM

$vm = Get-AzVM -ResourceGroupName "myResourceGroup" -VMName "myVM"
$vm.Extensions | select Publisher, VirtualMachineExtensionType, TypeHandlerVersion
Publisher             VirtualMachineExtensionType          TypeHandlerVersion
---------             ---------------------------          ------------------
Microsoft.Compute     CustomScriptExtension                1.9

エージェントの更新プログラムAgent updates

Windows ゲスト エージェントには拡張機能処理コードのみが含まれ、Windows プロビジョニング コードは分離されています。The Windows Guest Agent only contains Extension Handling code, the Windows Provisioning code is separate. Windows ゲスト エージェントは、アンインストールできます。You can uninstall the Windows Guest Agent. Window ゲスト エージェントの自動更新を無効にすることはできません。You cannot disable the automatic update of the Window Guest Agent.

拡張機能処理コードは、Azure ファブリックとの通信を担い、インストール、ステータスのレポート、個々の拡張機能の更新と削除などの VM 拡張機能の操作を処理します。The Extension Handling code is responsible for communicating with the Azure fabric, and handling the VM extensions operations such as installs, reporting status, updating the individual extensions, and removing them. 更新プログラムには、拡張機能処理コードに対するセキュリティ修正プログラム、バグ修正プログラム、および拡張機能が含まれます。Updates contain security fixes, bug fixes, and enhancements to the Extension Handling code.

実行しているバージョンを確認するには、インストールされている Windows ゲスト エージェントの検出に関するページを参照してください。To check what version you are running, see Detecting installed Windows Guest Agent.

拡張機能の更新プログラムExtension updates

拡張機能の更新プログラムが使用可能な場合、Windows ゲスト エージェントではこれをダウンロードして、拡張機能をアップグレードします。When an extension update is available, the Windows Guest Agent downloads and upgrades the extension. 拡張機能の自動更新プログラムは、"マイナー" または "修正プログラム" のどちらかです。Automatic extension updates are either Minor or Hotfix. 拡張機能の "マイナー" 更新プログラムは、拡張機能をプロビジョニングするときに、選択または除外できます。You can opt in or opt out of extensions Minor updates when you provision the extension. 次の例では、autoUpgradeMinorVersion": true,' を使って、Resource Manager テンプレートのマイナー バージョンを自動でアップグレードする方法を示しています。The following example shows how to automatically upgrade minor versions in a Resource Manager template with autoUpgradeMinorVersion": true,':

    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ]
    },

最新のマイナー リリースのバグ修正プログラムを取得するには、拡張機能のデプロイで常に自動更新を選択することを強くお勧めします。To get the latest minor release bug fixes, it is highly recommended that you always select auto update in your extension deployments. セキュリティまたは主要なバグの修正を提供する修正プログラムは、除外できません。Hotfix updates that carry security or key bug fixes cannot be opted out.

拡張機能の更新プログラムを識別する方法How to identify extension updates

拡張機能が autoUpgradeMinorVersion を使って VM 上に設定されているかどうかを識別するIdentifying if the extension is set with autoUpgradeMinorVersion on a VM

拡張機能が 'autoUpgradeMinorVersion' を使ってプロビジョニングされたかどうかは、VM モデルから判断できます。You can see from the VM model if the extension was provisioned with 'autoUpgradeMinorVersion'. 確認するには、Get-AzVm を使用し、リソース グループと VM の名前を次のように指定します。To check, use Get-AzVm and provide the resource group and VM name as follows:

 $vm = Get-AzVm -ResourceGroupName "myResourceGroup" -VMName "myVM"
 $vm.Extensions

次の例の出力は、autoUpgradeMinorVersiontrue に設定されていることを示しています。The following example output shows that autoUpgradeMinorVersion is set to true:

ForceUpdateTag              :
Publisher                   : Microsoft.Compute
VirtualMachineExtensionType : CustomScriptExtension
TypeHandlerVersion          : 1.9
AutoUpgradeMinorVersion     : True

autoUpgradeMinorVersion が行われたタイミングを識別するIdentifying when an autoUpgradeMinorVersion occurred

拡張機能への更新がいつ行われたかを判断するには、C:\WindowsAzure\Logs\WaAppAgent.log で VM 上のエージェント ログを確認します。To see when an update to the extension occurred, review the agent logs on the VM at C:\WindowsAzure\Logs\WaAppAgent.log

次の例では、VM に "Microsoft.Compute.CustomScriptExtension 1.8" をインストールしました。In the following example, the VM had Microsoft.Compute.CustomScriptExtension 1.8 installed. 修正プログラムはバージョン "1.9" で利用できました。A hotfix was available to version 1.9:

[INFO]  Getting plugin locations for plugin 'Microsoft.Compute.CustomScriptExtension'. Current Version: '1.8', Requested Version: '1.9'
[INFO]  Auto-Upgrade mode. Highest public version for plugin 'Microsoft.Compute.CustomScriptExtension' with requested version: '1.9', is: '1.9'

エージェントのアクセス許可Agent permissions

タスクを実行するには、エージェントが "ローカル システム" として実行される必要があります。To perform its tasks, the agent needs to run as Local System.

VM 拡張機能のトラブルシューティングTroubleshoot VM extensions

各 VM 拡張機能には、固有のトラブルシューティング手順が存在する場合があります。Each VM extension may have troubleshooting steps specific to the extension. たとえば、カスタム スクリプト拡張機能を使用する場合、スクリプト実行の詳細は、拡張機能が実行された VM のローカルに保存されます。For example, when you use the Custom Script extension, script execution details can be found locally on the VM where the extension was run. 拡張機能に固有のトラブルシューティング手順は、拡張機能のドキュメントで詳しく説明されています。Any extension-specific troubleshooting steps are detailed in extension-specific documentation.

次のトラブルシューティング手順は、すべての VM 張機能に適用されます。The following troubleshooting steps apply to all VM extensions.

  1. Windows ゲスト エージェント ログをチェックするには、C:\WindowsAzure\Logs\WaAppAgent.txt で拡張機能がプロビジョニングされたときのアクティビティを確認します。To check the Windows Guest Agent Log, look at the activity when your extension was being provisioned in C:\WindowsAzure\Logs\WaAppAgent.txt

  2. C:\WindowsAzure\Logs\Plugins<extensionName> で、実際の拡張機能ログの詳細を確認します。Check the actual extension logs for more details in C:\WindowsAzure\Logs\Plugins<extensionName>

  3. エラーコードや既知の問題などについて、拡張機能固有のドキュメントのトラブルシューティングのセクションを確認します。Check extension specific documentation troubleshooting sections for error codes, known issues etc.

  4. システム ログを確認します。Look at the system logs. 排他的なパッケージ マネージャーのアクセスを必要とする別のアプリケーションのインストールが長時間実行されている場合など、拡張機能に干渉する可能性のある他の操作をチェックします。Check for other operations that may have interfered with the extension, such as a long running installation of another application that required exclusive package manager access.

拡張機能のエラーの一般的な理由Common reasons for extension failures

  1. 拡張機能の実行には 20 分かかります (例外は CustomScript 拡張機能、Chef、および DSC であり、これらは 90 分かかります)。Extensions have 20 mins to run (exceptions are the CustomScript extensions, Chef, and DSC that have 90 mins). デプロイにかかる時間がこれを超過する場合、タイムアウトとしてマークされます。If your deployment exceeds this time, it is marked as a timeout. これは、拡張機能がプロビジョニングを試行しているときの、VM のリソース低減や他の VM 構成/起動タスクによる大量のリソース消費に起因する可能性があります。The cause of this can be due to low resource VMs, other VM configurations/start up tasks consuming high amounts of resource whilst the extension is trying to provision.

  2. 最小限の前提条件が満たされていない。Minimum prerequisites not met. 一部の拡張機能では、HPC イメージなど、VM SKU 上に依存関係があります。Some extensions have dependencies on VM SKUs, such as HPC images. 拡張機能は、Azure Storage やパブリック サービスとの通信など、特定のネットワーク アクセス要件を必要とする場合があります。Extensions may require certain networking access requirements, such as communicating to Azure Storage or public services. その他の例としては、パッケージ リポジトリへのアクセス、ディスク領域の不足、セキュリティ上の制限事項が考えられます。Other examples could be access to package repositories, running out of disk space, or security restrictions.

  3. 排他的なパッケージ マネージャーのアクセス。Exclusive package manager access. 一部のケースでは、長時間にわたる VM 構成の実行が拡張機能のインストールと競合し、どちらもパッケージ マネージャーへの排他的なアクセスを必要とする状況になる場合があります。In some cases, you may encounter a long running VM configuration and extension installation conflicting, where they both need exclusive access to the package manager.

拡張機能の状態表示View extension status

VM に対して VM 拡張機能が実行されたら、Get-AzVM を使用して拡張機能の状態を返します。After a VM extension has been run against a VM, use Get-AzVM to return extension status. Substatuses[0] は、拡張機能のプロビジョニングに成功したことを示しており、VM には正常にデプロイされたが VM 内での拡張機能の実行はエラーになったことが Substatuses[1] でわかります。Substatuses[0] shows that the extension provisioning succeeded, meaning that it successful deployed to the VM, but the execution of the extension inside the VM failed, Substatuses[1].

Get-AzVM -ResourceGroupName "myResourceGroup" -VMName "myVM" -Status

出力は次の例のようになります。The output is similar to the following example output:

Extensions[0]           :
  Name                  : CustomScriptExtension
  Type                  : Microsoft.Compute.CustomScriptExtension
  TypeHandlerVersion    : 1.9
  Substatuses[0]        :
    Code                : ComponentStatus/StdOut/succeeded
    Level               : Info
    DisplayStatus       : Provisioning succeeded
    Message             : Windows PowerShell \nCopyright (C) Microsoft Corporation. All rights reserved.\n
  Substatuses[1]        :
    Code                : ComponentStatus/StdErr/succeeded
    Level               : Info
    DisplayStatus       : Provisioning succeeded
    Message             : The argument 'cseTest%20Scriptparam1.ps1' to the -File parameter does not exist. Provide the path to an existing '.ps1' file as an argument to the

-File parameter.
  Statuses[0]           :
    Code                : ProvisioningState/failed/-196608
    Level               : Error
    DisplayStatus       : Provisioning failed
    Message             : Finished executing command

拡張機能の実行の状態は、Azure Portal で確認することもできます。Extension execution status can also be found in the Azure portal. 拡張機能の状態を表示するには、VM を選択し、 [拡張機能] を選択して、目的の拡張機能を選択します。To view the status of an extension, select the VM, choose Extensions, then select the desired extension.

VM 拡張機能の再実行Rerun VM extensions

VM 拡張機能の再実行が必要な場合があります。There may be cases in which a VM extension needs to be rerun. 拡張機能を再実行するには、その拡張機能を削除し、その後任意の実行方法で拡張機能を再実行します。You can rerun an extension by removing it, and then rerunning the extension with an execution method of your choice. 拡張機能を削除するには、Remove-AzVMExtension を次のように使用します。To remove an extension, use Remove-AzVMExtension as follows:

Remove-AzVMExtension -ResourceGroupName "myResourceGroup" -VMName "myVM" -Name "myExtensionName"

また、次の手順を使用して、Azure Portal で拡張機能を削除することもできます。You can also remove an extension in the Azure portal as follows:

  1. VM を選択します。Select a VM.
  2. [拡張機能] を選択します。Choose Extensions.
  3. 目的の拡張機能を選択します。Select the desired extension.
  4. [アンインストール] を選択します。Choose Uninstall.

一般的な VM 拡張機能のリファレンスCommon VM extensions reference

拡張機能の名前Extension name 説明Description 詳細情報More information
Windows でのカスタムのスクリプト拡張機能Custom Script Extension for Windows Azure 仮想マシンに対してスクリプトを実行しますRun scripts against an Azure virtual machine Windows でのカスタムのスクリプト拡張機能Custom Script Extension for Windows
Windows での DSC 拡張機能DSC Extension for Windows PowerShell DSC (必要な状態の構成) 拡張機能PowerShell DSC (Desired State Configuration) Extension Windows での DSC 拡張機能DSC Extension for Windows
Azure Diagnostics 拡張機能Azure Diagnostics Extension Azure Diagnostics を管理しますManage Azure Diagnostics Azure Diagnostics 拡張機能Azure Diagnostics Extension
Azure VM アクセス拡張機能Azure VM Access Extension ユーザーと資格情報を管理しますManage users and credentials Linux 用 VM アクセス拡張機能VM Access Extension for Linux

次の手順Next steps

VM 拡張機能の詳細については、「Azure 仮想マシンの拡張機能と機能の概要」をご覧ください。For more information about VM extensions, see Azure virtual machine extensions and features overview.