Erweiterungen und Features für virtuelle Computer für Windows
Erweiterungen für virtuelle Azure-Computer sind kleine Anwendungen, die Konfigurations- und Automatisierungsaufgaben auf virtuellen Azure-Computern nach der Bereitstellung ermöglichen. Wenn z. B. Software auf einer VM installiert werden muss, Virenschutz oder die Ausführung eines Skripts erforderlich ist, kann eine VM-Erweiterung verwendet werden.
Sie können Azure VM-Erweiterungen mithilfe der Azure-CLI, PowerShell, Azure Resource Manager-Vorlagen (ARM-Vorlagen) und dem Azure-Portal ausführen. Erweiterungen können mit einer neu bereitgestellten VM gebündelt oder für ein bestehendes System ausgeführt werden.
Dieser Artikel enthält eine Übersicht der VM-Erweiterungen in Azure, erläutert Voraussetzungen für deren Verwendung und bietet Hilfestellung, um sie zu erkennen, zu verwalten und zu entfernen. Dieser Artikel enthält generalisierte Informationen, da viele VM-Erweiterungen verfügbar sind. Jede davon kann ihre eigene Konfiguration und Dokumentation haben.
Anwendungsfälle und Beispiele
Jede Azure-VM-Erweiterung hat einen bestimmten Zweck. Beispiele:
- Anwenden von Desired State Configurations (DSCs) mit PowerShell auf eine VM mithilfe der DSC-Erweiterung für Windows.
- Konfigurieren der Überwachung einer VM mit der Log Analytics-Agent-VM-Erweiterung.
- Konfigurieren eines virtuellen Azure-Computers mit Chef.
- Konfigurieren der Überwachung Ihrer Azure-Infrastruktur durch die Datadog-Erweiterung.
Über prozessspezifische Erweiterungen hinaus ist sowohl für virtuelle Windows- als auch für virtuelle Linux-Computer eine benutzerdefinierte Skripterweiterung verfügbar. Die benutzerdefinierte Skripterweiterung für Windows ermöglicht die Ausführung beliebiger PowerShell-Skripts auf VMs. Benutzerdefinierte Skripts sind beim Entwerfen von Azure-Bereitstellungen nützlich, die Konfiguration über das Maß hinaus erfordern, das mithilfe von Azure-Tools erreicht werden kann.
Voraussetzungen
Azure-VM-Agent
Um die Erweiterung auf dem virtuellen Computer verarbeiten zu können, muss der Azure-VM-Agent für Windows (auch als Windows-Gast-Agent bezeichnet) installiert sein. Einige individuelle Erweiterungen haben Voraussetzungen, z.B. den Zugriff auf Ressourcen oder Abhängigkeiten.
Der Azure-VM-Agent verwaltet Interaktionen zwischen einem virtuellen Azure-Computer und dem Azure Fabric Controller. Der Agent ist für viele funktionale Aspekte in Bezug auf die Bereitstellung und Verwaltung von Azure-VMs verantwortlich. Dies umfasst auch das Ausführen von VM-Erweiterungen.
Der Azure-VM-Agent ist auf Azure Marketplace-Images vorinstalliert. Er kann auch manuell unter unterstützten Betriebssystemen installiert werden.
Der Agent läuft auf mehreren Betriebssystemen. Das Erweiterungsframework verfügt jedoch über eine Begrenzung der Betriebssysteme, die von Erweiterungen verwendet werden. Manche Erweiterung werden nicht auf allen Betriebssystemen unterstützt. In diesem Fall wird der Fehlercode 51, „Nicht unterstütztes Betriebssystem“, zurückgegeben. Überprüfen Sie die Dokumentation zu Erweiterungen auf Informationen zu Unterstützungsmöglichkeiten.
Netzwerkzugriff
Erweiterungspakete werden aus dem Azure Storage-Erweiterungsrepository heruntergeladen. Erweiterungsstatus-Uploads werden in Azure Storage gepostet.
Wenn Sie eine unterstützte Version des Azure-VM-Agents verwenden, müssen Sie nicht den Zugriff auf Azure Storage in der VM-Region zulassen. Sie können den Agent verwenden, um die Kommunikation an den Azure Fabric Controller für die Agent-Kommunikation umzuleiten (HostGAPlugin-Feature über den privilegierten Kanal über die private IP-Adresse 168.63.129.16). Wenn Sie eine nicht unterstützte Version des Agents verwenden, müssen Sie in dieser Region den von der VM ausgehenden Zugriff auf Azure Storage zulassen.
Wichtig
Wenn Sie den Zugriff mithilfe der Gastfirewall oder eines Proxys auf 168.63.129.16 blockiert haben, schlagen Erweiterungen fehl, auch wenn Sie eine unterstützte Version des Agents verwenden oder den ausgehenden Zugriff konfiguriert haben. Die Ports 80, 443 und 32526 sind erforderlich.
Agents können nur zum Herunterladen von Erweiterungspaketen und für Statusberichte verwendet werden. Wenn z. B. bei der Installation einer Erweiterung ein Skript aus GitHub heruntergeladen werden muss (benutzerdefinierte Skripterweiterung) oder Zugriff auf Azure Storage (Azure Backup) notwendig ist, müssen zusätzliche Firewall- oder Netzwerksicherheitsgruppen-Ports (NSG) geöffnet werden. Verschiedene Erweiterungen haben verschiedene Voraussetzungen, da es sich bei ihnen um eigenständige Anwendungen handelt. Für Erweiterungen, die Zugriff auf Azure Storage oder Azure Active Directory benötigen, können Sie den Zugriff über Azure-NSG-Diensttags gewähren.
Der Azure-VM-Agent verfügt über keine Unterstützung für Proxyserver, über die Sie Datenverkehrsanforderungen des Agents umleiten können. Das bedeutet, dass der Azure-VM-Agent auf Ihren benutzerdefinierten Proxy (sofern vorhanden) zurückgreift, um über die IP-Adresse 168.63.129.16 auf Ressourcen im Internet oder auf dem Host zuzugreifen.
Ermitteln von VM-Erweiterungen
Für die Verwendung mit Azure-VMs stehen viele VM-Erweiterungen zur Verfügung. Eine vollständige Liste finden Sie unter Get-AzVMExtensionImage. Im folgenden Beispiel werden alle verfügbaren Erweiterungen am Standort WestUS aufgelistet:
Get-AzVmImagePublisher -Location "WestUS" |
Get-AzVMExtensionImageType |
Get-AzVMExtensionImage | Select Type, Version
Ausführen von VM-Erweiterungen
Azure-VM-Erweiterungen können auf vorhandenen VMs ausgeführt werden. Dies ist nützlich, wenn Sie Konfigurationsänderungen vornehmen oder die Konnektivität auf einer bereits bereitgestellten VM wiederherstellen müssen. VM-Erweiterungen können auch mit ARM-Vorlagenbereitstellungen gebündelt werden. Indem Sie Erweiterungen mit ARM-Vorlagen verwenden, können Sie Azure-VMs bereitstellen, ohne hinterher eingreifen zu müssen.
Sie können die folgenden Methoden verwenden, um eine Erweiterung für eine vorhandene VM auszuführen.
PowerShell
Mehrere PowerShell-Befehle können zum Ausführen einzelner Erweiterungen verwendet werden. Verwenden Sie zum Anzeigen einer Liste Get-Command, und filtern Sie nach Extension:
Get-Command Set-Az*Extension* -Module Az.Compute
Dieser Befehl bietet eine Ausgabe ähnlich der folgenden:
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
Im folgenden Beispiel wird mit der benutzerdefinierten Skripterweiterung ein Skript von einem GitHub-Repository auf den virtuellen Zielcomputer heruntergeladen und dann das Skript ausgeführt:
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"
Im folgenden Beispiel wird die VM-Zugriffserweiterung verwendet, um das Administratorkennwort eines virtuellen Windows-Computers auf ein vorübergehendes Kennwort zurückzusetzen. Nachdem Sie diesen Code ausgeführt haben, sollten Sie das Kennwort bei der ersten Anmeldung zurücksetzen.
$cred=Get-Credential
Set-AzVMAccessExtension -ResourceGroupName "myResourceGroup" -VMName "myVM" -Name "myVMAccess" `
-Location WestUS -UserName $cred.GetNetworkCredential().Username `
-Password $cred.GetNetworkCredential().Password -typeHandlerVersion "2.0"
Sie können den Befehl Set-AzVMExtension verwenden, um eine beliebige VM-Erweiterung zu starten.
Azure-Portal
Sie können VM-Erweiterungen mithilfe des Azure-Portals auf eine vorhandene VM anwenden werden. Wählen Sie im Azure-Portal Erweiterungen aus, und klicken Sie dann auf Hinzufügen. Wählen Sie aus der Liste verfügbarer Erweiterungen die gewünschte Erweiterung aus und befolgen Sie die Anweisungen im Assistenten.
Im folgenden Beispiel wird die Installation der Microsoft Antimalware-Erweiterung aus dem Azure-Portal gezeigt:

Azure Resource Manager-Vorlagen
Sie können einer ARM-Vorlage VM-Erweiterungen hinzufügen und sie beim Bereitstellen der Vorlage ausführen. Wenn Sie eine Erweiterung mithilfe einer Vorlage bereitstellen, können Sie vollständig konfigurierte Azure-Bereitstellungen erstellen.
Beispielsweise stammt der folgende JSON-Code aus einer vollständigen ARM-Vorlage, die einen Satz von VMs mit Lastenausgleich und einer Azure SQL-Datenbank bereitstellt und dann auf jeder VM eine .NET Core-Anwendung installiert. Die VM-Erweiterung erledigt die Softwareinstallation.
{
"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')]"
}
}
}
Informationen zur Bereitstellung mithilfe von ARM-Vorlagen finden Sie unter VMs in einer Azure Resource Manager-Vorlage.
Schützen der Daten von VM-Erweiterungen
Beim Ausführen einer VM-Erweiterung müssen möglicherweise vertrauliche Informationen wie Anmeldeinformationen, Namen von Speicherkonten und Zugriffsschlüssel angegeben werden. Viele VM-Erweiterungen beinhalten eine geschützte Konfiguration, die Daten verschlüsselt und sie ausschließlich innerhalb des virtuellen Zielcomputers entschlüsselt. Jede Erweiterung weist ein spezifisches Schema für die geschützte Konfiguration auf, und jede wird in der erweiterungsspezifischen Dokumentation ausführlich erläutert.
Das folgende Beispiel zeigt eine Instanz der benutzerdefinierten Skripterweiterung für Windows. Der auszuführende Befehl enthält Anmeldeinformationen. In diesem Beispiel wird der auszuführende Befehl nicht verschlüsselt.
{
"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')]"
}
}
}
Durch Verschieben der Eigenschaft commandToExecute in die protected-Konfiguration wird die Ausführungszeichenfolge, wie im folgenden Beispiel gezeigt, geschützt:
{
"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')]"
}
}
}
Auf einer Azure-IaaS-VM (Infrastructure-as-a-Service), die Erweiterungen verwendet, werden möglicherweise Zertifikate des Antragstellers Windows Azure CRP Certificate Generator angezeigt. Auf einer klassischen RDFE-VM (RedDog Front End) tragen diese Zertifikate den Antragstellernamen Windows Azure Service Management for Extensions.
Diese Zertifikate sichern die Kommunikation zwischen dem virtuellen Computer und seinem Host während der Übertragung geschützter Einstellungen (Kennwort und andere Anmeldeinformationen), die von Erweiterungen verwendet werden. Die Zertifikate werden von Azure Fabric Controller generiert und an den Azure-VM-Agent übermittelt. Wenn Sie die VM jeden Tag beenden und starten, erstellt der Fabric Controller möglicherweise ein neues Zertifikat. Das Zertifikat wird im persönlichen Zertifikatspeicher des Computers gespeichert. Diese Zertifikate können gelöscht werden. Der Azure-VM-Agent erstellt Zertifikate bei Bedarf neu.
Aktualisieren von Agents und Erweiterungen
Agents und Erweiterungen besitzen den gleichen Updatemechanismus.
Wenn ein Update verfügbar ist und automatische Updates aktiviert sind, wird das Update erst auf dem virtuellen Computer installiert, nachdem eine Änderung an einer Erweiterung vorgenommen wurde oder nachdem andere VM-Modelländerungen vorgenommen wurden, z. B.:
- Datenträger
- Erweiterungen
- Erweiterungstags
- Container der Startdiagnose
- Geheimnisse des Gastbetriebssystems
- Größe des virtuellen Computers
- Netzwerkprofil
Herausgeber stellen Updates in verschiedenen Regionen zu verschiedenen Zeiten zur Verfügung, d.h., möglicherweise haben Ihre VMs in verschiedenen Regionen unterschiedliche Versionen.
Hinweis
Einige Updates erfordern eventuell zusätzliche Firewallregeln. Weitere Informationen finden Sie unter Netzwerkzugriff.
Auflisten von Erweiterungen, die einer VM bereitgestellt wurden
$vm = Get-AzVM -ResourceGroupName "myResourceGroup" -VMName "myVM"
$vm.Extensions | select Publisher, VirtualMachineExtensionType, TypeHandlerVersion
Publisher VirtualMachineExtensionType TypeHandlerVersion
--------- --------------------------- ------------------
Microsoft.Compute CustomScriptExtension 1.9
Updates für Agents
Der Azure-VM-Agent enthält nur Code zur Behandlung von Erweiterungen. Der Windows-Bereitstellungscode ist separat. Sie können den Azure-VM-Agent deinstallieren. Sie können das automatische Update des Azure-VM-Agents nicht deaktivieren.
Der Code zur Behandlung von Erweiterungen ist für Folgendes verantwortlich:
- Kommunikation mit dem Azure-Fabric.
- Behandeln der Vorgänge von VM-Erweiterungen, z. B. Installationen, Melden des Status, Aktualisieren der einzelnen Erweiterungen und Entfernen von Erweiterungen. Updates enthalten Sicherheitsfixes, Fehlerbehebungen und Verbesserungen für den Code für die Behandlung von Erweiterungen.
Informationen zur ausgeführten Version finden Sie unter Erkennen des VM-Agents.
Updates für Erweiterungen
Wenn ein Erweiterungsupdate verfügbar ist und automatische Updates aktiviert sind, lädt der Azure-VM-Agent die Erweiterung herunter und führt ein Upgrade durch, nachdem eine Änderung am VM-Modell erfolgt ist.
Automatische Updates für Erweiterungen sind entweder kleinere Updates oder Hotifxupdates. Sie können beim Bereitstellen der Erweiterung entscheiden, ob Sie kleinere Updates für Erweiterungen beziehen wollen oder nicht. Das folgende Beispiel zeigt, wie Nebenversionen in einer ARM-Vorlage mithilfe von "autoUpgradeMinorVersion": true, automatisch aktualisiert werden:
"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"
]
},
Sie sollten für Ihre Bereitstellungen von Erweiterungen immer automatische Updates auswählen, um die neuesten kleineren Updates mit Bugfixes zu erhalten. Das Beziehen von Hotfixupdates mit Fixes für Sicherheitslücken oder große Bugs kann nicht gekündigt werden.
Wenn Sie automatische Updates deaktivieren oder eine Hauptversion upgraden müssen, verwenden Sie Set-AzVMExtension, und geben Sie die Zielversion an.
So identifizieren Sie Updates für Erweiterungen
Erkennen, ob die Erweiterung auf „autoUpgradeMinorVersion“ auf einer VM festgelegt ist
Sie können am VM-Modell erkennen, ob die Erweiterung mit autoUpgradeMinorVersion bereitgestellt wurde. Um dies zu überprüfen, verwenden Sie Get-AzVm, und geben Sie die Ressourcengruppe und den VM-Namen wie folgt an:
$vm = Get-AzVm -ResourceGroupName "myResourceGroup" -VMName "myVM"
$vm.Extensions
Die folgende Beispielausgabe zeigt, dass autoUpgradeMinorVersion auf true festgelegt ist:
ForceUpdateTag :
Publisher : Microsoft.Compute
VirtualMachineExtensionType : CustomScriptExtension
TypeHandlerVersion : 1.9
AutoUpgradeMinorVersion : True
Ermitteln, wann ein autoUpgradeMinorVersion-Ereignis aufgetreten ist
Um zu sehen, wann die Erweiterung aktualisiert wurde, überprüfen Sie die Protokolldatei des Agents auf der VM unter C:\WindowsAzure\Logs\WaAppAgent.log.
Im folgenden Beispiel wurde auf dem virtuellen Computer Microsoft.Compute.CustomScriptExtension mit der Version 1.8 installiert. Ein Hotfix für Version 1.9 war verfügbar.
[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'
Berechtigungen für Agents
Um seine Aufgaben auszuführen, muss der Agent als Lokales System ausgeführt werden.
Problembehandlung bei VM-Erweiterungen
Für jede VM-Erweiterung gibt es möglicherweise spezifische Schritte zur Problembehandlung. Wenn Sie beispielsweise die benutzerdefinierte Skripterweiterung verwenden, finden Sie Details zur Skriptausführung lokal auf der VM, auf der die Erweiterung ausgeführt wurde.
Die folgenden Aktionen zur Problembehandlung gelten für alle VM-Erweiterungen:
Um die Protokolldatei des Azure-VM-Agents zu überprüfen, sollten Sie die Aktivität bei der Bereitstellung der Erweiterung in C:\WindowsAzure\Logs\WaAppAgent.log näher betrachten.
Überprüfen Sie die Erweiterungsprotokolle unter C:\WindowsAzure\Logs\Plugins<extensionName> für weitere Einzelheiten.
Informationen zu Fehlercodes, bekannten Problemen und anderen erweiterungsspezifischen Informationen finden Sie in den Abschnitten zur Problembehandlung in der erweiterungsspezifischen Dokumentation.
Sehen Sie sich die Systemprotokolle an. Überprüfen Sie, ob es andere Vorgänge gab, die möglicherweise die Erweiterung beeinträchtigt haben, z. B. eine lange Installation einer anderen Anwendung, für die exklusiver Zugriff auf den Paket-Manager notwendig war.
Wenn auf einem virtuellen Computer eine Erweiterung mit dem Bereitstellungsstatus „Fehler“ vorhanden ist, kann keine andere neue Erweiterung installiert werden.
Häufige Ursachen für Fehler bei der Erweiterung
Erweiterungen haben 20 Minuten für die Ausführung. (Ausnahmen sind Custom Script, Chef und DSC mit 90 Minuten.) Wenn Ihre Bereitstellung diesen Zeitraum überschreitet, wird sie als Timeout gekennzeichnet. Die Ursache hierfür können VMs mit geringen Ressourcen sein, oder starker Ressourcenverbrauch durch andere VM-Konfigurationen oder Starttasks, während die Erweiterung versucht, die Bereitstellung durchzuführen.
Die Mindestvoraussetzungen werden nicht erfüllt. Einige Erweiterungen verfügen über VM-SKUs, z.B. HPC-Images. Erweiterungen können bestimmte Voraussetzungen für den Netzwerkzugriff erfordern, z. B. die Kommunikation mit Azure Storage oder öffentlichen Diensten. Andere Beispiele sind u.a. der Zugriff auf Paket-Repositorys, nahezu vollständig belegter Festplattenspeicher oder Sicherheitseinschränkungen.
Der Zugriff auf den Paket-Manager ist exklusiv. In einigen Fällen können eine lange ausgeführte VM-Konfiguration und die Installation der Erweiterung in Konflikt stehen, da beide exklusiven Zugriff auf den Paket-Manager benötigen.
Anzeigen des Erweiterungsstatus
Wenn eine VM-Erweiterung für einen virtuellen Computer ausgeführt wurde, können Sie mit Get-AzVM zum Erweiterungsstatus zurückkehren. Substatuses[0] zeigt an, dass die Bereitstellung der Erweiterung erfolgreich war, was bedeutet, dass sie erfolgreich auf dem virtuellen Computer bereitgestellt wurde. Substatuses[1] zeigt jedoch, dass bei der Ausführung der Erweiterung innerhalb der VM ein Fehler aufgetreten ist.
Get-AzVM -ResourceGroupName "myResourceGroup" -VMName "myVM" -Status
Die Ausgabe sieht in etwa wie das folgende Beispiel aus:
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
Der Ausführungsstatus von Erweiterungen finden Sie ebenfalls im Azure-Portal. Wählen Sie die VM, dann Erweiterungen und anschließend die gewünschte Erweiterung aus.
Erneutes Ausführen einer VM-Erweiterung
In manchen Fällen kann die erneute Ausführung einer VM-Erweiterung erforderlich sein. Sie können eine Erweiterung erneut ausführen, indem Sie sie entfernen und die Erweiterung dann mit einer Ausführungsmethode Ihrer Wahl erneut ausführen. Verwenden Sie zum Entfernen einer Erweiterung Remove-AzVMExtension wie folgt:
Remove-AzVMExtension -ResourceGroupName "myResourceGroup" -VMName "myVM" -Name "myExtensionName"
Sie können eine Erweiterung auch im Azure-Portal entfernen:
- Wählen Sie einen virtuellen Computer aus.
- Wählen Sie Erweiterungen.
- Wählen Sie die Erweiterung aus.
- Wählen Sie Deinstallieren aus.
Allgemeine VM-Erweiterungsreferenz
| Name der Erweiterung | BESCHREIBUNG |
|---|---|
| Benutzerdefinierte Skripterweiterung für Windows | Ausführen von Skripts für Azure-VMs. |
| DSC-Erweiterung für Windows | Wenden Sie PowerShell-Konfigurationen für den gewünschten Zustand auf einen virtuellen Computer an. |
| Azure-Diagnoseerweiterung | Verwalten der Azure-Diagnose. |
| VMAccess-Erweiterung | Verwalten von Benutzern und Anmeldeinformationen |
Nächste Schritte
Weitere Informationen zu VM-Erweiterungen finden Sie unter Erweiterungen und Features für Azure-VMs.