New-AzVMConfig

Vytvoří konfigurovatelný objekt virtuálního počítače.

Syntax

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>]

Description

Rutina New-AzVMConfig vytvoří konfigurovatelný objekt místního virtuálního počítače pro Azure.

Následující rutiny slouží k nastavení různých vlastností objektu virtuálního počítače:

Příklady

Příklad 1: Vytvoření prostředku virtuálního počítače

$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 -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;

Příklad 2: Vytvoření objektu virtuálního počítače ve škálovací sadě virtuálních počítačů s nastavením domén selhání

$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 -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;

Příklad 2: Vytvoření virtuálního počítače pomocí objektu konfigurace virtuálního počítače pro typ zabezpečení TrustedLaunch, příznaky Vtpm a Zabezpečené spouštění jsou ve výchozím nastavení nastaveny na Hodnotu 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
$password = <Password>;
$securePassword = $password | ConvertTo-SecureString -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;

Tento příklad vytvoří virtuální počítač pomocí objektu VMConfig pro typ zabezpečení TrustedLaunch a ověří příznaky VtpmEnabled a SecureBootEnabled jsou ve výchozím nastavení pravdivé.

Parametry

-AvailabilitySetId

Určuje ID skupiny dostupnosti. K získání objektu skupiny dostupnosti použijte rutinu Get-AzAvailabilitySet. Objekt skupiny dostupnosti obsahuje vlastnost ID.
Virtuální počítače zadané ve stejné skupině dostupnosti se přidělují různým uzlům, aby se maximalizovala dostupnost.
Další informace o skupinách dostupnosti najdete v tématu Správa dostupnosti virtuálních počítačů.
Další informace o plánované údržbě Azure najdete v tématu Plánovaná údržba virtuálních počítačů v Azure.
V současné době je možné virtuální počítač přidat pouze do skupiny dostupnosti při vytváření. Skupina dostupnosti, do které se virtuální počítač přidává, by měla být ve stejné skupině prostředků jako prostředek skupiny dostupnosti. Existující virtuální počítač nelze přidat do skupiny dostupnosti.
Tato vlastnost nemůže existovat spolu s odkazem na vlastnosti non-null.virtualMachineScaleSet.

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-CapacityReservationGroupId

ID skupiny rezervací kapacity, která se používá k přidělení.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

Přihlašovací údaje, účet, tenant a předplatné používané ke komunikaci s Azure.

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DiskControllerType

Určuje typ řadiče disku nakonfigurovaného pro virtuální počítač a VirtualMachineScaleSet. Tato vlastnost je podporována pouze pro virtuální počítače, jejichž disk s operačním systémem a skladová položka virtuálního počítače podporují generaci 2 (https://learn.microsoft.com/en-us/azure/virtual-machines/generation-2), zkontrolujte, jestli funkce HyperVGenerations vrácená jako součást možností skladové položky virtuálního počítače v reakci na rozhraní API skladových položek Microsoft.Compute pro tuto oblast obsahuje V2 (https://learn.microsoft.com/rest/api/compute/resourceskus/list).
Další informace o podporovaných typech řadiče disku naleznete v tématu https://aka.ms/azure-diskcontrollertypes.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnableSecureBoot

Určuje, jestli má být na virtuálním počítači povolené zabezpečené spouštění.

Type:Nullable<T>[Boolean]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EnableUltraSSD

Umožňuje mít na virtuálním počítači jeden nebo více spravovaných datových disků s typem účtu úložiště UltraSSD_LRS. Spravované disky s typem účtu úložiště UltraSSD_LRS lze přidat do virtuálního počítače pouze v případě, že je tato vlastnost povolená.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EnableVtpm

Určuje, jestli má být na virtuálním počítači povolený virtuální počítač vTPM.

Type:Nullable<T>[Boolean]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EncryptionAtHost

Vlastnost EncryptionAtHost může uživatel v požadavku použít k povolení nebo zakázání šifrování hostitele pro virtuální počítač nebo škálovací sadu virtuálních počítačů. Tím povolíte šifrování pro všechny disky, včetně samotného prostředku nebo dočasného disku v hostiteli. Výchozí: Šifrování v hostiteli bude zakázáno, pokud není tato vlastnost nastavena na hodnotu true pro prostředek.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EvictionPolicy

Zásady vyřazení pro spotový virtuální počítač Azure Podporované hodnoty jsou Deallocate (Uvolnit) a Delete (Odstranit).

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-HibernationEnabled

Příznak, který povolí nebo zakáže funkci hibernace na virtuálním počítači.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-HostId

ID hostitele

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-IdentityId

Určuje seznam identit uživatelů přidružených ke škálovací sadě virtuálních počítačů. Odkazy na identitu uživatele budou ID prostředků ARM ve formuláři: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identityies/{identityName}.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-IdentityType

Identita virtuálního počítače, pokud je nakonfigurovaná.

Type:Nullable<T>[ResourceIdentityType]
Accepted values:SystemAssigned, UserAssigned, SystemAssignedUserAssigned, None
Position:4
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ImageReferenceId

Zadali jste jedinečné ID image sdílené galerie pro nasazení virtuálního počítače. To se dá načíst z volání GET sdíleného obrázku galerie.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LicenseType

Určuje typ licence, který označuje, že image nebo disk virtuálního počítače byly licencované místně. Možné hodnoty pro Windows Server jsou:

  • Windows_Client
  • Windows_Server

Možné hodnoty operačního systému Linux Server jsou:

  • RHEL_BYOS (pro RHEL)
  • SLES_BYOS (pro SUSE)
Type:String
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaxPrice

Určuje maximální cenu, kterou jste ochotni zaplatit za virtuální počítač s nízkou prioritou nebo za VMSS. Tato cena je v amerických dolarech. Tato cena se porovná s aktuální cenou za nízkou prioritu pro velikost virtuálního počítače. Ceny se také porovnávají v době vytvoření/aktualizace virtuálního počítače nebo VMSS s nízkou prioritou a operace bude úspěšná, pouze pokud je maximální cena vyšší než aktuální cena za nízkou prioritu. Hodnota maxPrice se použije také k vyřazení virtuálního počítače s nízkou prioritou nebo služby VMSS, pokud aktuální cena s nízkou prioritou po vytvoření VM/VMSS překročí maximální cenu. Možné hodnoty jsou: jakákoli desetinná hodnota větší než nula. Příklad: 0.01538. -1 označuje, že virtuální počítač s nízkou prioritou nebo VMSS by neměl být vyřazen z důvodů ceny. Výchozí maximální cena je také -1, pokud ji neposkytujete.

Type:Double
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PlatformFaultDomain

Určuje doménu selhání virtuálního počítače.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Priority

Priorita virtuálního počítače. Podporované hodnoty jsou "Regular", "Spot" a "Low". Pravidelná hodnota je určená pro běžný virtuální počítač. Spot je určený pro spotový virtuální počítač. "Nízká" je také pro spotový virtuální počítač, ale nahrazuje se slovem "Spot". Místo "Low" použijte "Spot".

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ProximityPlacementGroupId

ID prostředku skupiny umístění bezkontaktní komunikace, které se má použít s tímto virtuálním počítačem.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SecurityType

Určuje typ zabezpečení virtuálního počítače. Aby bylo možné povolit Uefi Nastavení, musí být nastavená na libovolnou zadanou hodnotu. Ve výchozím nastavení se Uefi Nastavení nepovolí, pokud není tato vlastnost nastavená.

Type:String
Accepted values:TrustedLaunch, ConfidentialVM, Standard
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SharedGalleryImageId

Zadali jste jedinečné ID image sdílené galerie pro nasazení virtuálního počítače. To se dá načíst z volání GET sdíleného obrázku galerie.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Tags

Značky připojené k prostředku.

Type:Hashtable
Aliases:Tag
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-UserData

UserData pro virtuální počítač, který bude kódován v base-64. Zákazník by zde neměl předávat žádné tajné kódy.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-vCPUCountAvailable

Určuje počet virtuálních procesorů dostupných pro virtuální počítač. Pokud tato vlastnost není v textu požadavku zadána, výchozí chování je nastavit ji na hodnotu virtuálních procesorů dostupných pro danou velikost virtuálního počítače vystavenou v odpovědi rozhraní API seznamu všech dostupných velikostí virtuálních počítačů v dané oblasti.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-vCPUCountPerCore

Určuje poměr virtuálních procesorů k fyzickému jádru. Pokud tato vlastnost není zadána v textu požadavku výchozí chování je nastavena na hodnotu vCPUsPerCore pro velikost virtuálního počítače vystavené v odpovědi rozhraní API v odpovědi Na seznam všech dostupných velikostí virtuálních počítačů v oblasti. Nastavení této vlastnosti na hodnotu 1 také znamená, že hyper-threading je zakázán.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-VMName

Určuje název virtuálního počítače.

Type:String
Aliases:ResourceName, Name
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMSize

Určuje velikost virtuálního počítače. Get-AzComputeResourceSku se dá použít ke zjištění dostupných velikostí pro vaše předplatné a oblast.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VmssId

ID škálovací sady virtuálních počítačů

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Zone

Určuje zónu dostupnosti pro virtuální počítač. Přestože zabírá pole zón, virtuální počítače nepodporují více zón dostupnosti. Povolená hodnota závisí na možnostech oblasti. Povolená hodnota bude obvykle 1, 2 nebo 3. Další informace o zónách dostupnosti Azure

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

Vstupy

String

String[]

Hashtable

SwitchParameter

Výstupy

PSVirtualMachine