Rozszerzenia maszyn wirtualnych i funkcje systemu WindowsVirtual machine extensions and features for Windows

Rozszerzenia maszyny wirtualnej platformy Azure są małe aplikacji, które mają po wdrożeniu i automatyzację zadań na maszynach wirtualnych Azure.Azure virtual machine extensions are small applications that provide post-deployment configuration and automation tasks on Azure virtual machines. Na przykład jeśli maszyna wirtualna wymaga instalacji oprogramowania, ochrony oprogramowania antywirusowego lub Docker konfiguracji, rozszerzenia maszyny Wirtualnej może służyć do wykonania tych zadań.For example, if a virtual machine requires software installation, anti-virus protection, or Docker configuration, a VM extension can be used to complete these tasks. Rozszerzenia maszyny Wirtualnej platformy Azure można uruchomić przy użyciu wiersza polecenia platformy Azure, programu PowerShell, szablonów usługi Azure Resource Manager i portalu Azure.Azure VM extensions can be run by using the Azure CLI, PowerShell, Azure Resource Manager templates, and the Azure portal. Rozszerzenia mogą powiązany z nowego wdrożenia maszyny wirtualnej lub uruchomienia dowolnego istniejącego systemu.Extensions can be bundled with a new virtual machine deployment or run against any existing system.

Ten dokument zawiera omówienie rozszerzeń maszyny wirtualnej, wymagań wstępnych dotyczących używania rozszerzenia maszyny wirtualnej i wskazówki dotyczące sposobu wykrywania, zarządzanie i usuwanie rozszerzenia maszyny wirtualnej.This document provides an overview of virtual machine extensions, prerequisites for using virtual machine extensions, and guidance on how to detect, manage, and remove virtual machine extensions. Ten dokument zawiera informacje uogólniony wielu rozszerzeń maszyny Wirtualnej nie są dostępne, każde z nich potencjalnie unikatowych konfiguracji.This document provides generalized information because many VM extensions are available, each with a potentially unique configuration. Szczegółów dotyczących poszczególnych rozszerzeń można znaleźć w każdy dokument specyficzne dla poszczególnych rozszerzenia.Extension-specific details can be found in each document specific to the individual extension.

Przypadki użycia i przykładyUse cases and samples

Istnieje wiele różnych rozszerzeń maszyny Wirtualnej platformy Azure, każde z nich określony przypadek użycia.There are many different Azure VM extensions available, each with a specific use case. Niektóre przykładowe przypadki użycia są:Some example use cases are:

Oprócz rozszerzenia procesu rozszerzenia niestandardowego skryptu jest dostępna dla maszyn wirtualnych w systemach Windows i Linux.In addition to process-specific extensions, a Custom Script extension is available for both Windows and Linux virtual machines. Rozszerzenia niestandardowego skryptu dla systemu Windows umożliwia dowolny skrypt programu PowerShell do uruchamiania na maszynie wirtualnej.The Custom Script extension for Windows allows any PowerShell script to be run on a virtual machine. Jest to przydatne podczas projektowania wdrożeń platformy Azure, które wymagają konfiguracji oprócz zapewniają jakie natywnego narzędzia Azure.This is useful when you're designing Azure deployments that require configuration beyond what native Azure tooling can provide. Aby uzyskać więcej informacji, zobacz rozszerzenie skryptu niestandardowego maszyny Wirtualnej systemu Windows.For more information, see Windows VM Custom Script extension.

Wymagania wstępnePrerequisites

Każde rozszerzenie maszyny wirtualnej może mieć własny zestaw wymagań wstępnych.Each virtual machine extension may have its own set of prerequisites. Dla wystąpienia rozszerzenia maszyny Wirtualnej platformy Docker jest wymaganiem wstępnym obsługiwanych dystrybucji systemu Linux.For instance, the Docker VM extension has a prerequisite of a supported Linux distribution. Wymagania dotyczące poszczególnych rozszerzeń są szczegółowo opisane w dokumentacji specyficzne dla rozszerzenia.Requirements of individual extensions are detailed in the extension-specific documentation.

Agent maszyny wirtualnej platformy AzureAzure VM agent

Agent maszyny Wirtualnej platformy Azure zarządza interakcji między maszyny wirtualnej platformy Azure i kontroler sieci szkieletowej Azure.The Azure VM agent manages interaction between an Azure virtual machine and the Azure fabric controller. Agent maszyny Wirtualnej jest odpowiedzialny za dużo aspekty funkcjonalne, wdrażania i zarządzania maszynami wirtualnymi platformy Azure, łącznie z rozszerzeniami maszyny Wirtualnej.The VM agent is responsible for many functional aspects of deploying and managing Azure virtual machines, including running VM extensions. Agent maszyny Wirtualnej platformy Azure jest preinstalowany na portalu Azure Marketplace obrazów i można zainstalować w obsługiwanych systemach operacyjnych.The Azure VM agent is preinstalled on Azure Marketplace images and can be installed on supported operating systems.

Aby uzyskać informacje dotyczące obsługiwanych systemów operacyjnych i instrukcje dotyczące instalacji, zobacz agenta maszyny wirtualnej platformy Azure.For information on supported operating systems and installation instructions, see Azure virtual machine agent.

Odnajdywanie rozszerzeń maszyny WirtualnejDiscover VM extensions

Wiele różnych rozszerzeń maszyny Wirtualnej są dostępne do użycia z maszyn wirtualnych platformy Azure.Many different VM extensions are available for use with Azure virtual machines. Aby wyświetlić pełną listę, uruchom następujące polecenie z modułu programu PowerShell usługi Azure Resource Manager.To see a complete list, run the following command with the Azure Resource Manager PowerShell module. Upewnij się, że określ żądaną lokalizację po uruchomieniu tego polecenia.Make sure to specify the desired location when you're running this command.

Get-AzureRmVmImagePublisher -Location WestUS | `
Get-AzureRmVMExtensionImageType | `
Get-AzureRmVMExtensionImage | Select Type, Version

Uruchom rozszerzeń maszyny WirtualnejRun VM extensions

Rozszerzenia maszyny wirtualnej platformy Azure może działać w istniejących maszyn wirtualnych, co jest przydatne, gdy trzeba wprowadzić zmiany w konfiguracji lub Przywróć łączność w przypadku wdrożonej maszyny Wirtualnej.Azure virtual machine extensions can be run on existing virtual machines, which is useful when you need to make configuration changes or recover connectivity on an already deployed VM. Rozszerzenia maszyny Wirtualnej dołączany także wdrażanie szablonów usługi Azure Resource Manager.VM extensions can also be bundled with Azure Resource Manager template deployments. Za pomocą rozszerzeń z szablonami usługi Resource Manager, można włączyć maszyn wirtualnych platformy Azure wdrożyć i skonfigurować bez konieczności interwencji po wdrożeniu.By using extensions with Resource Manager templates, you can enable Azure virtual machines to be deployed and configured without the need for post-deployment intervention.

Następujących metod można uruchomić rozszerzenia dla istniejącej maszyny wirtualnej.The following methods can be used to run an extension against an existing virtual machine.

PowerShellPowerShell

Istnieje kilka poleceń programu PowerShell do uruchamiania poszczególnych rozszerzeń.Several PowerShell commands exist for running individual extensions. Umożliwia wyświetlenie listy, uruchom następujące polecenia programu PowerShell.To see a list, run the following PowerShell commands.

get-command Set-AzureRM*Extension* -Module AzureRM.Compute

Zapewnia to dane wyjściowe podobne do następującego:This provides output similar to the following:

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Set-AzureRmVMAccessExtension                       2.2.0      AzureRM.Compute
Cmdlet          Set-AzureRmVMADDomainExtension                     2.2.0      AzureRM.Compute
Cmdlet          Set-AzureRmVMAEMExtension                          2.2.0      AzureRM.Compute
Cmdlet          Set-AzureRmVMBackupExtension                       2.2.0      AzureRM.Compute
Cmdlet          Set-AzureRmVMBginfoExtension                       2.2.0      AzureRM.Compute
Cmdlet          Set-AzureRmVMChefExtension                         2.2.0      AzureRM.Compute
Cmdlet          Set-AzureRmVMCustomScriptExtension                 2.2.0      AzureRM.Compute
Cmdlet          Set-AzureRmVMDiagnosticsExtension                  2.2.0      AzureRM.Compute
Cmdlet          Set-AzureRmVMDiskEncryptionExtension               2.2.0      AzureRM.Compute
Cmdlet          Set-AzureRmVMDscExtension                          2.2.0      AzureRM.Compute
Cmdlet          Set-AzureRmVMExtension                             2.2.0      AzureRM.Compute
Cmdlet          Set-AzureRmVMSqlServerExtension                    2.2.0      AzureRM.Compute

W poniższym przykładzie użyto rozszerzenia niestandardowego skryptu do pobrania skryptu z repozytorium GitHub na docelowej maszynie wirtualnej, a następnie uruchom skrypt.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. Aby uzyskać więcej informacji dotyczących rozszerzenia niestandardowego skryptu, zobacz Omówienie rozszerzenia niestandardowego skryptu.For more information on the Custom Script extension, see Custom Script extension overview.

Set-AzureRmVMCustomScriptExtension -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"

W tym przykładzie rozszerzenia dostępu do maszyny Wirtualnej służy do resetowania hasła administracyjnego maszyny wirtualnej systemu Windows.In this example, the VM Access extension is used to reset the administrative password of a Windows virtual machine. Aby uzyskać więcej informacji dotyczących rozszerzenia dostępu do maszyny Wirtualnej, zobacz usługi pulpitu zdalnego resetowania na maszynie wirtualnej Windows.For more information on the VM Access extension, see Reset Remote Desktop service in a Windows VM.

$cred=Get-Credential

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

Set-AzureRmVMExtension Polecenia można uruchomić wszystkie rozszerzenia maszyny Wirtualnej.The Set-AzureRmVMExtension command can be used to start any VM extension. Aby uzyskać więcej informacji, zobacz odwołania zestawu AzureRmVMExtension.For more information, see the Set-AzureRmVMExtension reference.

Azure PortalAzure portal

Rozszerzenia maszyny Wirtualnej może odnosić się do istniejącej maszyny wirtualnej za pośrednictwem portalu Azure.A VM extension can be applied to an existing virtual machine through the Azure portal. Aby to zrobić, wybierz maszynę wirtualną, aby użyć, wybierz rozszerzeniai kliknij przycisk Dodaj.To do so, select the virtual machine you want to use, choose Extensions, and click Add. Zapewnia to listę dostępnych rozszerzeń.This provides a list of available extensions. Wybierz jedną, mają i postępuj zgodnie z instrukcjami kreatora.Select the one you want and follow the steps in the wizard.

Na poniższej ilustracji przedstawiono instalacja rozszerzenia Microsoft Antimalware z portalu Azure.The following image shows the installation of the Microsoft Antimalware extension from the Azure portal.

Zainstaluj rozszerzenie ochrony przed złośliwym oprogramowaniem

Szablony usługi Azure Resource ManagerAzure Resource Manager templates

Rozszerzenia maszyny Wirtualnej można dodać do szablonu usługi Azure Resource Manager i wykonywane przy użyciu wdrażania szablonu.VM extensions can be added to an Azure Resource Manager template and executed with the deployment of the template. Wdrażanie rozszerzeń przy użyciu szablonu jest przydatne w przypadku tworzenia wdrożeń platformy Azure w pełni skonfigurowany.Deploying extensions with a template is useful for creating fully configured Azure deployments. Na przykład następujący kod JSON jest pobierana z szablonem usługi Resource Manager, który wdraża zestaw maszyn wirtualnych z równoważeniem obciążenia i bazy danych Azure SQL, a następnie instaluje aplikację .NET Core na każdej maszynie Wirtualnej.For example, the following JSON is taken from a Resource Manager template that deploys a set of load-balanced virtual machines and an Azure SQL database, and then installs a .NET Core application on each VM. Rozszerzenia maszyny Wirtualnej zapewnia obsługę instalacji oprogramowania.The VM extension takes care of the software installation.

Aby uzyskać więcej informacji, zobacz pełne szablonu usługi 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.4",
    "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')]"
    }
    }
}

Aby uzyskać więcej informacji, zobacz szablony Authoring Azure Resource Manager z rozszerzeniami maszyny Wirtualnej systemu Windows.For more information, see Authoring Azure Resource Manager templates with Windows VM extensions.

Zabezpieczanie danych rozszerzenia maszyny WirtualnejSecure VM extension data

Jeśli korzystasz z rozszerzenia maszyny Wirtualnej, może być konieczne jest stosowanie poufne informacje, takie jak poświadczeń, nazwy konta magazynu i klucze dostępu do konta magazynu.When you're running a VM extension, it may be necessary to include sensitive information such as credentials, storage account names, and storage account access keys. Wiele rozszerzeń maszyny Wirtualnej obejmują konfiguracji chronionych danych i tylko odszyfrowującego wewnątrz docelowej maszyny wirtualnej.Many VM extensions include a protected configuration that encrypts data and only decrypts it inside the target virtual machine. Każde rozszerzenie ma używającym w dokumentacji konkretnego rozszerzenia schematu określonej konfiguracji chronionych.Each extension has a specific protected configuration schema that will be detailed in extension-specific documentation.

W poniższym przykładzie przedstawiono wystąpienia rozszerzenia niestandardowego skryptu dla systemu Windows.The following example shows an instance of the Custom Script extension for Windows. Zwróć uwagę, że polecenie do wykonania zawiera zestaw poświadczeń.Notice that the command to execute includes a set of credentials. W tym przykładzie wykonanie polecenia nie będą szyfrowane.In this example, the command to execute will not be 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.4",
    "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')]"
    }
    }
}

Bezpieczny ciąg wykonywania przez przeniesienie polecenie do wykonania właściwości chronione konfiguracji.Secure the execution string by moving the command to execute property to the protected configuration.

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

Rozwiązywanie problemów z rozszerzeń maszyny WirtualnejTroubleshoot VM extensions

Każde rozszerzenie maszyny Wirtualnej może być określone kroki rozwiązywania problemów.Each VM extension may have specific troubleshooting steps. Na przykład podczas korzystania z rozszerzenia niestandardowego skryptu, szczegóły wykonywania skryptu można znaleźć lokalnie na maszynie wirtualnej, na którym uruchomiono rozszerzenia.For instance, when you're using the Custom Script extension, script execution details can be found locally on the virtual machine on which the extension was run. Wszystkie kroki rozwiązywania problemów specyficzne dla rozszerzenia są szczegółowo opisane w dokumentacji specyficzne dla rozszerzenia.Any extension-specific troubleshooting steps are detailed in extension-specific documentation.

Następujące kroki dotyczą wszystkich rozszerzeń maszyny wirtualnej.The following troubleshooting steps apply to all virtual machine extensions.

Wyświetl stan rozszerzeniaView extension status

Po uruchomieniu rozszerzenie maszyny wirtualnej na maszynie wirtualnej, użyj następującego polecenia programu PowerShell, aby zwrócić stan rozszerzenia.After a virtual machine extension has been run against a virtual machine, use the following PowerShell command to return extension status. Zastąp przykładowe nazwy parametrów własne wartości.Replace example parameter names with your own values. Name Parametr przyjmuje Nazwa rozszerzenia w czasie wykonywania.The Name parameter takes the name given to the extension at execution time.

Get-AzureRmVMExtension -ResourceGroupName myResourceGroup -VMName myVM -Name myExtensionName

Dane wyjściowe wygląda następująco:The output looks like the following:

ResourceGroupName       : myResourceGroup
VMName                  : myVM
Name                    : myExtensionName
Location                : westus
Etag                    : null
Publisher               : Microsoft.Azure.Extensions
ExtensionType           : DockerExtension
TypeHandlerVersion      : 1.0
Id                      : /subscriptions/mySubscriptionIS/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM/extensions/myExtensionName
PublicSettings          :
ProtectedSettings       :
ProvisioningState       : Succeeded
Statuses                :
SubStatuses             :
AutoUpgradeMinorVersion : False
ForceUpdateTag          :

Stan wykonania rozszerzenia można znaleźć w portalu Azure.Extension execution status can also be found in the Azure portal. Aby wyświetlić stan rozszerzenia, wybierz maszynę wirtualną, wybierz polecenie rozszerzeniai wybierz żądane rozszerzenie.To view the status of an extension, select the virtual machine, choose Extensions, and select the desired extension.

Uruchom ponownie rozszerzeń maszyny WirtualnejRerun VM extensions

Może to być przypadkach, w których można ponownie uruchomić wymaga rozszerzenia maszyny wirtualnej.There may be cases in which a virtual machine extension needs to be rerun. Można to zrobić, usuwając rozszerzenie, a następnie ponowne uruchomienie rozszerzenia metodą wykonywania wybranych przez użytkownika.You can do this by removing the extension and then rerunning the extension with an execution method of your choice. Aby usunąć rozszerzenie, uruchom następujące polecenie z modułu Azure PowerShell.To remove an extension, run the following command with the Azure PowerShell module. Zastąp przykładowe nazwy parametrów własne wartości.Replace example parameter names with your own values.

Remove-AzureRmVMExtension -ResourceGroupName myResourceGroup -VMName myVM -Name myExtensionName

Rozszerzenie może zostać także usunięty przy użyciu portalu Azure.An extension can also be removed using the Azure portal. W tym celu:To do so:

  1. Wybierz maszynę wirtualną.Select a virtual machine.
  2. Wybierz rozszerzenia.Select Extensions.
  3. Wybierz żądane rozszerzenie.Choose the desired extension.
  4. Wybierz odinstalować.Select Uninstall.

Typowe odwołanie do rozszerzenia maszyny WirtualnejCommon VM extensions reference

Nazwa rozszerzeniaExtension name OpisDescription Więcej informacjiMore information
Niestandardowe rozszerzenie skryptu dla systemu WindowsCustom Script Extension for Windows Uruchom skrypty przed maszyny wirtualnej platformy AzureRun scripts against an Azure virtual machine Niestandardowe rozszerzenie skryptu dla systemu WindowsCustom Script Extension for Windows
Rozszerzenia konfiguracji DSC dla systemu WindowsDSC Extension for Windows Rozszerzenia DSC (konfiguracji żądanego stanu) programu PowerShellPowerShell DSC (Desired State Configuration) Extension Rozszerzenia konfiguracji DSC dla systemu WindowsDSC Extension for Windows
Rozszerzenie Diagnostyki AzureAzure Diagnostics Extension Zarządzanie Diagnostyka AzureManage Azure Diagnostics Rozszerzenie diagnostyki platformy AzureAzure Diagnostics Extension
Rozszerzenia dostępu do maszyny Wirtualnej platformy AzureAzure VM Access Extension Zarządzaj użytkownikami i poświadczeniaManage users and credentials Rozszerzenia dostępu do maszyny Wirtualnej dla systemu LinuxVM Access Extension for Linux