Recursos e extensões da máquina virtual para WindowsVirtual machine extensions and features for Windows

As extensões da máquina virtual (VM) do Azure são pequenos aplicativos que fornecem tarefas de configuração e automação pós-implantação nas VMs do Azure.Azure virtual machine (VM) extensions are small applications that provide post-deployment configuration and automation tasks on Azure VMs. Por exemplo, se uma máquina virtual exigir instalação de software, proteção antivírus ou executar um script dentro dela, uma extensão de VM poderá ser usada.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. As extensões da VM do Azure podem ser executadas com a CLI do Azure, o PowerShell, modelos do Azure Resource Manager e o portal do Azure.Azure VM extensions can be run with the Azure CLI, PowerShell, Azure Resource Manager templates, and the Azure portal. As extensões podem ser agrupadas com uma nova implantação de VM ou executar qualquer sistema existente.Extensions can be bundled with a new VM deployment, or run against any existing system.

Este artigo fornece uma visão geral das extensões da VM, pré-requisitos para utilização das extensões da VM do Azure e diretrizes sobre como detectar, gerenciar e remover as extensões da 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. Este artigo fornece informações generalizadas, pois há muitas extensões de VM disponíveis, cada uma delas tem uma configuração possivelmente exclusiva.This article provides generalized information because many VM extensions are available, each with a potentially unique configuration. Encontre detalhes específicos sobre cada extensão na documentação individual.Extension-specific details can be found in each document specific to the individual extension.

Casos de uso e exemplosUse cases and samples

Há várias extensões de VM do Azure diferentes disponíveis, cada uma com um caso de uso específico.Several different Azure VM extensions are available, each with a specific use case. Alguns exemplos incluem:Some examples include:

Além de extensões específicas ao processo, uma extensão de Script Personalizado está disponível para máquinas virtuais Windows e Linux.In addition to process-specific extensions, a Custom Script extension is available for both Windows and Linux virtual machines. A extensão de Script personalizado para Windows permite a execução de qualquer script do PowerShell em uma VM.The Custom Script extension for Windows allows any PowerShell script to be run on a VM. Scripts personalizados são úteis para a criação de implantações do Azure que exigem uma configuração que vai além da capacidade das ferramentas nativas do Azure.Custom scripts are useful for designing Azure deployments that require configuration beyond what native Azure tooling can provide. Para saber mais, veja Extensão de Script personalizado de VM do Windows.For more information, see Windows VM Custom Script extension.

Pré-requisitosPrerequisites

Para lidar com a extensão na VM, você precisa ter o agente do Windows Azure instalado.To handle the extension on the VM, you need the Azure Windows Agent installed. Algumas extensões individuais têm pré-requisitos, como acesso a recursos ou dependências.Some individual extensions have prerequisites, such as access to resources or dependencies.

Agente de VM do AzureAzure VM agent

O agente de VM do Azure gerencia a interação entre uma VM do Azure e o controlador de malha do Azure.The Azure VM agent manages interactions between an Azure VM and the Azure fabric controller. O agente de VM é responsável por muitos aspectos funcionais de implantação e gerenciamento de VMs do Azure, incluindo a execução de extensões da VM.The VM agent is responsible for many functional aspects of deploying and managing Azure VMs, including running VM extensions. O agente de VM do Azure é pré-instalado em imagens do Microsoft Azure Marketplace e pode ser instalado manualmente em sistemas operacionais com suporte.The Azure VM agent is preinstalled on Azure Marketplace images, and can be installed manually on supported operating systems. O agente de VM do Azure para Windows é conhecido como o agente Convidado do Windows.The Azure VM Agent for Windows is known as the Windows Guest agent.

Para obter informações sobre sistemas operacionais e instruções de instalação com suporte, consulte agente de máquina virtual do Azure.For information on supported operating systems and installation instructions, see Azure virtual machine agent.

Versões do agente com suporteSupported agent versions

Para fornecer a melhor experiência possível, há versões mínimas do agente.In order to provide the best possible experience, there are minimum versions of the agent. Para obter mais informações, consulte este artigo.For more information, see this article.

Sistemas operacionais com suporteSupported OSes

O agente Convidado do Windows é executado em vários sistemas operacionais. No entanto, a estrutura de extensões tem um limite para os sistemas operacionais com extensões.The Windows Guest agent runs on multiple OSes, however the extensions framework has a limit for the OSes that extensions. Para obter mais informações, consulte este artigo.For more information, see this article.

Algumas extensões não têm suporte em todos os sistemas de operacionais e podem emitir Código de Erro 51, 'SO sem suporte'.Some extensions are not supported across all OSes and may emit Error Code 51, 'Unsupported OS'. Consulte a documentação da extensão individual sobre a capacidade de suporte.Check the individual extension documentation for supportability.

Acesso de redeNetwork access

Os pacotes de extensão são baixados do repositório de extensão do Armazenamento do Microsoft Azure, e os carregamentos de status de extensão são postados no Armazenamento do Microsoft Azure.Extension packages are downloaded from the Azure Storage extension repository, and extension status uploads are posted to Azure Storage. Se você usar a versão com suporte dos agentes, não será necessário permitir o acesso ao armazenamento do Azure na região da VM, pois pode usar o agente para redirecionar a comunicação para o controlador de malha do Azure para comunicações do agente (recurso HostGAPlugin por meio do canal privilegiado em 168.63.129.16de IP privado).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 (HostGAPlugin feature through the privileged channel on private IP 168.63.129.16). Se você estiver usando uma versão sem suporte do agente, será necessário permitir o acesso de saída no armazenamento do Microsoft Azure nessa região por meio da VM.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.

Importante

Se você tiver bloqueado o acesso ao 168.63.129.16 usando o firewall convidado ou com um proxy, as extensões falharão independentemente das anteriores.If you have blocked access to 168.63.129.16 using the guest firewall or with a proxy, extensions fail irrespective of the above. As portas 80, 443 e 32526 são necessárias.Ports 80, 443, and 32526 are required.

Os agentes só podem ser usados para baixar os pacotes de extensão e o status do relatório.Agents can only be used to download extension packages and reporting status. Por exemplo, se uma instalação da extensão precisar baixar um script do GitHub (Script Personalizado) ou precisar ter acesso ao Armazenamento do Microsoft Azure (Backup do Azure), então outras portas de firewall/Grupo de Segurança de Rede precisarão ser abertas.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. Diferentes extensões têm requisitos diferentes, já que são aplicativos por si só.Different extensions have different requirements, since they are applications in their own right. Para extensões que exigem acesso ao armazenamento ou Azure Active Directory do Azure, você pode permitir o acesso usando as marcas do serviço NSG do Azure para armazenamento ou AzureActiveDirectory.For extensions that require access to Azure Storage or Azure Active Directory, you can allow access using Azure NSG Service Tags to Storage or AzureActiveDirectory.

O agente convidado do Windows não tem suporte de servidor proxy para redirecionar solicitações de tráfego do agente por meio do, o que significa que o agente convidado do Windows dependerá do seu proxy personalizado (se você tiver um) para acessar recursos na Internet ou no host por meio de 168.63.129.16 IP.The Windows Guest Agent does not have proxy server support for you to redirect agent traffic requests through, which means that the Windows Guest Agent will rely on your custom proxy (if you have one) to access resources on the internet or on the Host through IP 168.63.129.16.

Descobrir extensões de VMDiscover VM extensions

Muitas extensões de VM diferentes estão disponíveis para uso com as VMs do Azure.Many different VM extensions are available for use with Azure VMs. Para ver uma lista completa, use Get-AzVMExtensionImage.To see a complete list, use Get-AzVMExtensionImage. O exemplo a seguir lista todas as extensões disponíveis no local WestUS:The following example lists all available extensions in the WestUS location:

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

Executar extensões de VMRun VM extensions

As extensões da VM do Azure podem ser executadas em VMs existentes, o que é útil quando você precisa fazer alterações de configuração ou recuperar a conectividade em uma VM já implantada.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. As extensões de VM também podem ser agrupadas com implantações de modelo do Azure Resource Manager.VM extensions can also be bundled with Azure Resource Manager template deployments. Ao usar extensões com modelos do Resource Manager, as VMs do Azure podem ser implantadas e configuradas sem intervenção pós-implantação.By using extensions with Resource Manager templates, Azure VMs can be deployed and configured without post-deployment intervention.

Os métodos a seguir podem ser usados para executar uma extensão em uma VM existente.The following methods can be used to run an extension against an existing VM.

PowerShellPowerShell

Há vários comandos do PowerShell para a execução de extensões individuais.Several PowerShell commands exist for running individual extensions. Para ver uma lista, use Get-Command e filtre pela Extensão:To see a list, use Get-Command and filter on Extension:

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

O resultado é semelhante ao seguinte: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

O exemplo a seguir usa a extensão de Script personalizado para baixar um script de um repositório do GitHub para a máquina virtual de destino e, em seguida, executa o script.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. Para saber mais sobre como usar a extensão de Script personalizado, veja Visão geral da extensão de Script personalizado.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"

No seguinte exemplo, a extensão de acesso à VM é usada para redefinir a senha administrativa de uma VM Windows para uma senha temporária.In the following example, the VM Access extension is used to reset the administrative password of a Windows VM to a temporary password. Para saber mais sobre a extensão de acesso à VM, veja Serviço de redefinição de área de trabalho remota em uma VM do Windows.For more information on the VM Access extension, see Reset Remote Desktop service in a Windows VM. Depois de ter executado isso, você deverá redefinir a senha no primeiro logon: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"

O comando Set-AzVMExtension pode ser usado para iniciar qualquer extensão de VM.The Set-AzVMExtension command can be used to start any VM extension. Para saber mais, veja a referência de Set-AzVMExtension.For more information, see the Set-AzVMExtension reference.

Portal do AzureAzure portal

É possível aplicar extensões de VM a uma VM existente por meio do portal do Azure.VM extensions can be applied to an existing VM through the Azure portal. Selecione a VM no portal, escolha Extensões e depois selecione Adicionar.Select the VM in the portal, choose Extensions, then select Add. Escolha a extensão desejada na lista de extensões disponíveis e siga as instruções no assistente.Choose the extension you want from the list of available extensions and follow the instructions in the wizard.

O exemplo a seguir mostra a instalação da extensão Microsoft Antimalware no portal do Azure:The following example shows the installation of the Microsoft Antimalware extension from the Azure portal:

Instalar a extensão de antimalware

Modelos do Azure Resource ManagerAzure Resource Manager templates

É possível adicionar extensões de VM a um modelo do Azure Resource Manager e executá-las com a implantação do modelo.VM extensions can be added to an Azure Resource Manager template and executed with the deployment of the template. Ao implantar uma extensão com um modelo, você pode criar implantações do Azure totalmente configuradas.When you deploy an extension with a template, you can create fully configured Azure deployments. Por exemplo, o JSON a seguir é obtido de um modelo do Resource Manager que implanta um conjunto de VMs com balanceamento de carga e um banco de dados SQL do Azure e instala um aplicativo .NET Core em cada VM.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. A extensão da VM se encarrega da instalação do software.The VM extension takes care of the software installation.

Para saber mais, confira o Modelo completo do 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')]"
    }
    }
}

Para obter mais informações sobre a criação de modelos do Resource Manager, consulte Criando modelos do Azure Resource Manager com extensões da VM do Windows.For more information on creating Resource Manager templates, see Authoring Azure Resource Manager templates with Windows VM extensions.

Proteger dados de extensão da VMSecure VM extension data

Ao executar uma extensão de VM, talvez seja necessário incluir informações confidenciais, como credenciais, nomes de conta de armazenamento e chaves de acesso da conta de armazenamento.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. Muitas extensões de VM incluem uma configuração protegida que criptografa dados e os descriptografa somente dentro da VM de destino.Many VM extensions include a protected configuration that encrypts data and only decrypts it inside the target VM. Cada extensão tem um esquema específico de configuração protegida, e cada um é detalhado na documentação específica à extensão.Each extension has a specific protected configuration schema, and each is detailed in extension-specific documentation.

O exemplo a seguir mostra uma instância da extensão Script personalizado para Windows.The following example shows an instance of the Custom Script extension for Windows. O comando a ser executado inclui um conjunto de credenciais.The command to execute includes a set of credentials. Neste exemplo, o comando a ser executado não é criptografado: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')]"
    }
    }
}

A movimentação da propriedade comando para execução para a configuração protegida protege a cadeia de caracteres de execução, conforme mostrado no exemplo a seguir: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')]"
    }
    }
}

Em uma VM IaaS do Azure que usa extensões, no console certificados, você pode ver certificados que têm o assunto gerador de certificado do Microsoft Azure CRP.On an Azure IaaS VM that uses extensions, in the certificates console, you might see certificates that have the subject Windows Azure CRP Certificate Generator. Em uma VM RDFE clássica, esses certificados têm o nome da entidade Gerenciamento de serviços do Windows Azure para extensões.On a Classic RDFE VM, these certificates have the subject name Windows Azure Service Management for Extensions.

Esses certificados protegem a comunicação entre a VM e seu host durante a transferência de configurações protegidas (senha, outras credenciais) usadas pelas extensões.These certificates secure the communication between the VM and its host during the transfer of protected settings (password, other credentials) used by extensions. Os certificados são criados pelo controlador de malha do Azure e passados para o agente de VM.The certificates are built by the Azure fabric controller and passed to the VM Agent. Se você parar e iniciar a VM todos os dias, um novo certificado poderá ser criado pelo controlador de malha.If you stop and start the VM every day, a new certificate might be created by the fabric controller. O certificado será armazenado no repositório de certificados pessoais do computador.The certificate is stored in the computer's Personal certificates store. Esses certificados podem ser excluídos.These certificates can be deleted. O agente de VM recria certificados se necessário.The VM Agent re-creates certificates if needed.

Como agentes e extensões são atualizados?How do agents and extensions get updated?

Os Agentes e as Extensões compartilham o mesmo mecanismo de atualização.The Agents and Extensions share the same update mechanism. Algumas atualizações não exigem regras de firewall adicionais.Some updates do not require additional firewall rules.

Quando uma atualização estiver disponível, ela só será instalada na VM quando houver uma alteração nas extensões e outras alterações de Modelo de VM como: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:

  • Discos de dadosData disks
  • ExtensõesExtensions
  • Contêiner de diagnóstico de inicializaçãoBoot diagnostics container
  • Segredos do sistema operacional convidadoGuest OS secrets
  • Tamanho da VMVM size
  • Perfil de redeNetwork profile

Os editores tornam atualizações disponíveis para regiões em momentos diferentes, então é possível ter VMs em regiões e versões diferentes.Publishers make updates available to regions at different times, so it is possible you can have VMs in different regions on different versions.

Listando extensões implantadas em uma VMListing 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

Atualizações de agentesAgent updates

O Agente de Convidado do Windows contém somente o código de Tratamento de Extensão. O código de Provisionamento do Windows é separado.The Windows Guest Agent only contains Extension Handling code, the Windows Provisioning code is separate. Você pode desinstalar o Agente de Convidado do Windows.You can uninstall the Windows Guest Agent. Não é possível desabilitar a atualização automática do agente de Convidado do Windows.You cannot disable the automatic update of the Window Guest Agent.

O código de Tratamento de Extensão é responsável por se comunicar com a malha do Azure e manipular as operações de extensões da VM, como instalações, relatando status, atualizando as extensões individuais e removendo-as.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. As atualizações contêm correções de segurança, correções de bug e aprimoramentos para o código de Tratamento de Extensão.Updates contain security fixes, bug fixes, and enhancements to the Extension Handling code.

Para verificar qual versão você está executando, consulte Detectando o Agente de Convidado do Windows instalado.To check what version you are running, see Detecting installed Windows Guest Agent.

Atualizações de extensãoExtension updates

Quando uma atualização da extensão estiver disponível, o Agente de Convidado do Windows baixará e atualizará a extensão.When an extension update is available, the Windows Guest Agent downloads and upgrades the extension. Atualizações automáticas de extensão são Secundárias ou Hotfix.Automatic extension updates are either Minor or Hotfix. Você pode aceitar ou recusar atualizações de extensões Secundárias ao provisionar a extensão.You can opt in or opt out of extensions Minor updates when you provision the extension. O exemplo a seguir mostra como atualizar automaticamente as versões secundárias em um modelo do Resource Manager com autoUpgradeMinorVersion": true,':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"
        ]
    },

Para obter as correções de bug de versão secundária mais recentes, é altamente recomendável que você selecione sempre a atualização automática em suas implantações de extensão.To get the latest minor release bug fixes, it is highly recommended that you always select auto update in your extension deployments. As atualizações de hotfix que realizam correções de bug essenciais ou de segurança não podem ser recusadas.Hotfix updates that carry security or key bug fixes cannot be opted out.

Como identificar as atualizações de extensãoHow to identify extension updates

Identificar se a extensão foi definida com autoUpgradeMinorVersion em uma VMIdentifying if the extension is set with autoUpgradeMinorVersion on a VM

Você pode ver no modelo da VM se a extensão foi provisionada com 'autoUpgradeMinorVersion'.You can see from the VM model if the extension was provisioned with 'autoUpgradeMinorVersion'. Para verificar, use Get-AzVm e forneça o grupo de recursos e o nome da VM da seguinte maneira:To check, use Get-AzVm and provide the resource group and VM name as follows:

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

O seguinte exemplo de saída mostra que autoUpgradeMinorVersion foi definido como true:The following example output shows that autoUpgradeMinorVersion is set to true:

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

Identificar quando ocorreu uma autoUpgradeMinorVersionIdentifying when an autoUpgradeMinorVersion occurred

Para ver quando ocorreu uma atualização da extensão, examine os registros de agente na VM em C:\WindowsAzure\Logs\WaAppAgent.logTo see when an update to the extension occurred, review the agent logs on the VM at C:\WindowsAzure\Logs\WaAppAgent.log

No exemplo a seguir, Microsoft.Compute.CustomScriptExtension 1.8 estava instalado na VM.In the following example, the VM had Microsoft.Compute.CustomScriptExtension 1.8 installed. Um hotfix estava disponível para a versão 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'

Permissões de agenteAgent permissions

Para executar suas tarefas, o agente precisa executar como Sistema Local.To perform its tasks, the agent needs to run as Local System.

Solucionar problemas de extensões de VMTroubleshoot VM extensions

Cada extensão de VM pode ter etapas de solução de problemas específicas à extensão.Each VM extension may have troubleshooting steps specific to the extension. Por exemplo, ao usar a extensão Script Personalizado, detalhes de execução do script poderão ser encontrados localmente na VM na qual a extensão foi executada.For example, when you use the Custom Script extension, script execution details can be found locally on the VM where the extension was run. As etapas de solução de problemas específicas à extensão são detalhadas na documentação associada.Any extension-specific troubleshooting steps are detailed in extension-specific documentation.

As seguintes etapas de solução de problemas aplicam-se a todas as extensões da VM.The following troubleshooting steps apply to all VM extensions.

  1. Para verificar o log do agente convidado do Windows, examine a atividade quando sua extensão estava sendo provisionada no C:\WindowsAzure\Logs\WaAppAgent.logTo check the Windows Guest Agent Log, look at the activity when your extension was being provisioned in C:\WindowsAzure\Logs\WaAppAgent.log

  2. Verifique os logs de extensão reais para obter mais detalhes em *C:\WindowsAzure\Logs\Plugins <extensionName> *Check the actual extension logs for more details in C:\WindowsAzure\Logs\Plugins<extensionName>

  3. Verifique as seções de solução de problemas da documentação específica da extensão para códigos de erro, problemas conhecidos etc.Check extension specific documentation troubleshooting sections for error codes, known issues etc.

  4. Examine os logs do sistema.Look at the system logs. Verifique se há outras operações que podem ter interferido na extensão, como uma instalação de longa execução de outro aplicativo que exigia acesso exclusivo ao gerenciador de pacotes.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.

Motivos comuns para falhas na extensãoCommon reasons for extension failures

  1. As extensões têm 20 minutos para serem executadas (exceções são as extensões de CustomScript, Chef e DSC que têm 90 minutos).Extensions have 20 mins to run (exceptions are the CustomScript extensions, Chef, and DSC that have 90 mins). Se a implantação exceder esse tempo, será marcada como um tempo limite.If your deployment exceeds this time, it is marked as a timeout. Isso pode ocorrer devido a poucas VMs de recursos, outras configurações da VM/tarefas de inicialização consumindo grande quantidade de recursos durante a extensão que está tentando provisionar.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. Pré-requisitos mínimos não atendidos.Minimum prerequisites not met. Algumas extensões têm dependências em SKUs da VM, como imagens HPC.Some extensions have dependencies on VM SKUs, such as HPC images. As extensões podem exigir certos requisitos de acesso à rede, como comunicação com o Armazenamento do Microsoft Azure ou serviços públicos.Extensions may require certain networking access requirements, such as communicating to Azure Storage or public services. Outros exemplos podem ser o acesso a repositórios de pacote, ficando sem espaço em disco, ou restrições de segurança.Other examples could be access to package repositories, running out of disk space, or security restrictions.

  3. Acesso exclusivo ao gerenciador de pacotes.Exclusive package manager access. Em alguns casos, você pode encontrar uma configuração da VM de longa execução e uma instalação da extensão em conflito, nas quais ambas precisam de acesso exclusivo ao gerenciador de pacotes.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.

Exibir o status da extensãoView extension status

Depois que uma extensão de VM for executada em uma VM, use Get-AzVM para retornar o status da extensão.After a VM extension has been run against a VM, use Get-AzVM to return extension status. O Substatus [0] mostra que o provisionamento de extensão foi bem-sucedido, o que significa que foi implantado com sucesso na VM, mas que houve falha na execução da extensão dentro da VM, Substatus [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

A saída é semelhante ao seguinte exemplo de saída: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

O status de execução da extensão também pode ser encontrado no Portal do Azure.Extension execution status can also be found in the Azure portal. Para exibir o status de uma extensão, selecione a VM, escolha Extensões e selecione a extensão desejada.To view the status of an extension, select the VM, choose Extensions, then select the desired extension.

Executar extensões de VM novamenteRerun VM extensions

Pode haver casos nos quais uma extensão da VM precisa ser executada novamente.There may be cases in which a VM extension needs to be rerun. Você pode executar novamente uma extensão removendo-a e, em seguida, executando novamente a extensão com um método de execução de sua escolha.You can rerun an extension by removing it, and then rerunning the extension with an execution method of your choice. Para remover uma extensão, use Remove-AzVMExtension da seguinte maneira:To remove an extension, use Remove-AzVMExtension as follows:

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

Você também pode remover uma extensão no portal do Azure da seguinte maneira:You can also remove an extension in the Azure portal as follows:

  1. Selecione uma VM.Select a VM.
  2. Escolha Extensões.Choose Extensions.
  3. Selecione a extensão desejada.Select the desired extension.
  4. Escolha Desinstalar.Choose Uninstall.

Referência a extensões de VM comunsCommon VM extensions reference

Nome da extensãoExtension name DescriçãoDescription Mais informaçõesMore information
Extensão de script personalizado para o WindowsCustom Script Extension for Windows Executar scripts em uma máquina virtual do AzureRun scripts against an Azure virtual machine Extensão de script personalizado para o WindowsCustom Script Extension for Windows
Extensão de DSC para o WindowsDSC Extension for Windows Extensão PowerShell DSC (Configuração de Estado Desejado)PowerShell DSC (Desired State Configuration) Extension Extensão de DSC para o WindowsDSC Extension for Windows
Extensão de Diagnóstico do AzureAzure Diagnostics Extension Gerenciar Diagnóstico do AzureManage Azure Diagnostics Extensão de Diagnóstico do AzureAzure Diagnostics Extension
Extensão de acesso à VM do AzureAzure VM Access Extension Gerenciar usuários e credenciaisManage users and credentials Extensão de acesso à VM para LinuxVM Access Extension for Linux

Próximas etapasNext steps

Para obter mais informações sobre extensões de VM, consulte Visão geral de recursos e extensões de máquina virtual do Azure.For more information about VM extensions, see Azure virtual machine extensions and features overview.