Condividi tramite


New-AzureRmVM

Consente di creare una macchina virtuale.

Avviso

Il modulo AzureRM PowerShell è stato ufficialmente deprecato a partire dal 29 febbraio 2024. È consigliabile eseguire la migrazione da AzureRM al modulo Az PowerShell per garantire il supporto e gli aggiornamenti continui.

Anche se il modulo AzureRM può ancora funzionare, non è più gestito o supportato, posizionando qualsiasi uso continuo a discrezione e rischio dell'utente. Per indicazioni sulla transizione al modulo Az, vedere le risorse di migrazione.

Sintassi

New-AzureRmVM
   [[-ResourceGroupName] <String>]
   [[-Location] <String>]
   [[-Zone] <String[]>]
   -Name <String>
   -Credential <PSCredential>
   [-VirtualNetworkName <String>]
   [-AddressPrefix <String>]
   [-SubnetName <String>]
   [-SubnetAddressPrefix <String>]
   [-PublicIpAddressName <String>]
   [-DomainNameLabel <String>]
   [-AllocationMethod <String>]
   [-SecurityGroupName <String>]
   [-OpenPorts <Int32[]>]
   [-Image <String>]
   [-Size <String>]
   [-AvailabilitySetName <String>]
   [-SystemAssignedIdentity]
   [-UserAssignedIdentity <String>]
   [-AsJob]
   [-DataDiskSizeInGb <Int32[]>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmVM
   [-ResourceGroupName] <String>
   [-Location] <String>
   [-VM] <PSVirtualMachine>
   [[-Zone] <String[]>]
   [-DisableBginfoExtension]
   [-Tag <Hashtable>]
   [-LicenseType <String>]
   [-AsJob]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmVM
   [[-ResourceGroupName] <String>]
   [[-Location] <String>]
   -Name <String>
   [-VirtualNetworkName <String>]
   [-AddressPrefix <String>]
   [-SubnetName <String>]
   [-SubnetAddressPrefix <String>]
   [-PublicIpAddressName <String>]
   [-DomainNameLabel <String>]
   [-AllocationMethod <String>]
   [-SecurityGroupName <String>]
   [-OpenPorts <Int32[]>]
   -DiskFile <String>
   [-Linux]
   [-Size <String>]
   [-AvailabilitySetName <String>]
   [-SystemAssignedIdentity]
   [-UserAssignedIdentity <String>]
   [-AsJob]
   [-DataDiskSizeInGb <Int32[]>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Descrizione

Il cmdlet New-AzureRmVM crea una macchina virtuale in Azure. Questo cmdlet accetta un oggetto macchina virtuale come input. Usare il cmdlet New-AzureRmVMConfig per creare un oggetto macchina virtuale. È possibile usare altri cmdlet per configurare la macchina virtuale, ad esempio Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage, Add-AzureRmVMNetworkInterface e Set-AzureRmVMOSDisk. fornisce SimpleParameterSet un metodo pratico per creare una macchina virtuale rendendo facoltativi gli argomenti comuni per la creazione di macchine virtuali.

Esempio

Esempio 1: Creare una macchina virtuale

PS C:\> New-AzureRmVM -Name MyVm -Credential (Get-Credential)

VERBOSE: Use 'mstsc /v:myvm-222222.eastus.cloudapp.azure.com' to connect to the VM.

ResourceGroupName        : MyVm
Id                       : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVm/provi
ders/Microsoft.Compute/virtualMachines/MyVm
VmId                     : 11111111-1111-1111-1111-111111111111
Name                     : MyVm
Type                     : Microsoft.Compute/virtualMachines
Location                 : eastus
Tags                     : {}
HardwareProfile          : {VmSize}
NetworkProfile           : {NetworkInterfaces}
OSProfile                : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState        : Succeeded
StorageProfile           : {ImageReference, OsDisk, DataDisks}
FullyQualifiedDomainName : myvm-222222.eastus.cloudapp.azure.com

Questo script di esempio illustra come creare una macchina virtuale. Lo script chiederà un nome utente e una password per la macchina virtuale. Questo script usa diversi altri cmdlet.

Esempio 2: Creare una macchina virtuale da un'immagine utente personalizzata

PS C:\> ## VM Account
# Credentials for Local Admin account you created in the sysprepped (generalized) vhd image
$VMLocalAdminUser = "LocalAdminUser"
$VMLocalAdminSecurePassword = ConvertTo-SecureString "Password" -AsPlainText -Force
## Azure Account
$LocationName = "westus"
$ResourceGroupName = "MyResourceGroup"
# This a Premium_LRS storage account.
# It is required in order to run a client VM with efficiency and high performance.
$StorageAccount = "Mydisk"

## VM
$OSDiskName = "MyClient"
$ComputerName = "MyClientVM"
$OSDiskUri = "https://Mydisk.blob.core.windows.net/disks/MyOSDisk.vhd"
$SourceImageUri = "https://Mydisk.blob.core.windows.net/vhds/MyOSImage.vhd"
$VMName = "MyVM"
# Modern hardware environment with fast disk, high IOPs performance.
# Required to run a client VM with efficiency and performance
$VMSize = "Standard_DS3"
$OSDiskCaching = "ReadWrite"
$OSCreateOption = "FromImage"

## Networking
$DNSNameLabel = "mydnsname" # mydnsname.westus.cloudapp.azure.com
$NetworkName = "MyNet"
$NICName = "MyNIC"
$PublicIPAddressName = "MyPIP"
$SubnetName = "MySubnet"
$SubnetAddressPrefix = "10.0.0.0/24"
$VnetAddressPrefix = "10.0.0.0/16"

$SingleSubnet = New-AzureRmVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $SubnetAddressPrefix
$Vnet = New-AzureRmVirtualNetwork -Name $NetworkName -ResourceGroupName $ResourceGroupName -Location $LocationName -AddressPrefix $VnetAddressPrefix -Subnet $SingleSubnet
$PIP = New-AzureRmPublicIpAddress -Name $PublicIPAddressName -DomainNameLabel $DNSNameLabel -ResourceGroupName $ResourceGroupName -Location $LocationName -AllocationMethod Dynamic
$NIC = New-AzureRmNetworkInterface -Name $NICName -ResourceGroupName $ResourceGroupName -Location $LocationName -SubnetId $Vnet.Subnets[0].Id -PublicIpAddressId $PIP.Id

$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);

$VirtualMachine = New-AzureRmVMConfig -VMName $VMName -VMSize $VMSize
$VirtualMachine = Set-AzureRmVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName -Credential $Credential -ProvisionVMAgent -EnableAutoUpdate
$VirtualMachine = Add-AzureRmVMNetworkInterface -VM $VirtualMachine -Id $NIC.Id
$VirtualMachine = Set-AzureRmVMOSDisk -VM $VirtualMachine -Name $OSDiskName -VhdUri $OSDiskUri -SourceImageUri $SourceImageUri -Caching $OSDiskCaching -CreateOption $OSCreateOption -Windows

New-AzureRmVM -ResourceGroupName $ResourceGroupName -Location $LocationName -VM $VirtualMachine -Verbose

In questo esempio viene accettata un'immagine del sistema operativo sys-prepped, generalizzata personalizzata esistente e viene collegato un disco dati, ne effettua il provisioning, distribuisce il disco rigido virtuale ed esegue il disco rigido virtuale. Questo script può essere usato per il provisioning automatico perché usa le credenziali di amministratore della macchina virtuale locale inline anziché chiamare Get-Credential che richiede l'interazione dell'utente. Questo script presuppone che l'utente sia già connesso all'account Azure. È possibile confermare lo stato di accesso usando il cmdlet Get-AzureSubscription .

Esempio 3: Creare una macchina virtuale da un'immagine del marketplace senza un indirizzo IP pubblico

$VMLocalAdminUser = "LocalAdminUser"
$VMLocalAdminSecurePassword = ConvertTo-SecureString <password> -AsPlainText -Force
$LocationName = "eastus2"
$ResourceGroupName = "MyResourceGroup"
$ComputerName = "MyVM"
$VMName = "MyVM"
$VMSize = "Standard_DS3"

$NetworkName = "MyNet"
$NICName = "MyNIC"
$SubnetName = "MySubnet"
$SubnetAddressPrefix = "10.0.0.0/24"
$VnetAddressPrefix = "10.0.0.0/16"

$SingleSubnet = New-AzureRmVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $SubnetAddressPrefix
$Vnet = New-AzureRmVirtualNetwork -Name $NetworkName -ResourceGroupName $ResourceGroupName -Location $LocationName -AddressPrefix $VnetAddressPrefix -Subnet $SingleSubnet
$NIC = New-AzureRmNetworkInterface -Name $NICName -ResourceGroupName $ResourceGroupName -Location $LocationName -SubnetId $Vnet.Subnets[0].Id

$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);

$VirtualMachine = New-AzureRmVMConfig -VMName $VMName -VMSize $VMSize
$VirtualMachine = Set-AzureRmVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName -Credential $Credential -ProvisionVMAgent -EnableAutoUpdate
$VirtualMachine = Add-AzureRmVMNetworkInterface -VM $VirtualMachine -Id $NIC.Id
$VirtualMachine = Set-AzureRmVMSourceImage -VM $VirtualMachine -PublisherName 'MicrosoftWindowsServer' -Offer 'WindowsServer' -Skus '2012-R2-Datacenter' -Version latest

New-AzureRmVM -ResourceGroupName $ResourceGroupName -Location $LocationName -VM $VirtualMachine -Verbose

Questo esempio effettua il provisioning di una nuova rete e distribuisce una macchina virtuale Windows dal Marketplace senza creare un indirizzo IP pubblico o un gruppo di sicurezza di rete. Questo script può essere usato per il provisioning automatico perché usa le credenziali di amministratore della macchina virtuale locale inline anziché chiamare Get-Credential che richiede l'interazione dell'utente.

Parametri

-AddressPrefix

Prefisso dell'indirizzo per la rete virtuale che verrà creata per la macchina virtuale.

Tipo:String
Posizione:Named
Valore predefinito:192.168.0.0/16
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-AllocationMethod

Metodo di allocazione IP per l'indirizzo IP pubblico che verrà creato per la macchina virtuale.

Tipo:String
Valori accettati:Static, Dynamic
Posizione:Named
Valore predefinito:Static
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-AsJob

Eseguire il cmdlet in background e restituire un processo per tenere traccia dello stato di avanzamento.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-AvailabilitySetName

Specifica un nome per il set di disponibilità.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Tipo:SwitchParameter
Alias:cf
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Credential

Credenziali di amministratore per la macchina virtuale.

Tipo:PSCredential
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DataDiskSizeInGb

Specifica le dimensioni dei dischi dati in GB.

Tipo:Int32[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DefaultProfile

Credenziali, account, tenant e sottoscrizione usati per la comunicazione con Azure.

Tipo:IAzureContextContainer
Alias:AzureRmContext, AzureCredential
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DisableBginfoExtension

Indica che questo cmdlet non installa l'estensione BG Info nella macchina virtuale.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DiskFile

Percorso locale del file del disco rigido virtuale da caricare nel cloud e per la creazione della macchina virtuale e deve avere '.vhd' come suffisso.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DomainNameLabel

Etichetta del sottodominio per il nome di dominio completo (FQDN) della macchina virtuale. Il formato {domainNameLabel}.{location}.cloudapp.azure.comsarà .

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Image

Nome descrittivo dell'immagine in base al quale verrà compilata la macchina virtuale. Questi includono: Win2016Datacenter, Win2012R2Datacenter, Win2012Datacenter, Win2008R2SP1, UbuntuLTS, CentOS, CoreOS, Debian, openSU edizione Standard-Leap, RHEL, SLES.

Tipo:String
Alias:ImageName
Posizione:Named
Valore predefinito:Win2016Datacenter
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-LicenseType

Specifica un tipo di licenza, che indica che l'immagine o il disco per la macchina virtuale è stato concesso in licenza in locale. Questo valore viene usato solo per le immagini che contengono il sistema operativo Windows Server. I valori validi per questo parametro sono:

  • Windows_Client
  • Windows_Server Questo valore non può essere aggiornato. Se si specifica questo parametro per un aggiornamento, il valore deve corrispondere al valore iniziale per la macchina virtuale.
Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Linux

Indica se il file del disco è per la macchina virtuale Linux, se specificato; o Windows, se non specificato per impostazione predefinita.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Location

Specifica un percorso per la macchina virtuale.

Tipo:String
Posizione:1
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Name

Nome della risorsa della macchina virtuale.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-OpenPorts

Elenco di porte da aprire nel gruppo di sicurezza di rete (NSG) per la macchina virtuale creata. Il valore predefinito dipende dal tipo di immagine scelta(ad esempio Windows: 3389, 5985 e Linux: 22).

Tipo:Int32[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-PublicIpAddressName

Nome di un nuovo indirizzo IP pubblico (o esistente) per la macchina virtuale creata da usare. Se non specificato, verrà generato un nome.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ResourceGroupName

Specifica il nome di un gruppo di risorse.

Tipo:String
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-SecurityGroupName

Nome di un gruppo di sicurezza di rete nuovo (o esistente) per la macchina virtuale creata da usare. Se non specificato, verrà generato un nome.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Size

Dimensioni della macchina virtuale. Il valore predefinito è: Standard_DS1_v2.

Tipo:String
Posizione:Named
Valore predefinito:Standard_DS1_v2
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-SubnetAddressPrefix

Prefisso dell'indirizzo per la subnet che verrà creata per la macchina virtuale.

Tipo:String
Posizione:Named
Valore predefinito:192.168.1.0/24
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-SubnetName

Nome di una subnet nuova (o esistente) da usare per la macchina virtuale creata. Se non specificato, verrà generato un nome.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-SystemAssignedIdentity

Se il parametro è presente, alla macchina virtuale viene assegnata un'identità del sistema gestita generata automaticamente.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Tag

Specifica che le risorse e i gruppi di risorse possono essere contrassegnati con un set di coppie nome-valore. L'aggiunta di tag alle risorse consente di raggruppare le risorse tra gruppi di risorse e di creare visualizzazioni personalizzate. Ciascuna risorsa o gruppo di risorse può avere un massimo di 15 tag.

Tipo:Hashtable
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-UserAssignedIdentity

Nome di un'identità del servizio gestita che deve essere assegnata alla macchina virtuale.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-VirtualNetworkName

Nome di una rete virtuale nuova (o esistente) da usare per la macchina virtuale creata. Se non specificato, verrà generato un nome.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-VM

Specifica una macchina virtuale locale da creare. Per ottenere un oggetto macchina virtuale, usare il cmdlet New-AzureRmVMConfig. È possibile usare altri cmdlet per configurare la macchina virtuale, ad esempio Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage e Add-AzureRmVMNetworkInterface.

Tipo:PSVirtualMachine
Alias:VMProfile
Posizione:2
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Tipo:SwitchParameter
Alias:wi
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Zone

Specifica l'elenco di zone della macchina virtuale.

Tipo:String[]
Posizione:3
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

String

PSVirtualMachine

String[]

Hashtable

Output

PSAzureOperationResponse

PSVirtualMachine