Dela via


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

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

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

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.

Typ:String
Position:2
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-CapacityReservationGroupId

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

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-DefaultProfile

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

Typ:IAzureContextContainer
Alias:AzContext, AzureRmContext, AzureCredential
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-EnableSecureBoot

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

Typ:Nullable<T>[Boolean]
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken: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.

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-EnableVtpm

Anger om vTPM ska aktiveras på den virtuella datorn.

Typ:Nullable<T>[Boolean]
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken: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.

Typ:SwitchParameter
Position:Named
Standardvärde:False
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-EvictionPolicy

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

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-HibernationEnabled

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

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-HostId

Värdens ID

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken: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}'

Typ:String[]
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-IdentityType

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

Typ:Nullable<T>[ResourceIdentityType]
Godkända värden:SystemAssigned, UserAssigned, SystemAssignedUserAssigned, None
Position:4
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:False
Godkänn jokertecken: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.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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)
Typ:String
Position:3
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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.

Typ:Double
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-PlatformFaultDomain

Anger feldomänen för den virtuella datorn.

Typ:Int32
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken: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".

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-ProximityPlacementGroupId

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

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-SecurityType

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

Typ:String
Godkända värden:TrustedLaunch, ConfidentialVM, Standard
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken: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.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Tags

Taggarna som är kopplade till resursen.

Typ:Hashtable
Alias:Tag
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken: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.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken: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.

Typ:Int32
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken: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.

Typ:Int32
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-VMName

Anger ett namn på den virtuella datorn.

Typ:String
Alias:ResourceName, Name
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken: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.

Typ:String
Position:1
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-VmssId

ID för VM-skalningsuppsättning

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken: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.

Typ:String[]
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

Indata

String

String[]

Hashtable

SwitchParameter

Utdata

PSVirtualMachine