New-AzVMConfig

Hiermee maakt u een configureerbaar virtuele-machineobject.

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

Met de cmdlet New-AzVMConfig maakt u een configureerbaar lokaal virtuele-machineobject voor Azure.

De volgende cmdlets worden gebruikt om verschillende eigenschappen van het object van de virtuele machine in te stellen:

Voorbeelden

Voorbeeld 1: Een virtuele-machineresource maken

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

Voorbeeld 2: Een virtuele-machineobject maken in een virtuele-machineschaalset met foutdomeinen instellen

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

Voorbeeld 2: Een virtuele machine maken met behulp van een virtual machine-configuratieobject voor TrustedLaunch-beveiligingstype, markeert Vtpm en Beveiligd opstarten zijn standaard ingesteld op 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;

In dit voorbeeld wordt een VIRTUELE machine gemaakt met behulp van een VMConfig-object voor het TrustedLaunch-beveiligingstype en worden vlaggen VtpmEnabled en SecureBootEnabled standaard waar gemaakt.

Parameters

-AvailabilitySetId

Hiermee geeft u de id van een beschikbaarheidsset. Gebruik de cmdlet Get-AzAvailabilitySet om een beschikbaarheidssetobject te verkrijgen. Het object van de beschikbaarheidsset bevat een id-eigenschap.
Virtuele machines die zijn opgegeven in dezelfde beschikbaarheidsset, worden toegewezen aan verschillende knooppunten om de beschikbaarheid te maximaliseren.
Zie De beschikbaarheid van virtuele machines beheren voor meer informatie over beschikbaarheidssets.
Zie Gepland onderhoud voor virtuele machines in Azure voor meer informatie over gepland onderhoud in Azure
Op dit moment kan een VIRTUELE machine alleen worden toegevoegd aan de beschikbaarheidsset tijdens het maken. De beschikbaarheidsset waaraan de VIRTUELE machine wordt toegevoegd, moet zich onder dezelfde resourcegroep bevinden als de resource van de beschikbaarheidsset. Een bestaande VM kan niet worden toegevoegd aan een beschikbaarheidsset.
Deze eigenschap kan niet samen met een verwijzing naar niet-null properties.virtualMachineScaleSet bestaan.

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

-CapacityReservationGroupId

Id van de capaciteitsreserveringsgroep die wordt gebruikt om toe te wijzen.

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

-DefaultProfile

De referenties, het account, de tenant en het abonnement die worden gebruikt voor communicatie met Azure.

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

-DiskControllerType

Hiermee geeft u het type schijfcontroller geconfigureerd voor de VIRTUELE machine en VirtualMachineScaleSet. Deze eigenschap wordt alleen ondersteund voor virtuele machines waarvan de besturingssysteemschijf en vm-sku ondersteuning biedt voor generatie 2 (https://learn.microsoft.com/en-us/azure/virtual-machines/generation-2), controleert u de HyperVGenerations-functie die wordt geretourneerd als onderdeel van de SKU-mogelijkheden van de VM in het antwoord van de API van Microsoft.Compute voor de regio bevat V2 (https://learn.microsoft.com/rest/api/compute/resourceskus/list).
Raadpleeg voor meer informatie over ondersteunde https://aka.ms/azure-diskcontrollertypesschijfcontrollertypen.

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

-EnableSecureBoot

Hiermee geeft u op of beveiligd opstarten moet worden ingeschakeld op de virtuele machine.

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

-EnableUltraSSD

Hiermee kunt u een of meer beheerde gegevensschijven met UltraSSD_LRS opslagaccounttype op de virtuele machine hebben. Beheerde schijven met het type opslagaccount UltraSSD_LRS kunnen alleen worden toegevoegd aan een virtuele machine als deze eigenschap is ingeschakeld.

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

-EnableVtpm

Hiermee geeft u op of vTPM moet worden ingeschakeld op de virtuele machine.

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

-EncryptionAtHost

De eigenschap EncryptionAtHost kan worden gebruikt door de gebruiker in de aanvraag om hostversleuteling voor de virtuele machine of virtuele-machineschaalset in of uit te schakelen. Hierdoor wordt de versleuteling ingeschakeld voor alle schijven, inclusief resource-/tijdelijke schijf op de host zelf. Standaard: De versleuteling op de host wordt uitgeschakeld, tenzij deze eigenschap is ingesteld op waar voor de resource.

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

-EvictionPolicy

Het verwijderingsbeleid voor de virtuele Azure Spot-machine. Ondersteunde waarden zijn 'Toewijzing ongedaan maken' en 'Verwijderen'.

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

-HibernationEnabled

De vlag waarmee de sluimerstand op de VIRTUELE machine wordt ingeschakeld of uitgeschakeld.

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

-HostId

De id van host

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

-IdentityId

Hiermee geeft u de lijst met gebruikersidentiteiten die zijn gekoppeld aan de virtuele-machineschaalset. De verwijzingen naar gebruikersidentiteiten zijn ARM-resource-id's in de vorm: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identities/{identityName}'

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

-IdentityType

De identiteit van de virtuele machine, indien geconfigureerd.

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

De unieke id van de gedeelde galerie-installatiekopieën opgegeven voor vm-implementatie. Dit kan worden opgehaald uit de get-aanroep van de installatiekopieën in de gedeelde galerie.

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

-LicenseType

Hiermee geeft u een licentietype op, wat aangeeft dat de installatiekopie of schijf voor de virtuele machine on-premises is gelicentieerd. Mogelijke waarden voor Windows Server zijn:

  • Windows_Client
  • Windows_Server

Mogelijke waarden voor het Linux Server-besturingssysteem zijn:

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

-MaxPrice

Hiermee geeft u de maximumprijs op die u wilt betalen voor een VM/VMSS met lage prioriteit. Deze prijs is in Amerikaanse dollars. Deze prijs wordt vergeleken met de huidige prijs met lage prioriteit voor de VM-grootte. De prijzen worden ook vergeleken op het moment van het maken/bijwerken van VM/VMSS met lage prioriteit en de bewerking slaagt alleen als de maxPrice groter is dan de huidige prijs met lage prioriteit. De maxPrice wordt ook gebruikt voor het verwijderen van een VM/VMSS met lage prioriteit als de huidige prijs met lage prioriteit hoger is dan de maxPrice na het maken van VM/VMSS. Mogelijke waarden zijn: elke decimale waarde groter dan nul. Voorbeeld: 0.01538. -1 geeft aan dat de VM/VMSS met lage prioriteit niet om prijsredenen mag worden verwijderd. De standaard maximumprijs is -1 als deze niet door u wordt verstrekt.

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

-PlatformFaultDomain

Hiermee geeft u het foutdomein van de virtuele machine.

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

-Priority

De prioriteit voor de virtuele machine. Alleen ondersteunde waarden zijn 'Normaal', 'Spot' en 'Laag'. 'Normaal' is voor reguliere virtuele machine. Spot is bedoeld voor virtuele spot-machine. 'Laag' is ook voor virtuele spot-machine, maar wordt vervangen door 'Spot'. Gebruik Spot in plaats van 'Laag'.

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

-ProximityPlacementGroupId

De resource-id van de nabijheidsplaatsingsgroep die moet worden gebruikt met deze virtuele machine.

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

-SecurityType

Hiermee geeft u het SecurityType van de virtuele machine. Deze moet worden ingesteld op een opgegeven waarde om Uefi Instellingen in te schakelen. Uefi Instellingen wordt standaard niet ingeschakeld, tenzij deze eigenschap is ingesteld.

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

-SharedGalleryImageId

De unieke id van de gedeelde galerie-installatiekopieën opgegeven voor vm-implementatie. Dit kan worden opgehaald uit de get-aanroep van de installatiekopieën in de gedeelde galerie.

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

-Tags

De tags die aan de resource zijn gekoppeld.

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

-UserData

UserData voor de VIRTUELE machine, die wordt gecodeerd met base-64. De klant mag hier geen geheimen doorgeven.

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

-vCPUCountAvailable

Hiermee geeft u het aantal vCPU's dat beschikbaar is voor de virtuele machine. Wanneer deze eigenschap niet is opgegeven in de aanvraagbody, is het standaardgedrag om deze in te stellen op de waarde van vCPU's die beschikbaar zijn voor die VM-grootte die beschikbaar is in api-antwoord van alle beschikbare grootten van virtuele machines in een regio weergeven.

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

-vCPUCountPerCore

Hiermee geeft u de verhouding tussen vCPU en fysieke kern. Wanneer deze eigenschap niet is opgegeven in de aanvraagbody, wordt het standaardgedrag ingesteld op de waarde van vCPUUsPerCore voor de VM-grootte die wordt weergegeven in de API-respons van alle beschikbare grootten van virtuele machines in een regio. Als u deze eigenschap instelt op 1, betekent dit ook dat hyperthreading is uitgeschakeld.

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

-VMName

Hiermee geeft u een naam voor de virtuele machine.

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

-VMSize

Hiermee geeft u de grootte voor de virtuele machine. Get-AzComputeResourceSku kan worden gebruikt om de beschikbare grootten voor uw abonnement en regio te achterhalen.

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

-VmssId

De id van virtuele-machineschaalset

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

-Zone

Hiermee geeft u de beschikbaarheidszone voor de virtuele machine. Hoewel het een matrix met zones in beslag neemt, bieden virtuele machines geen ondersteuning voor meerdere beschikbaarheidszones. De toegestane waarde is afhankelijk van de mogelijkheden van de regio. De toegestane waarde is normaal gesproken 1, 2 of 3. Meer informatie over Azure-beschikbaarheidszones.

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

Invoerwaarden

String

String[]

Hashtable

SwitchParameter

Uitvoerwaarden

PSVirtualMachine