Extensions et fonctionnalités de machine virtuelle pour Windows

Les extensions de machine virtuelle Azure sont de petites applications permettant d’exécuter des tâches de configuration et d’automatisation post-déploiement sur des machines virtuelles Azure. Par exemple, si une machine virtuelle nécessite l’installation d’un logiciel, une protection antivirus ou la capacité d’exécuter un script en son sein, vous pouvez utiliser une extension de machine virtuelle.

Vous pouvez exécuter des extensions de machine virtuelle Azure à l’aide de l’interface de ligne de commande Azure, de PowerShell, de modèles Azure Resource Manager (ARM) et du portail Azure. Vous pouvez regrouper les extensions avec un nouveau déploiement de machine virtuelle ou les exécuter sur tout système existant.

Cet article offre une vue d’ensemble des extensions de machine virtuelle Azure, liste les prérequis et fournit des conseils sur la détection, la gestion et la suppression d’extensions. Cet article fournit des informations générales, car de nombreuses extensions de machine virtuelle sont disponibles. Chaque extension a une configuration potentiellement unique et sa propre documentation.

Cas d’utilisation et exemples

Chaque extension de machine virtuelle Azure a un cas d’usage spécifique. Voici quelques exemples :

En plus des extensions propres à des processus, une extension de script personnalisé est disponible pour les machines virtuelles Windows et Linux. L’extension de script personnalisé pour Windows permet d’exécuter n’importe quel script PowerShell sur une machine virtuelle. Les scripts personnalisés s’avèrent utile pour concevoir des déploiements Azure qui nécessitent une configuration plus avancée que celle fournie par les outils Azure natifs.

Prérequis

Passez en revue les prérequis suivants pour utiliser les extensions de machine virtuelle Azure.

Agent Azure VM

Pour gérer les extensions sur la machine virtuelle, vous devez installer l’agent de machine virtuelle Azure pour Windows. Cet agent est également appelé « agent VM Azure » ou « agent invité Windows ». Quand vous vous préparez à installer des extensions, gardez à l’esprit que certaines extensions ont des prérequis individuels comme l’accès aux ressources ou aux dépendances.

L’agent de machine virtuelle Azure gère les interactions entre une machine virtuelle Azure et le contrôleur de structure Microsoft Azure. L’agent est responsable de nombreux aspects fonctionnels liés au déploiement et à la gestion des machines virtuelles Azure, notamment l’exécution des extensions de machine virtuelle.

L’agent de machine virtuelle Azure est préinstallé sur les images de Place de marché Azure. L’agent peut également être installé manuellement sur les systèmes d’exploitation pris en charge.

L’agent fonctionne sur plusieurs systèmes d’exploitation. Cependant, l’infrastructure des extensions a une limite concernant les systèmes d’exploitation que les extensions utilisent. Certaines extensions ne sont pas prises en charge par tous les systèmes d’exploitation et peuvent générer le code d’erreur 51 (« Système d’exploitation non pris en charge »). Pour plus d’informations sur la capacité de prise en charge, consultez la documentation de l’extension concernée.

Accès réseau

Les packages d’extension sont téléchargés depuis le référentiel d’extensions de Stockage Azure. Les chargements d’état des extensions sont publiés dans Stockage Azure.

Si vous utilisez une version prise en charge de l’agent de machine virtuelle Azure, vous n’avez pas besoin d’autoriser l’accès à Stockage Azure dans la région de la machine virtuelle. Vous pouvez utiliser l’agent de machine virtuelle pour rediriger la communication vers le contrôleur de structure fabric Azure pour les communications de l’agent (par le biais de la fonctionnalité HostGAPlugin via le canal privilégié sur l’adresse IP privée 168.63.129.16). Si vous utilisez une version non prise en charge de l’agent de machine virtuelle, vous devez autoriser l’accès sortant vers Stockage Azure dans cette région à partir de la machine virtuelle.

Important

Si vous bloquez l’accès à l’adresse IP 168.63.129.16 à l’aide du pare-feu invité ou par le biais d’un proxy, les extensions échouent. L’échec se produit même si vous utilisez une version prise en charge de l’agent de machine virtuelle ou si vous configurez l’accès sortant. Les ports 80 et 32526 sont nécessaires.

Les agents peuvent être utilisés uniquement pour télécharger les paquets d’extensions et signaler l’état. Par exemple, si l’installation d’une extension nécessite le téléchargement d’un script à partir de GitHub (extension de script personnalisé) ou l’accès à Stockage Azure (Sauvegarde Azure), vous devez ouvrir d’autres ports du pare-feu ou du groupe de sécurité réseau (NSG). Les exigences varient selon les extensions, car ces dernières sont des applications à part entière. Dans le cas des extensions qui nécessitent un accès au service Stockage Azure ou Microsoft Entra ID, vous pouvez autoriser l’accès à l’aide d’étiquettes de service NSG Azure.

L’agent de machine virtuelle Azure ne prend pas en charge le serveur proxy pour activer la redirection des demandes de trafic de l’agent. L’agent de machine virtuelle Azure s’appuie sur votre proxy personnalisé (si vous en avez un) pour accéder aux ressources sur Internet ou sur l’hôte par le biais de l’adresse IP 168.63.129.16.

Détecter les extensions de machine virtuelle

De nombreuses extensions de machine virtuelle peuvent être utilisées avec les machines virtuelles Azure. Pour voir la liste complète, utilisez l’applet de commande PowerShell Get-AzVMExtensionImage.

La commande suivante liste toutes les extensions de machine virtuelle disponibles dans la région USA Ouest :

Get-AzVmImagePublisher -Location "West US" |
Get-AzVMExtensionImageType |
Get-AzVMExtensionImage | Select Type, Version

Cette commande fournit une sortie similaire à l’exemple suivant :

Type                Version
----                -------
AcronisBackup       1.0.33
AcronisBackup       1.0.51
AcronisBackupLinux  1.0.33
AlertLogicLM        1.3.0.1
AlertLogicLM        1.3.0.0
AlertLogicLM        1.4.0.1

Exécuter les extensions de machine virtuelle

Les extensions de machine virtuelle Azure s’exécutent sur des machines virtuelles existantes, ce qui se révèle utile quand vous devez apporter des changements de configuration ou restaurer la connectivité sur une machine virtuelle déjà déployée. Les extensions de machine virtuelle peuvent également être regroupées avec des déploiements de modèle ARM. En utilisant des extensions avec des modèles ARM, vous pouvez déployer et configurer des machines virtuelles Azure sans intervention post-déploiement.

Vous pouvez utiliser les méthodes suivantes pour exécuter une extension sur une machine virtuelle existante.

Notes

Dans certains des exemples suivants, les commandes ont des paramètres avec la valeur "<placeholder>". Avant d’exécuter chaque commande, veillez à remplacer toute valeur "<placeholder>" par celle spécifique à votre configuration.

PowerShell

Il existe plusieurs commandes PowerShell pour l’exécution des extensions. Pour en obtenir la liste, utilisez la commande Get-Command et appliquez le filtre Extension :

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

Cette commande fournit une sortie similaire à l’exemple suivant :

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

L’exemple suivant utilise l’extension de script personnalisé pour télécharger un script sur la machine virtuelle cible à partir d’un dépôt GitHub, puis exécuter le script.

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 "<myVMregion>"

L’exemple ci-après utilise l’extension d’accès aux machines virtuelles (VMAccess) pour redéfinir le mot de passe d’administration d’une machine virtuelle Windows sur un mot de passe temporaire. Après avoir exécuté ce code, vous devez réinitialiser le mot de passe lors de votre première connexion.

$cred=Get-Credential

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

Vous pouvez utiliser la commande Set-AzVMExtension pour démarrer une extension de machine virtuelle.

Portail Azure

Vous pouvez appliquer des extensions de machine virtuelle à une machine virtuelle existante par le biais du portail Azure. Sélectionnez la machine virtuelle dans le portail, choisissez Extensions + applications, puis sélectionnez + Ajouter. Choisissez l’extension souhaitée dans la liste des extensions disponibles, puis suivez les instructions de l’Assistant.

L’exemple ci-après illustre l’installation de l’extension Microsoft Antimalware à partir du Portail Azure :

Screenshot of the dialog for installing the Microsoft Antimalware extension.

Modèles Microsoft Azure Resource Manager

Vous pouvez ajouter des extensions de machine virtuelle à un modèle ARM et les exécuter avec le déploiement du modèle. Lorsque vous déployez une extension avec un modèle, vous pouvez créer des déploiements Azure entièrement configurés.

L’exemple JSON suivant est tiré d’un modèle ARM qui déploie un ensemble de machines virtuelles à charge équilibrée et une base de données Azure SQL, puis installe une application .NET Core sur chaque machine virtuelle. L’extension de machine virtuelle se charge de l’installation du logiciel.

{
    "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')]"
    }
    }
}

Pour plus d’informations sur la création de modèles ARM, consultez Machines virtuelles dans un modèle ARM.

Aider à sécuriser les données des extensions de machine virtuelle

Quand vous exécutez une extension de machine virtuelle, vous pouvez avoir besoin d’inclure des informations sensibles telles que des informations d’identification, des noms de compte de stockage et des clés d’accès. De nombreuses extensions de machine virtuelle comprennent une configuration protégée qui chiffre les données et les déchiffre uniquement à l’intérieur de la machine virtuelle cible. Chaque extension possède un schéma spécifique de configuration protégée, et chaque schéma est présenté en détail dans la documentation consacrée à l’extension.

L’exemple JSON suivant illustre une instance de l’extension de script personnalisé pour Windows. La commande à exécuter inclut un ensemble d’informations d’identification. La commande à exécuter n’est pas chiffrée dans cet exemple.

{
    "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')]"
    }
    }
}

Pour sécuriser la chaîne d’exécution, déplacez la propriété commandToExecute vers la configuration protected, comme indiqué dans l’exemple suivant :

{
    "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')]"
    }
    }
}

Sur une machine virtuelle d’infrastructure as a service (IaaS) Azure qui utilise des extensions, dans la console des certificats, vous pouvez voir des certificats dont le sujet est Windows Azure CRP Certificate Generator. Sur une machine virtuelle RedDog Front End (RDFE) classique, ces certificats ont comme nom de sujet Windows Azure Service Management for Extensions.

Ces certificats sécurisent la communication entre la machine virtuelle et son hôte pendant le transfert des paramètres protégés (mot de passe et autres informations d’identification) que les extensions utilisent. Le contrôleur de structure fabric Azure génère les certificats et les passe à l’agent de machine virtuelle Azure. Si vous arrêtez et démarrez la machine virtuelle tous les jours, le contrôleur de structure peut créer un nouveau certificat. Le certificat est stocké dans le magasin de certificats Personnel de l’ordinateur. Ces certificats peuvent être supprimés. L’agent de machine virtuelle Azure recrée les certificats si nécessaire.

Mise à jour des agents et des extensions

Les agents et les extensions partagent le même mécanisme de mise à jour automatique.

Quand une mise à jour est disponible et que les mises à jour automatiques sont activées, la mise à jour est installée sur la machine virtuelle uniquement si un changement est apporté à une extension ou à un autre modèle de machine virtuelle. Les changements peuvent inclure :

  • Disques de données
  • Extensions
  • Étiquettes d’extension
  • Conteneur de diagnostics de démarrage
  • Secrets de système d’exploitation invité
  • Taille de la machine virtuelle
  • Profil réseau

Les dates de publication des mises à jour par les éditeurs varient selon les régions. Vous pouvez donc disposer de machines virtuelles équipées de versions distinctes dans différentes régions.

Notes

Certaines mises à jour peuvent nécessiter des règles de pare-feu supplémentaires. Pour plus d’informations, consultez Accès réseau.

Lister les extensions déployées sur une machine virtuelle

Vous pouvez utiliser la commande suivante pour lister les extensions déployées sur une machine virtuelle :

$vm = Get-AzVM -ResourceGroupName "<myResourceGroup>" -VMName "<myVM>"
$vm.Extensions | select Publisher, VirtualMachineExtensionType, TypeHandlerVersion

Cette commande produit une sortie semblable à celle de l’exemple suivant :

Publisher             VirtualMachineExtensionType          TypeHandlerVersion
---------             ---------------------------          ------------------
Microsoft.Compute     CustomScriptExtension                1.9

Mises à jour d’agent

L’agent de machine virtuelle Azure contient uniquement du code de gestion des extensions. Le code d’approvisionnement Windows est séparé. Vous pouvez désinstaller l’agent de machine virtuelle Azure. Vous ne pouvez pas désactiver la mise à jour automatique de l’agent de machine virtuelle Azure.

Le code de gestion des extensions est responsable des tâches suivantes :

  • Communiquer avec la structure fabric Azure.
  • Gérer les opérations d’extension de machine virtuelle, telles que les installations, les rapports d’état, la mise à jour des extensions individuelles et la suppression des extensions. Les mises à jour comprennent les correctifs de sécurité, les corrections de bogues et les améliorations du code de gestion des extensions.

Pour vérifier la version que vous exécutez, consultez Détecter l’agent de machine virtuelle Azure.

Mises à jour des extensions

Quand une mise à jour d’extension est disponible et que les mises à jour automatiques sont activées, si un modèle de machine virtuelle change, l’agent de machine virtuelle Azure télécharge et met à niveau l’extension.

Les mises à jour d’extension automatiques sont soit de type minor (mise à jour mineure), soit de type hotfix (correctif logiciel). Vous pouvez accepter ou refuser les mises à jour d’extension de version mineure quand vous approvisionnez l’extension. L’exemple suivant montre comment mettre automatiquement à niveau les versions mineures dans un modèle ARM en utilisant le paramètre "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"
        ]
    },

Si vous souhaitez obtenir les dernières correctifs de bogues des versions mineures, nous vous recommandons vivement de toujours sélectionner l’option de mise à jour automatique dans vos déploiements d’extensions. Vous ne pouvez pas refuser les mises à jour de type correctif logiciel qui apportent des correctifs de sécurité ou de bogues importants.

Si vous désactivez les mises à jour automatiques ou si vous devez mettre à niveau une version majeure, utilisez la commande Set-AzVMExtension et spécifiez la version cible.

Comment identifier les mises à jour d’extension

Il existe plusieurs façons d’identifier les mises à jour d’une extension.

Identifier si l’extension est définie avec la propriété autoUpgradeMinorVersion sur une machine virtuelle

Vous pouvez examiner le modèle de machine virtuelle pour déterminer si l’extension est provisionnée avec le paramètre autoUpgradeMinorVersion. Pour vérifier le modèle de machine virtuelle, utilisez la commande Get-AzVm et fournissez le groupe de ressources et le nom de la machine virtuelle comme suit :

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

L’exemple de sortie suivant montre que le paramètre autoUpgradeMinorVersion est défini sur true :

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

Identifier quand un événement autoUpgradeMinorVersion se produit

Pour déterminer quand l’extension a été mise à jour, vous pouvez consulter les journaux de l’agent sur la machine virtuelle à l’adresse C:\WindowsAzure\Logs\WaAppAgent.log.

L’exemple suivant montre la machine virtuelle avec Microsoft.Compute.CustomScriptExtension version 1.8 installé et un correctif disponible pour la 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'

Autorisations d’agent

Pour effectuer ses tâches, l’agent de machine virtuelle Azure doit s’exécuter en tant que système local.

Résoudre les problèmes liés aux extensions de machine virtuelle

Chaque extension de machine virtuelle peut présenter une procédure spécifique de résolution des problèmes. Par exemple, quand vous utilisez l’extension de script personnalisé, vous pouvez trouver les détails d’exécution du script localement sur la machine virtuelle où l’extension est exécutée.

Les actions de résolution des problèmes ci-après s’applique à toutes les extensions de machine virtuelle :

  • Pour consulter le journal de l’agent de machine virtuelle Windows, examinez l’activité au moment où votre extension a été approvisionnée dans le fichier C:\WindowsAzure\Logs\WaAppAgent.log.

  • Pour plus de détails, vérifiez les journaux d’activité d’extension à l’emplacement C:\WindowsAzure\Logs\Plugins<extensionName>.

  • Consultez les sections de résolution des problèmes dans la documentation spécifique aux extensions pour connaître les codes d’erreur, les problèmes connus et d’autres informations spécifiques aux extensions.

  • Examinez les journaux d’activité système. Vérifiez si d’autres opérations sont susceptibles d’avoir interféré avec l’extension, par exemple l’installation prolongée d’une autre application qui a nécessité un accès exclusif au gestionnaire de package.

  • Dans une machine virtuelle, s’il existe une extension avec un état d’approvisionnement échoué, toute autre nouvelle extension ne peut pas être installée.

Motifs courants des échecs d’extension

Voici quelques raisons courantes pouvant expliquer l’échec d’une extension :

  • Les extensions ont 20 minutes pour s’exécuter. Font exception à cette règle les extensions Script personnalisé, Chef et DSC, qui disposent de 90 minutes pour s’exécuter. Si votre déploiement dépasse ce délai, il est marqué comme ayant expiré. Ce problème peut être dû à des machines virtuelles à faibles ressources, à d’autres configurations de machines virtuelles ou à des tâches de démarrage qui consomment de grandes quantités de ressources pendant la tentative de provisionnement de l’extension.

  • La configuration minimale requise n’est pas respectée. Certaines extensions présentent des dépendances vis-à-vis des références SKU de machine virtuelle, telles que les images HPC. Les extensions peuvent avoir certaines exigences d’accès réseau, comme la communication avec Stockage Azure ou des services publics. D’autres exemples peuvent être l’accès aux référentiels de packages, le manque d’espace disque ou les restrictions de sécurité.

  • L’accès au gestionnaire de package est exclusif. Dans certains cas, la configuration d’une machine virtuelle et l’installation d’une extension de longue durée peuvent entrer en conflit, car ces deux tâches exigent un accès exclusif au gestionnaire de package.

Afficher l’état de l’extension

Après l’exécution d’une extension de machine virtuelle sur une machine virtuelle, utilisez la commande Get-AzVM pour retourner l’état de l’extension. Le résultat Substatuses[0] indique que le provisionnement de l’extension a réussi, ce qui signifie qu’elle a été déployée sur la machine virtuelle. Si vous voyez le résultat Substatuses[1], l’exécution de l’extension à l’intérieur de la machine virtuelle a échoué.

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

Le résultat ressemble à l’exemple suivant :

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

Vous pouvez également trouver l’état d’exécution des extensions dans le portail Azure. Sélectionnez la machine virtuelle, sélectionnez Extensions, puis sélectionnez l’extension souhaitée.

Réexécuter une extension de machine virtuelle

Dans certains cas, vous devrez peut-être réexécuter une extension de machine virtuelle. Pour ce faire, supprimez l’extension, puis réexécutez-la avec la méthode d’exécution de votre choix. Pour supprimer une extension, utilisez la commande Remove-AzVMExtension comme suit :

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

Vous pouvez également supprimer une extension dans le portail Azure. Sélectionnez une machine virtuelle, choisissez Extensions, puis sélectionnez l’extension souhaitée. Sélectionner Désinstaller.

Informations de référence sur les extensions de machine virtuelle courantes

Le tableau suivant fournit des références courantes pour les extensions de machine virtuelle.

Nom de l’extension Description
Extension de script personnalisé pour Windows Exécuter des scripts sur une machine virtuelle Azure.
Extension DSC pour Windows Appliquer des configurations d’état souhaité PowerShell à une machine virtuelle.
Extension Diagnostics Azure Gérer les diagnostics Azure.
Extension VMAccess Gérer les utilisateurs et les informations d’identification.

Étapes suivantes

Pour plus d’informations sur les extensions de machine virtuelle, consultez Extensions et fonctionnalités des machines virtuelles Azure.