New-AzVMConfig

Skapar ett konfigurerbart virtuellt datorobjekt.

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

Cmdleten New-AzVMConfig skapar ett konfigurerbart lokalt virtuellt datorobjekt för Azure.

Följande cmdletar används för att ange olika egenskaper för det virtuella datorobjektet:

Exempel

Exempel 1: Skapa en virtuell datorresurs

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

Exempel 2: Skapa ett virtuellt datorobjekt i en VM-skalningsuppsättning med konfiguration av feldomäner

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

Exempel 2: Skapa en virtuell dator med hjälp av Virtual Machine Config-objektet för TrustedLaunch Security Type, flaggorna Vtpm och Säker start är inställda på True som standard.

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

Det här exemplet skapar en virtuell dator med hjälp av ett VMConfig-objekt för säkerhetstypen TrustedLaunch och verifierar att flaggorna VtpmEnabled och SecureBootEnabled är sanna som standard.

Parametrar

-AvailabilitySetId

Anger ID för en tillgänglighetsuppsättning. Om du vill hämta ett tillgänglighetsuppsättningsobjekt använder du cmdleten Get-AzAvailabilitySet. Tillgänglighetsuppsättningsobjektet innehåller en ID-egenskap.
Virtuella datorer som anges i samma tillgänglighetsuppsättning allokeras till olika noder för att maximera tillgängligheten.
Mer information om tillgänglighetsuppsättningar finns i Hantera tillgängligheten för virtuella datorer.
Mer information om planerat underhåll i Azure finns i Planerat underhåll för virtuella datorer i Azure
För närvarande kan en virtuell dator bara läggas till i tillgänglighetsuppsättningen när den skapas. Tillgänglighetsuppsättningen som den virtuella datorn läggs till i ska vara under samma resursgrupp som resursen för tillgänglighetsuppsättningen. Det går inte att lägga till en befintlig virtuell dator i en tillgänglighetsuppsättning.
Den här egenskapen kan inte finnas tillsammans med en referens för properties.virtualMachineScaleSet som inte är null.

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

-CapacityReservationGroupId

ID för kapacitetsreservationsgruppen som används för allokering.

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

-DefaultProfile

Autentiseringsuppgifter, konto, klientorganisation och prenumeration som används för kommunikation med Azure.

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

-DiskControllerType

Anger vilken typ av diskkontrollant som konfigurerats för den virtuella datorn och VirtualMachineScaleSet. Den här egenskapen stöds endast för virtuella datorer vars operativsystemdisk och VM-sku stöder generation 2 (https://learn.microsoft.com/en-us/azure/virtual-machines/generation-2), kontrollera att HyperVGenerations-funktionen som returneras som en del av vm-sku-funktionerna i svaret från Microsoft.Compute SKU:er api för regionen innehåller V2 (https://learn.microsoft.com/rest/api/compute/resourceskus/list) .
Mer information om de typer av diskkontrollanter som stöds finns i https://aka.ms/azure-diskcontrollertypes.

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

-EnableSecureBoot

Anger om säker start ska aktiveras på den virtuella datorn.

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

-EnableUltraSSD

Gör att en funktion kan ha en eller flera hanterade datadiskar med UltraSSD_LRS lagringskontotyp på den virtuella datorn. Hanterade diskar med lagringskontotyp UltraSSD_LRS kan bara läggas till på en virtuell dator om den här egenskapen är aktiverad.

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

-EnableVtpm

Anger om vTPM ska aktiveras på den virtuella datorn.

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

-EncryptionAtHost

Egenskapen EncryptionAtHost kan användas av användaren i begäran för att aktivera eller inaktivera värdkryptering för den virtuella datorn eller vm-skalningsuppsättningen. Detta aktiverar krypteringen för alla diskar, inklusive resurs/temp-disk på själva värden. Standard: Krypteringen på värden inaktiveras om inte den här egenskapen är inställd på true för resursen.

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

-EvictionPolicy

Borttagningsprincipen för den virtuella Azure Spot-datorn. Värden som stöds är "Frigör" och "Ta bort".

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

-HibernationEnabled

Flaggan som aktiverar eller inaktiverar vilolägesfunktionen på den virtuella datorn.

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

-HostId

Värdens ID

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

-IdentityId

Anger listan över användaridentiteter som är associerade med vm-skalningsuppsättningen. Användaridentitetsreferenserna är ARM-resurs-ID:n i formuläret: '/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

Identiteten för den virtuella datorn, om den är konfigurerad.

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

Angav det unika ID:t för den delade galleriavbildningen för vm-distribution. Detta kan hämtas från get-anropet för den delade galleribilden.

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

-LicenseType

Anger en licenstyp som anger att avbildningen eller disken för den virtuella datorn har licensierats lokalt. Möjliga värden för Windows Server är:

  • Windows_Client
  • Windows_Server

Möjliga värden för Linux Server-operativsystemet är:

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

-MaxPrice

Anger det högsta pris som du är villig att betala för en virtuell dator/VMSS med låg prioritet. Det här priset är i us-dollar. Det här priset jämförs med det aktuella lågprioriteringspriset för VM-storleken. Dessutom jämförs priserna vid tidpunkten för skapande/uppdatering av virtuell dator/VMSS med låg prioritet och åtgärden lyckas bara om maxPrice är större än det aktuella priset med låg prioritet. MaxPrice används också för att avlägsna en virtuell dator med låg prioritet/VMSS om det aktuella priset med låg prioritet överskrider maxPriset efter skapandet av VM/VMSS. Möjliga värden är: ett decimalvärde som är större än noll. Exempel: 0.01538. -1 anger att den lågprioriterade virtuella datorn/VMSS inte ska avlägsnas av prisskäl. Dessutom är det högsta standardpriset -1 om det inte tillhandahålls av dig.

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

-PlatformFaultDomain

Anger feldomänen för den virtuella datorn.

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

-Priority

Prioriteten för den virtuella datorn. Endast värden som stöds är "Regular", "Spot" och "Low". "Regular" är för vanlig virtuell dator. "Spot" är för virtuell dator med oanvänd kapacitet. "Låg" är också för virtuell dator med oanvänd kapacitet men ersätts med "Spot". Använd "Spot" i stället för "Low".

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

-ProximityPlacementGroupId

Resurs-ID för närhetsplaceringsgruppen som ska användas med den här virtuella datorn.

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

-SecurityType

Anger SecurityType för den virtuella datorn. Det måste anges till ett angivet värde för att aktivera Uefi Inställningar. Som standard aktiveras inte Uefi Inställningar om inte den här egenskapen har angetts.

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

-SharedGalleryImageId

Angav det unika ID:t för den delade galleriavbildningen för vm-distribution. Detta kan hämtas från get-anropet för den delade galleribilden.

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

-Tags

Taggarna som är kopplade till resursen.

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

-UserData

UserData för den virtuella datorn, som kommer att vara base-64-kodad. Kunden bör inte skicka in några hemligheter här.

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

-vCPUCountAvailable

Anger antalet virtuella processorer som är tillgängliga för den virtuella datorn. När den här egenskapen inte anges i begärandetexten är standardbeteendet att ange värdet för vCPU:er som är tillgängliga för den virtuella datorstorleken som exponeras i API-svaret i Lista alla tillgängliga storlekar på virtuella datorer i en region.

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

-vCPUCountPerCore

Anger förhållandet mellan vCPU och fysisk kärna. När den här egenskapen inte anges i begärandetexten anges standardbeteendet till värdet för vCPUsPerCore för vm-storleken som exponeras i API-svaret i Lista alla tillgängliga storlekar på virtuella datorer i en region. Om du anger den här egenskapen till 1 innebär det också att hypertrådning är inaktiverat.

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

-VMName

Anger ett namn på den virtuella datorn.

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

-VMSize

Anger storleken på den virtuella datorn. Get-AzComputeResourceSku kan användas för att ta reda på tillgängliga storlekar för din prenumeration och region.

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

-VmssId

ID för VM-skalningsuppsättning

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

-Zone

Anger tillgänglighetszonen för den virtuella datorn. Även om det tar in en matris med zoner stöder virtuella datorer inte flera tillgänglighetszoner. Det tillåtna värdet beror på regionens funktioner. Det tillåtna värdet är normalt 1, 2 eller 3. Mer information om Azure-tillgänglighetszoner.

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

Indata

String

String[]

Hashtable

SwitchParameter

Utdata

PSVirtualMachine