New-AzVMConfig
Создает настраиваемый объект виртуальной машины.
Синтаксис
New-AzVMConfig
[-VMName] <String>
[-VMSize] <String>
[[-AvailabilitySetId] <String>]
[[-LicenseType] <String>]
[-Zone <String[]>]
[-ProximityPlacementGroupId <String>]
[-HostId <String>]
[-VmssId <String>]
[-MaxPrice <Double>]
[-EvictionPolicy <String>]
[-Priority <String>]
[-Tags <Hashtable>]
[-EnableUltraSSD]
[-EncryptionAtHost]
[-CapacityReservationGroupId <String>]
[-ImageReferenceId <String>]
[-DiskControllerType <String>]
[-UserData <String>]
[-PlatformFaultDomain <Int32>]
[-HibernationEnabled]
[-vCPUCountAvailable <Int32>]
[-vCPUCountPerCore <Int32>]
[-SharedGalleryImageId <String>]
[-SecurityType <String>]
[-EnableVtpm <Boolean>]
[-EnableSecureBoot <Boolean>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzVMConfig
[-VMName] <String>
[-VMSize] <String>
[[-AvailabilitySetId] <String>]
[[-LicenseType] <String>]
[-IdentityType] <ResourceIdentityType>
[-IdentityId <String[]>]
[-Zone <String[]>]
[-ProximityPlacementGroupId <String>]
[-HostId <String>]
[-VmssId <String>]
[-MaxPrice <Double>]
[-EvictionPolicy <String>]
[-Priority <String>]
[-Tags <Hashtable>]
[-EnableUltraSSD]
[-EncryptionAtHost]
[-CapacityReservationGroupId <String>]
[-ImageReferenceId <String>]
[-DiskControllerType <String>]
[-UserData <String>]
[-PlatformFaultDomain <Int32>]
[-HibernationEnabled]
[-vCPUCountAvailable <Int32>]
[-vCPUCountPerCore <Int32>]
[-SharedGalleryImageId <String>]
[-SecurityType <String>]
[-EnableVtpm <Boolean>]
[-EnableSecureBoot <Boolean>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Описание
Командлет New-AzVMConfig создает настраиваемый объект локальной виртуальной машины для Azure.
Для задания различных свойств объекта виртуальной машины используются следующие командлеты:
- Add-AzVMNetworkInterface , чтобы задать сетевой профиль.
- Set-AzVMOperatingSystem , чтобы задать профиль ОС.
- Set-AzVMSourceImage , чтобы задать исходный образ.
- Set-AzVMOSDisk , чтобы задать диск ОС (профиль хранилища).
- Get-AzComputeResourceSku также можно использовать для определения доступных размеров виртуальных машин для подписки и региона.
Краткое руководство. Создание виртуальной машины Windows в Azure с помощью PowerShell для руководства.
Примеры
Пример 1. Создание ресурса виртуальной машины
$rgname = "resourceGroupName";
$loc = "eastus";
New-AzResourceGroup -Name $rgname -Location $loc -Force;
# General Setup
$vmname = 'v' + $rgname;
$domainNameLabel = "d1" + $rgname;
$vmSize = 'Standard_DS3_v2';
$computerName = "c" + $rgname;
$securityTypeStnd = "Standard";
# Credential. Input Username and Password values
$user = "";
$securePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force;
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
# Creating a VMConfig
$vmconfig = New-AzVMConfig -VMName $vmname -vmsize $vmsize -SecurityType $securityTypeStnd;
# Set source image values
$publisherName = "MicrosoftWindowsServer";
$offer = "WindowsServer";
$sku = "2019-DataCenter";
$vmconfig = Set-AzVMSourceImage -VM $vmconfig -PublisherName $publisherName -Offer $offer -Skus $sku -Version 'latest';
# NRP Setup
$subnet = New-AzVirtualNetworkSubnetConfig -Name ('subnet' + $rgname) -AddressPrefix "10.0.0.0/24";
$vnet = New-AzVirtualNetwork -Force -Name ('vnet' + $rgname) -ResourceGroupName $rgname -Location $loc -AddressPrefix "10.0.0.0/16" -Subnet $subnet;
$vnet = Get-AzVirtualNetwork -Name ('vnet' + $rgname) -ResourceGroupName $rgname;
$subnetId = $vnet.Subnets[0].Id;
$pubip = New-AzPublicIpAddress -Force -Name ('pubip' + $rgname) -ResourceGroupName $rgname -Location $loc -AllocationMethod Static -DomainNameLabel $domainNameLabel;
$pubip = Get-AzPublicIpAddress -Name ('pubip' + $rgname) -ResourceGroupName $rgname;
$pubipId = $pubip.Id;
$nic = New-AzNetworkInterface -Force -Name ('nic' + $rgname) -ResourceGroupName $rgname -Location $loc -SubnetId $subnetId -PublicIpAddressId $pubip.Id;
$nic = Get-AzNetworkInterface -Name ('nic' + $rgname) -ResourceGroupName $rgname;
$nicId = $nic.Id;
$vmconfig = Add-AzVMNetworkInterface -VM $vmconfig -Id $nicId;
$vmconfig = Set-AzVMOperatingSystem -VM $vmconfig -Windows -ComputerName $computerName -Credential $cred;
# Create the VM
New-AzVM -ResourceGroupName $rgname -Location $loc -Vm $vmconfig;
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmname;
Пример 2. Создание объекта виртуальной машины в масштабируемом наборе виртуальных машин с настройкой доменов сбоя
$rgname = "resourceGroupName";
$loc = "eastus";
$vmname = "vm" + $rgname;
New-AzResourceGroup -Name $rgname -Location $loc -Force;
$domainNameLabel = "d1" + $rgname;
$vmname = "v" + $rgname;
$vnetname = "myVnet";
$vnetAddress = "10.0.0.0/16";
$subnetname = "slb" + $rgname;
$subnetAddress = "10.0.2.0/24";
$vmssName = "vmss" + $rgname;
$faultDomainNumber = 2;
$vmssFaultDomain = 3;
$securityTypeStnd = "Standard";
$OSDiskName = $vmname + "-osdisk";
$NICName = $vmname+ "-nic";
$NSGName = $vmname + "-NSG";
$OSDiskSizeinGB = 128;
$VMSize = "Standard_DS2_v2";
$PublisherName = "MicrosoftWindowsServer";
$Offer = "WindowsServer";
$SKU = "2019-Datacenter";
# Credential. Input Username and Password values.
$user = "";
$securePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force;
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetname -AddressPrefix $subnetAddress;
$vnet = New-AzVirtualNetwork -Name $vnetname -ResourceGroupName $rgname -Location $loc -AddressPrefix $vnetAddress -Subnet $frontendSubnet;
$vmssConfig = New-AzVmssConfig -Location $loc -PlatformFaultDomainCount $vmssFaultDomain -SecurityType $securityTypeStnd;
$vmss = New-AzVmss -ResourceGroupName $RGName -Name $VMSSName -VirtualMachineScaleSet $vmssConfig;
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name RDP -Protocol Tcp -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow;
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $RGName -Location $loc -Name $NSGName -SecurityRules $nsgRuleRDP;
$nic = New-AzNetworkInterface -Name $NICName -ResourceGroupName $RGName -Location $loc -SubnetId $vnet.Subnets[0].Id -NetworkSecurityGroupId $nsg.Id -EnableAcceleratedNetworking;
# VM
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize $VMSize -VmssId $vmss.Id -PlatformFaultDomain $faultDomainNumber -SecurityType $securityTypeStnd;
Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmName -Credential $cred ;
Set-AzVMOSDisk -VM $vmConfig -StorageAccountType "Premium_LRS" -Caching ReadWrite -Name $OSDiskName -DiskSizeInGB $OSDiskSizeinGB -CreateOption FromImage ;
Set-AzVMSourceImage -VM $vmConfig -PublisherName $PublisherName -Offer $Offer -Skus $SKU -Version latest ;
Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id;
New-AzVM -ResourceGroupName $RGName -Location $loc -VM $vmConfig;
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmName;
Пример 2. Создание виртуальной машины с помощью объекта конфигурации виртуальной машины для типа безопасности TrustedLaunch, флаги Vtpm и Безопасная загрузка по умолчанию имеют значение True.
$rgname = "rgname";
$loc = "eastus";
New-AzResourceGroup -Name $rgname -Location $loc -Force;
# VM Profile & Hardware
$domainNameLabel = "d1" + $rgname;
$vmsize = 'Standard_D4s_v3';
$vmname = $rgname + 'Vm';
$securityType_TL = "TrustedLaunch";
$vnetname = "myVnet";
$vnetAddress = "10.0.0.0/16";
$subnetname = "slb" + $rgname;
$subnetAddress = "10.0.2.0/24";
$OSDiskName = $vmname + "-osdisk";
$NICName = $vmname+ "-nic";
$NSGName = $vmname + "-NSG";
$OSDiskSizeinGB = 128;
$PublisherName = "MicrosoftWindowsServer";
$Offer = "WindowsServer";
$SKU = "2016-datacenter-gensecond";
$disable = $false;
$enable = $true;
$extDefaultName = "GuestAttestation";
$vmGADefaultIDentity = "SystemAssigned";
# Credential
$securePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force;
$user = <Username>;
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
# Network resources
$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetname -AddressPrefix $subnetAddress;
$vnet = New-AzVirtualNetwork -Name $vnetname -ResourceGroupName $rgname -Location $loc -AddressPrefix $vnetAddress -Subnet $frontendSubnet;
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name RDP -Protocol Tcp -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow;
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $rgname -Location $loc -Name $NSGName -SecurityRules $nsgRuleRDP;
$nic = New-AzNetworkInterface -Name $NICName -ResourceGroupName $rgname -Location $loc -SubnetId $vnet.Subnets[0].Id -NetworkSecurityGroupId $nsg.Id -EnableAcceleratedNetworking;
# Configure Values using VMConfig Object
$vmConfig = New-AzVMConfig -VMName $vmname -VMSize $vmsize;
Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmname -Credential $cred;
Set-AzVMSourceImage -VM $vmConfig -PublisherName $PublisherName -Offer $Offer -Skus $SKU -Version latest ;
Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id;
# VM Creation using VMConfig for Trusted Launch SecurityType
$vmConfig = Set-AzVMSecurityProfile -VM $vmConfig -SecurityType $securityType_TL;
New-AzVM -ResourceGroupName $rgname -Location $loc -VM $vmConfig;
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmname;
# Validate that for -SecurityType "TrustedLaunch", "-Vtpm" and "-SecureBoot" are "Enabled/true"
#$vm.SecurityProfile.UefiSettings.VTpmEnabled $true;
#$vm.SecurityProfile.UefiSettings.SecureBootEnabled $true;
В этом примере создается виртуальная машина с помощью объекта VMConfig для типа безопасности TrustedLaunch и проверяет флаги VtpmEnabled и SecureBootEnabled по умолчанию.
Параметры
-AvailabilitySetId
Указывает идентификатор группы доступности.
Чтобы получить объект группы доступности, используйте командлет Get-AzAvailabilitySet.
Объект группы доступности содержит свойство ID.
Виртуальные машины, указанные в одном наборе доступности, выделяются различным узлам для обеспечения максимальной доступности.
Дополнительные сведения о группах доступности см. в разделе "Управление доступностью виртуальных машин".
Дополнительные сведения о плановом обслуживании Azure см. в статье Плановое обслуживание виртуальных машин в Azure
В настоящее время виртуальная машина может быть добавлена только в группу доступности во время создания. Группа доступности, к которой добавляется виртуальная машина, должна находиться в той же группе ресурсов, что и ресурс группы доступности. Существующую виртуальную машину нельзя добавить в группу доступности.
Это свойство не может существовать вместе со ссылкой ненулевого свойства.virtualMachineScaleSet.
Тип: | String |
Position: | 2 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-CapacityReservationGroupId
Идентификатор группы резервирования емкости, используемой для выделения.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-DefaultProfile
Учетные данные, учетная запись, клиент и подписка, используемые для обмена данными с Azure.
Тип: | IAzureContextContainer |
Aliases: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-DiskControllerType
Указывает тип контроллера диска, настроенный для виртуальной машины и VirtualMachineScaleSet. Это свойство поддерживается только для виртуальных машин, диски операционной системы и SKU виртуальной машины которого поддерживают поколение 2 (https://learn.microsoft.com/en-us/azure/virtual-machines/generation-2), проверьте возможность HyperVGenerations, возвращенную в рамках возможностей SKU виртуальной машины в ответ api SKU Microsoft.Compute для региона содержит версию 2 (https://learn.microsoft.com/rest/api/compute/resourceskus/list).
Дополнительные сведения о поддерживаемых типах контроллеров дисков см. в статье https://aka.ms/azure-diskcontrollertypes.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-EnableSecureBoot
Указывает, следует ли включить безопасную загрузку на виртуальной машине.
Тип: | Nullable<T>[Boolean] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-EnableUltraSSD
Позволяет использовать один или несколько управляемых дисков данных с типом учетной записи хранения UltraSSD_LRS на виртуальной машине. Управляемые диски с типом учетной записи хранения UltraSSD_LRS можно добавить на виртуальную машину только в том случае, если это свойство включено.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-EnableVtpm
Указывает, следует ли включить vTPM на виртуальной машине.
Тип: | Nullable<T>[Boolean] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-EncryptionAtHost
Свойство EncryptionAtHost может использоваться пользователем в запросе, чтобы включить или отключить шифрование узла для виртуальной машины или масштабируемого набора виртуальных машин. Это позволит включить шифрование для всех дисков, включая диск Resource/Temp на самом узле. Значение по умолчанию: шифрование на узле будет отключено, если для ресурса не задано значение true.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-EvictionPolicy
Политика вытеснения для виртуальной машины Azure Spot. Поддерживаемые значения: "Deallocate" и "Delete".
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-HibernationEnabled
Флаг, который включает или отключает возможность гибернации на виртуальной машине.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-HostId
Идентификатор узла
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-IdentityId
Указывает список удостоверений пользователей, связанных с масштабируемым набором виртуальных машин. Ссылки на удостоверения пользователя будут идентификаторами ресурсов ARM в форме: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identityes/{identityName}"
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-IdentityType
Удостоверение виртуальной машины, если настроено.
Тип: | Nullable<T>[ResourceIdentityType] |
Допустимые значения: | SystemAssigned, UserAssigned, SystemAssignedUserAssigned, None |
Position: | 4 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ImageReferenceId
Укажите уникальный идентификатор образа общей коллекции для развертывания виртуальной машины. Это можно получить из вызова GET образа общей коллекции.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-LicenseType
Указывает тип лицензии, указывающий, что образ или диск виртуальной машины лицензирован локально. Возможные значения для Windows Server:
- Windows_Client
- Windows_Server
Возможные значения операционной системы Linux Server:
- RHEL_BYOS (для RHEL)
- SLES_BYOS (для SUSE)
Тип: | String |
Position: | 3 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-MaxPrice
Указывает максимальную цену, которую вы готовы платить за низкоприоритетную виртуальную машину или vmSS. Эта цена находится в долларах США. Эта цена будет сравниваться с текущей низкоприоритетной ценой для размера виртуальной машины. Кроме того, цены сравниваются во время создания и обновления низкоприоритетной виртуальной машины/VMSS, а операция будет выполнена только в том случае, если максимальная цена превышает текущую цену с низким приоритетом. MaxPrice также будет использоваться для вытеснения низкоприоритетной виртуальной машины/VMSS, если текущая цена с низким приоритетом выходит за пределы maxPrice после создания vm/VMSS. Возможные значения: любое десятичное значение больше нуля. Пример: 0.01538. -1 указывает, что не следует вытеснить низкоприоритетную виртуальную машину или vmSS по соображениям цен. Кроме того, максимальная цена по умолчанию составляет -1, если она не предоставляется вами.
Тип: | Double |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-PlatformFaultDomain
Указывает домен сбоя виртуальной машины.
Тип: | Int32 |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Priority
Приоритет виртуальной машины. Поддерживаются только значения "Regular", "Spot" и "Low". "Обычный" предназначен для обычной виртуальной машины. "Spot" предназначен для точечных виртуальных машин. "Низкий" также предназначен для точечных виртуальных машин, но заменяется на "Spot". Используйте "Spot" вместо "Low".
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-ProximityPlacementGroupId
Идентификатор ресурса группы размещения близкого взаимодействия для использования с этой виртуальной машиной.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-SecurityType
Указывает тип безопасности виртуальной машины. Для включения UefiSettings необходимо задать любое указанное значение. По умолчанию UefiSettings не будет включен, если это свойство не задано.
Тип: | String |
Допустимые значения: | TrustedLaunch, ConfidentialVM, Standard |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-SharedGalleryImageId
Укажите уникальный идентификатор образа общей коллекции для развертывания виртуальной машины. Это можно получить из вызова GET образа общей коллекции.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Tags
Теги, присоединенные к ресурсу.
Тип: | Hashtable |
Aliases: | Tag |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-UserData
UserData для виртуальной машины, которая будет закодирована в кодировке base-64. Клиент не должен передавать здесь какие-либо секреты.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-vCPUCountAvailable
Указывает количество виртуальных ЦП, доступных для виртуальной машины. Если это свойство не указано в тексте запроса, поведение по умолчанию — задать для него значение виртуальных ЦП, доступных для этого размера виртуальной машины, предоставляемого в ответе API списка всех доступных размеров виртуальных машин в регионе.
Тип: | Int32 |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-vCPUCountPerCore
Указывает отношение виртуальных ЦП к физическому ядру. Если это свойство не указано в тексте запроса, поведение по умолчанию присваивается значению vCPUsPerCore для размера виртуальной машины, предоставленного в ответе API списка всех доступных размеров виртуальных машин в регионе. При установке этого свойства значение 1 также означает, что гиперпоток отключен.
Тип: | Int32 |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-VMName
Указывает имя виртуальной машины.
Тип: | String |
Aliases: | ResourceName, Name |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-VMSize
Указывает размер виртуальной машины. Get-AzComputeResourceSku можно использовать для определения доступных размеров подписки и региона.
Тип: | String |
Position: | 1 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-VmssId
Идентификатор масштабируемого набора виртуальных машин
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Zone
Указывает зону доступности для виртуальной машины. Хотя она принимает массив зон, виртуальные машины не поддерживают несколько зон доступности. Допустимое значение зависит от возможностей региона. Допустимое значение обычно равно 1, 2 или 3. Дополнительные сведения о зонах доступности Azure.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
Входные данные
String[]