Estensioni e funzionalità della macchina virtuale per Windows

Le estensioni macchina virtuale di Azure sono applicazioni di piccole dimensioni che forniscono attività di configurazione e automazione post-distribuzione alle macchine virtuali di Azure. Ad esempio, se una macchina virtuale richiede l'installazione software, la protezione antivirus o la possibilità di eseguire uno script all'interno della macchina virtuale, è possibile usare un'estensione macchina virtuale.

È possibile eseguire le estensioni di macchine virtuali di Azure usando l'interfaccia della riga di comando di Azure, PowerShell, i modelli di Azure Resource Manager (ARM) e il portale di Azure. Le estensioni possono essere aggregate con una nuova distribuzione di macchina virtuale o eseguite su un sistema esistente.

Questo articolo offre una panoramica delle estensioni delle macchine virtuali di Azure, inclusi i prerequisiti e indicazioni su come rilevare, gestire e rimuovere le estensioni. Questo articolo fornisce informazioni generalizzate perché sono disponibili molte estensioni della macchina virtuale. Ogni estensione ha una configurazione potenzialmente univoca e la relativa documentazione.

Casi d'uso ed esempi

Ogni estensione di macchina virtuale di Azure ha un caso d'uso specifico. Di seguito vengono forniti alcuni esempi:

  • Applicare le configurazioni di stato desiderate di PowerShell a una macchina virtuale usando l'estensione DSC per Windows.

  • Configurare il monitoraggio di una macchina virtuale usando l'agente di Monitoraggio di Azure e le informazioni dettagliate sulle macchine virtuali.

  • Configurare una macchina virtuale di Azure usando Chef.

  • Configurare il monitoraggio dell'infrastruttura di Azure usando l'estensione Datadog.

Oltre alle estensioni specifiche del processo, è disponibile un'estensione script personalizzata per le macchine virtuali Windows e Linux. L'estensione script personalizzata per Windows consente l'esecuzione di qualsiasi script di PowerShell in una macchina virtuale. Gli script personalizzati sono utili per la progettazione di distribuzioni di Azure che richiedono una configurazione in aggiunta a quella offerta dagli strumenti nativi di Azure.

Prerequisiti

Esaminare i prerequisiti seguenti per l'uso delle estensioni della macchina virtuale di Azure.

Agente di macchine virtuali di Azure

Per gestire le estensioni nella macchina virtuale, è necessario che sia installato l'agente di macchine virtuali di Azure per Windows . Questo agente viene anche definito agente di macchine virtuali di Azure o agente guest Windows. Quando si prepara a installare le estensioni, tenere presente che alcune estensioni hanno singoli prerequisiti, ad esempio l'accesso alle risorse o alle dipendenze.

L'agente di macchine virtuali di Azure gestisce le interazioni tra una macchina virtuale di Azure e il controller di infrastruttura di Azure. L'agente è responsabile di molti aspetti funzionali della distribuzione e della gestione delle macchine virtuali di Azure, tra cui l'esecuzione di estensioni di macchina virtuale.

L'agente di macchine virtuali di Azure è preinstallato nelle immagini di Azure Marketplace. L'agente può anche essere installato manualmente nei sistemi operativi supportati.

L'agente viene eseguito su più sistemi operativi. Tuttavia, il framework delle estensioni ha un limite per i sistemi operativi usati dalle estensioni. Alcune estensioni non sono supportate in tutti i sistemi operativi e potrebbero generare codice di errore 51 ("sistema operativo non supportato"). Vedere la documentazione della singola estensione per informazioni sul supporto.

Accesso alla rete

I pacchetti di estensione vengono scaricati dal repository dell'estensione Archiviazione di Azure. I caricamenti dello stato dell'estensione vengono pubblicati in Archiviazione di Azure.

Se si usa una versione supportata dell'agente di macchine virtuali di Azure, non è necessario consentire l'accesso alle Archiviazione di Azure nell'area della macchina virtuale. È possibile usare l'agente di macchine virtuali per reindirizzare la comunicazione al controller di infrastruttura di Azure per le comunicazioni degli agenti tramite la HostGAPlugin funzionalità tramite il canale con privilegi sull'indirizzo IP privato 168.63.129.16. Se si usa una versione non supportata dell'agente di macchine virtuali, è necessario consentire l'accesso in uscita alle Archiviazione di Azure in tale area dalla macchina virtuale.

Importante

Se si blocca l'accesso all'indirizzo IP 168.63.129.16 usando il firewall guest o tramite un proxy, le estensioni hanno esito negativo. Si verifica un errore anche se si usa una versione supportata dell'agente di macchine virtuali o si configura l'accesso in uscita. Sono necessarie le porte 80 e 32526.

Gli agenti possono essere usati solo per scaricare pacchetti di estensione e segnalare lo stato. Ad esempio, se un'installazione dell'estensione deve scaricare uno script da GitHub (estensione script personalizzata) o richiede l'accesso a Archiviazione di Azure (Backup di Azure), è necessario aprire altre porte del firewall o del gruppo di sicurezza di rete. Le estensioni diverse hanno requisiti diversi perché sono applicazioni a proprio diritto. Per le estensioni che richiedono l'accesso a Archiviazione di Azure o a Microsoft Entra ID, è possibile consentire l'accesso usando i tag del servizio NSG di Azure.

L'agente di macchine virtuali di Azure non fornisce il supporto del server proxy per abilitare il reindirizzamento delle richieste di traffico dell'agente. L'agente di macchine virtuali si basa sul proxy personalizzato (se disponibile) per accedere alle risorse su Internet o sull'host tramite l'indirizzo IP 168.63.129.16.

Individuare le estensioni della macchina virtuale

Molte estensioni di macchina virtuale sono disponibili per l'uso con le macchine virtuali di Azure. Per visualizzare un elenco completo, usare il Get-AzVMExtensionImage cmdlet di PowerShell.

Il comando seguente elenca tutte le estensioni di macchina virtuale disponibili nella località Stati Uniti occidentali:

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

Questo comando fornisce un output simile all'esempio seguente:

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

Eseguire le estensioni della macchina virtuale

Le estensioni macchina virtuale di Azure vengono eseguite nelle macchine virtuali esistenti e questo è utile quando è necessario apportare modifiche alla configurazione o ripristinare la connettività in una macchina virtuale già distribuita. Le estensioni della macchina virtuale possono essere raggruppate anche con distribuzioni di modelli di Resource Manager. Usando le estensioni con i modelli di Resource Manager, è possibile distribuire e configurare macchine virtuali di Azure senza intervento post-distribuzione.

È possibile usare i metodi seguenti per eseguire un'estensione su una macchina virtuale esistente.

Nota

Alcuni degli esempi seguenti usano "<placeholder>" i valori dei parametri nei comandi. Prima di eseguire ogni comando, assicurarsi di sostituire tutti i "<placeholder>" valori con valori specifici per la configurazione.

PowerShell

Molti comandi di PowerShell vengono utilizzati per l'esecuzione di estensioni singole. Per visualizzare un elenco, usare il comando Get-Command e filtrare in Estensione:

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

Questo comando fornisce un output simile all'esempio seguente:

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'esempio seguente usa l'estensione script personalizzato per scaricare uno script da un repository GitHub nella macchina virtuale di destinazione e quindi eseguire lo 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'esempio seguente usa l'estensione VMAccess per reimpostare la password amministrativa di una macchina virtuale Windows su una password temporanea. Dopo aver eseguito questo codice, è necessario reimpostare la password al primo accesso.

$cred=Get-Credential

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

È possibile usare il comando Set-AzVMExtension per avviare qualsiasi estensione della macchina virtuale.

Azure portal

È possibile applicare estensioni di macchina virtuale a una macchina virtuale esistente tramite il portale di Azure. Selezionare la macchina virtuale nel portale, selezionare Estensioni e applicazioni e quindi + Aggiungi. Scegliere l'estensione desiderata dall'elenco delle estensioni disponibili e seguire le istruzioni della procedura guidata.

L'esempio seguente illustra l'installazione dell'estensione Microsoft Antimalware dal portale di Azure:

Screenshot of the dialog for installing the Microsoft Antimalware extension.

Modelli di Gestione risorse di Azure

È possibile aggiungere estensioni di macchina virtuale a un modello di Resource Manager ed eseguirle con la distribuzione del modello. Quando si distribuisce un'estensione con un modello, è possibile creare distribuzioni di Azure completamente configurate.

L'esempio JSON seguente proviene da un modello di Resource Manager che distribuisce un set di macchine virtuali con carico bilanciato e un database SQL di Azure e quindi installa un'applicazione .NET Core in ogni macchina virtuale. L'estensione della macchina virtuale gestisce l'installazione del software.

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

Per altre informazioni sulla creazione di modelli di Resource Manager, vedere Macchine virtuali in un modello di Resource Manager.

Proteggere i dati dell'estensione della macchina virtuale

Quando si esegue un'estensione di macchina virtuale, potrebbe essere necessario includere informazioni riservate, ad esempio credenziali, nomi di account di archiviazione e chiavi di accesso. Molte estensioni macchina virtuale includono una configurazione protetta, che consente di crittografare dati e di decrittografarli solo all'interno della macchina virtuale di destinazione. Ogni estensione ha uno schema di configurazione protetto specifico e ogni schema è dettagliato nella documentazione specifica dell'estensione.

L'esempio JSON seguente mostra un'istanza dell'estensione script personalizzata per Windows. Il comando da eseguire include un set di credenziali. In questo esempio il comando da eseguire non è crittografato.

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

Lo spostamento della proprietà nella commandToExecuteprotected configurazione consente di proteggere la stringa di esecuzione, come illustrato nell'esempio seguente:

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

In una macchina virtuale IaaS (Infrastructure as a Service) di Azure che usa le estensioni, nella console dei certificati potrebbero essere visualizzati certificati con il generatore di certificati CRP di Windows Azure soggetto. In una macchina virtuale RedDog Front End (RDFE) classica, questi certificati hanno il nome soggetto Gestione dei servizi di Windows Azure per le estensioni.

Questi certificati proteggono la comunicazione tra la macchina virtuale e il relativo host durante il trasferimento delle impostazioni protette (password e altre credenziali) usate dalle estensioni. Il controller di infrastruttura di Azure compila i certificati e li passa all'agente di macchine virtuali di Azure. Se si arresta e si avvia la macchina virtuale ogni giorno, il controller di infrastruttura potrebbe creare un nuovo certificato. Il certificato viene archiviato nell'archivio certificati personali del computer. Questi certificati possono essere eliminati. Se necessario, l'agente di macchine virtuali di Azure crea nuovamente i certificati.

Modalità di aggiornamento degli agenti e delle estensioni

Gli agenti e le estensioni condividono lo stesso meccanismo di aggiornamento automatico.

Quando un aggiornamento è disponibile e gli aggiornamenti automatici sono abilitati, l'aggiornamento viene installato nella macchina virtuale solo dopo la modifica di un'estensione o di un altro modello di macchina virtuale. Le modifiche possono includere:

  • Dischi dati
  • Estensioni
  • Tag di estensione
  • Contenitore della diagnostica di avvio
  • Segreti del sistema operativo guest
  • Dimensioni della macchina virtuale
  • Profilo di rete

I server di pubblicazione rendono disponibili gli aggiornamenti per le aree in diversi momenti. È possibile avere macchine virtuali in aree diverse in versioni diverse.

Nota

Alcuni aggiornamenti potrebbero richiedere regole del firewall aggiuntive. Per altre informazioni, vedere Accesso alla rete.

Elencare le estensioni distribuite in una macchina virtuale

È possibile usare il comando seguente per elencare le estensioni distribuite in una macchina virtuale:

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

Questo comando genera un output simile all'esempio seguente:

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

Aggiornamenti dell'agente

L'agente di macchine virtuali di Azure contiene solo il codice di gestione delle estensioni. Il codice di provisioning di Windows è separato. È possibile disinstallare l'agente di macchine virtuali di Azure. Non è possibile disabilitare l'aggiornamento automatico dell'agente di macchine virtuali di Azure.

Il codice di gestione delle estensioni è responsabile delle attività seguenti:

  • Comunicare con l'infrastruttura di Azure.
  • Gestire le operazioni di estensione della macchina virtuale, ad esempio installazioni, stato di creazione di report, aggiornamento delle singole estensioni e rimozione delle estensioni. Aggiornamenti contengono correzioni di sicurezza, correzioni di bug e miglioramenti al codice di gestione delle estensioni.

Per verificare la versione in esecuzione, vedere Rilevare l'agente di macchine virtuali di Azure.

Aggiornamenti delle estensioni

Quando è disponibile un aggiornamento dell'estensione e vengono abilitati gli aggiornamenti automatici, se viene modificato un modello di macchina virtuale, l'agente di macchine virtuali di Azure scarica e aggiorna l'estensione.

Gli aggiornamenti automatici delle estensioni sono secondari o hotfix. È possibile acconsentire esplicitamente o rifiutare esplicitamente gli aggiornamenti secondari quando si effettua il provisioning dell'estensione. L'esempio seguente illustra come aggiornare automaticamente le versioni secondarie in un modello di Resource Manager usando il "autoUpgradeMinorVersion": true, parametro :

    "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"
        ]
    },

Per ottenere le correzioni di bug di versione secondaria più recenti, è consigliabile selezionare sempre l'aggiornamento automatico nelle distribuzioni delle estensioni. Non è possibile rifiutare esplicitamente gli aggiornamenti rapidi che eseguono correzioni di bug di sicurezza o chiave.

Se si disabilitano gli aggiornamenti automatici o è necessario aggiornare una versione principale, usare il comando Set-AzVMExtension e specificare la versione di destinazione.

Come identificare gli aggiornamenti delle estensioni

Esistono alcuni modi per identificare gli aggiornamenti per un'estensione.

Identificare se l'estensione è impostata con autoUpgradeMinorVersion in una macchina virtuale

È possibile visualizzare il modello di macchina virtuale per determinare se viene effettuato il provisioning dell'estensione con il autoUpgradeMinorVersion parametro . Per controllare il modello di macchina virtuale, usare il comando Get-AzVm e specificare il gruppo di risorse e il nome della macchina virtuale come indicato di seguito:

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

L'output di esempio seguente mostra che il autoUpgradeMinorVersion parametro è impostato su true:

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

Identificare quando si verifica un evento autoUpgradeMinorVersion

Per verificare quando si è verificato un aggiornamento dell'estensione, è possibile esaminare i log dell'agente nella macchina virtuale in C:\WindowsAzure\Logs\WaAppAgent.log.

L'esempio seguente illustra la macchina virtuale con Microsoft.Compute.CustomScriptExtension la versione 1.8 installata e un hotfix disponibile per la versione 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'

Autorizzazioni dell'agente

Per eseguire le attività, l'agente di macchine virtuali di Azure deve essere eseguito come sistema locale.

Risoluzione dei problemi relativi alle estensioni della macchina virtuale

Ogni estensione della macchina virtuale potrebbe avere passaggi specifici per la risoluzione dei problemi. Ad esempio, quando si usa l'estensione script personalizzata, è possibile trovare i dettagli di esecuzione dello script in locale nella macchina virtuale in cui viene eseguita l'estensione.

Le azioni di risoluzione dei problemi seguenti si applicano a tutte le estensioni della macchina virtuale:

  • Per controllare il log dell'agente di macchine virtuali di Azure, esaminare l'attività durante il provisioning dell'estensione in C:\WindowsAzure\Logs\WaAppAgent.log.

  • Controllare i log delle estensioni per altri dettagli in C:\WindowsAzure\Logs\Plugins<extensionName>.

  • Vedere le sezioni sulla risoluzione dei problemi nella documentazione specifica dell'estensione per i codici di errore, i problemi noti e altre informazioni specifiche dell'estensione.

  • Esaminare i log di sistema. Verificare la presenza di altre operazioni che potrebbero aver interferito con l'estensione, ad esempio un'installazione a esecuzione prolungata di un'altra applicazione che richiede l'accesso esclusivo alla gestione pacchetti.

  • In una macchina virtuale, se è presente un'estensione esistente con uno stato di provisioning non riuscito, qualsiasi altra nuova estensione non viene installata.

Motivi comuni che causano errori delle estensioni

Ecco alcuni motivi comuni per cui un'estensione può avere esito negativo:

  • L'esecuzione delle estensioni è di 20 minuti. Le eccezioni sono script personalizzati, Chef e DSC, che hanno 90 minuti. Se la distribuzione supera questa volta, viene contrassegnata come timeout. La causa di questo problema può essere costituita da macchine virtuali a risorse basse o da altre configurazioni di macchine virtuali o attività di avvio che utilizzano grandi quantità di risorse durante il tentativo di provisioning dell'estensione.

  • I prerequisiti minimi non vengono soddisfatti. Alcune estensioni hanno dipendenze negli SKU di macchine virtuali, ad esempio le immagini HPC. Le estensioni potrebbero avere determinati requisiti di accesso alla rete, ad esempio la comunicazione con Archiviazione di Azure o servizi pubblici. Altri esempi possono essere l'accesso ai repository di pacchetti, l'esaurimento dello spazio su disco o le restrizioni di sicurezza.

  • L'accesso a Gestione pacchetti è esclusivo. In alcuni casi, una configurazione e un'installazione dell'estensione della macchina virtuale a esecuzione prolungata potrebbero entrare in conflitto perché entrambi richiedono l'accesso esclusivo alla gestione pacchetti.

Visualizzare lo stato dell'estensione

Dopo l'esecuzione di un'estensione di macchina virtuale in una macchina virtuale, usare il comando Get-AzVM per restituire lo stato dell'estensione. Il Substatuses[0] risultato mostra che il provisioning dell'estensione è riuscito, il che significa che è stato distribuito correttamente nella macchina virtuale. Se viene visualizzato il Substatuses[1] risultato, l'esecuzione dell'estensione all'interno della macchina virtuale non è riuscita.

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

L'output è simile all'esempio seguente:

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

È anche possibile trovare lo stato di esecuzione dell'estensione nel portale di Azure. Selezionare la macchina virtuale, selezionare Estensioni e quindi selezionare l'estensione desiderata.

Rieseguire un'estensione macchina virtuale

In alcuni casi, potrebbe essere necessario eseguire di nuovo un'estensione di macchina virtuale. È possibile rieseguire un'estensione rimuovendo l'estensione e quindi eseguendo nuovamente l'estensione con un metodo di esecuzione di propria scelta. Per rimuovere un'estensione, usare il comando Remove-AzVMExtension come indicato di seguito:

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

È anche possibile rimuovere un'estensione nel portale di Azure. Selezionare una macchina virtuale, selezionare Estensioni e quindi selezionare l'estensione desiderata. Seleziona Disinstalla.

Riferimento alle estensioni della macchina virtuale comuni

La tabella seguente fornisce alcuni riferimenti comuni per le estensioni della macchina virtuale.

Nome estensione Descrizione
Estensione script personalizzata per Windows Eseguire script in una macchina virtuale di Azure.
Estensione DSC per Windows Applicare le configurazioni di stato desiderate di PowerShell a una macchina virtuale.
Estensione di Diagnostica di Azure Gestire Diagnostica di Azure.
Estensione VMAccess Gestire utenti e credenziali.

Passaggi successivi

Per altre informazioni sulle estensioni delle macchine virtuali, vedere Estensioni e funzionalità delle macchine virtuali di Azure.