Delen via


New-AzureRmVM

Hiermee maakt u een virtuele machine.

Waarschuwing

De AzureRM PowerShell-module is vanaf 29 februari 2024 officieel afgeschaft. Gebruikers wordt aangeraden om van AzureRM naar de Az PowerShell-module te migreren om ondersteuning en updates te garanderen.

Hoewel de AzureRM-module nog steeds kan functioneren, wordt deze niet meer onderhouden of ondersteund, waardoor het gebruik naar eigen goeddunken en risico van de gebruiker blijft bestaan. Raadpleeg onze migratiebronnen voor hulp bij de overgang naar de Az-module.

Syntaxis

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

Description

Met de cmdlet New-AzureRmVM maakt u een virtuele machine in Azure. Met deze cmdlet wordt een object van een virtuele machine als invoer gebruikt. Gebruik de cmdlet New-AzureRmVMConfig om een virtuele-machineobject te maken. Andere cmdlets kunnen worden gebruikt om de virtuele machine te configureren, zoals Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage, Add-AzureRmVMNetworkInterface en Set-AzureRmVMOSDisk. Het SimpleParameterSet biedt een handige methode om een virtuele machine te maken door algemene argumenten voor het maken van vm's optioneel te maken.

Voorbeelden

Voorbeeld 1: Een virtuele machine maken

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

In dit voorbeeldscript ziet u hoe u een virtuele machine maakt. Het script vraagt een gebruikersnaam en wachtwoord voor de virtuele machine. Dit script maakt gebruik van verschillende andere cmdlets.

Voorbeeld 2: Een virtuele machine maken op basis van een aangepaste gebruikersinstallatiekopieën

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 dit voorbeeld wordt een bestaande vooraf gemaakte installatiekopieën van een gegeneraliseerde aangepaste besturingssystemen gebruikt en wordt er een gegevensschijf aan gekoppeld, wordt een nieuw netwerk inrichten, de VHD geïmplementeerd en uitgevoerd. Dit script kan worden gebruikt voor automatische inrichting, omdat het inline de referenties van de lokale virtuele machinebeheerder gebruikt in plaats van Get-Credential aan te roepen waarvoor gebruikersinteractie is vereist. In dit script wordt ervan uitgegaan dat u al bent aangemeld bij uw Azure-account. U kunt uw aanmeldingsstatus bevestigen met behulp van de Get-AzureSubscription-cmdlet .

Voorbeeld 3: Een VIRTUELE machine maken op basis van een marketplace-installatiekopie zonder een openbaar IP-adres

$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

In dit voorbeeld wordt een nieuw netwerk geïmplementeerd en wordt een Windows-VM geïmplementeerd vanuit Marketplace zonder een openbaar IP-adres of netwerkbeveiligingsgroep te maken. Dit script kan worden gebruikt voor automatische inrichting, omdat het inline de referenties van de lokale virtuele machinebeheerder gebruikt in plaats van Get-Credential aan te roepen waarvoor gebruikersinteractie is vereist.

Parameters

-AddressPrefix

Het adresvoorvoegsel voor het virtuele netwerk dat wordt gemaakt voor de virtuele machine.

Type:String
Position:Named
Default value:192.168.0.0/16
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-AllocationMethod

De IP-toewijzingsmethode voor het openbare IP-adres dat wordt gemaakt voor de virtuele machine.

Type:String
Geaccepteerde waarden:Static, Dynamic
Position:Named
Default value:Static
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-AsJob

Voer de cmdlet op de achtergrond uit en retourneer een taak om de voortgang bij te houden.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-AvailabilitySetName

Hiermee geeft u een naam voor de beschikbaarheidsset.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Confirm

Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.

Type:SwitchParameter
Aliassen:cf
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Credential

De beheerdersreferenties voor de virtuele machine.

Type:PSCredential
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-DataDiskSizeInGb

Hiermee geeft u de grootte van gegevensschijven in GB.

Type:Int32[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-DefaultProfile

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

Type:IAzureContextContainer
Aliassen:AzureRmContext, AzureCredential
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-DisableBginfoExtension

Geeft aan dat met deze cmdlet de BG Info-extensie niet op de virtuele machine wordt geïnstalleerd.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-DiskFile

Het lokale pad naar het virtuele hardeschijfbestand dat moet worden geüpload naar de cloud en voor het maken van de virtuele machine, en het moet '.vhd' hebben als achtervoegsel.

Type:String
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-DomainNameLabel

Het subdomeinlabel voor de FQDN (Fully Qualified Domain Name) van de virtuele machine. Dit zal de vorm {domainNameLabel}.{location}.cloudapp.azure.comaannemen.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Image

De beschrijvende installatiekopienaam waarop de virtuele machine wordt gebouwd. Dit zijn onder andere: Win2016Datacenter, Win2012R2Datacenter, Win2012Datacenter, Win2008R2SP1, UbuntuLTS, CentOS, CoreOS, Debian, openSUSE-Leap, RHEL, SLES.

Type:String
Aliassen:ImageName
Position:Named
Default value:Win2016Datacenter
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-LicenseType

Hiermee geeft u een licentietype op, wat aangeeft dat de installatiekopie of schijf voor de virtuele machine on-premises is gelicentieerd. Deze waarde wordt alleen gebruikt voor installatiekopieën die het Windows Server-besturingssysteem bevatten. De aanvaardbare waarden voor deze parameter zijn:

  • Windows_Client
  • Windows_Server Deze waarde kan niet worden bijgewerkt. Als u deze parameter opgeeft voor een update, moet de waarde overeenkomen met de oorspronkelijke waarde voor de virtuele machine.
Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Linux

Geeft aan of het schijfbestand voor linux-VM is, indien opgegeven; of Windows, indien niet standaard opgegeven.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Location

Hiermee geeft u een locatie voor de virtuele machine.

Type:String
Position:1
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Name

De naam van de VM-resource.

Type:String
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-OpenPorts

Een lijst met poorten die moeten worden geopend in de netwerkbeveiligingsgroep (NSG) voor de gemaakte VM. De standaardwaarde is afhankelijk van het type installatiekopie dat is gekozen (bijvoorbeeld Windows: 3389, 5985 en Linux: 22).

Type:Int32[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-PublicIpAddressName

De naam van een nieuw (of bestaand) openbaar IP-adres voor de gemaakte VM die moet worden gebruikt. Als dit niet is opgegeven, wordt er een naam gegenereerd.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-ResourceGroupName

Hiermee geeft u de naam van een resourcegroep.

Type:String
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-SecurityGroupName

De naam van een nieuwe (of bestaande) netwerkbeveiligingsgroep (NSG) voor de gemaakte VM die moet worden gebruikt. Als dit niet is opgegeven, wordt er een naam gegenereerd.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Size

De grootte van de virtuele machine. De standaardwaarde is: Standard_DS1_v2.

Type:String
Position:Named
Default value:Standard_DS1_v2
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-SubnetAddressPrefix

Het adresvoorvoegsel voor het subnet dat wordt gemaakt voor de virtuele machine.

Type:String
Position:Named
Default value:192.168.1.0/24
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-SubnetName

De naam van een nieuw (of bestaand) subnet voor de gemaakte VM die moet worden gebruikt. Als dit niet is opgegeven, wordt er een naam gegenereerd.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-SystemAssignedIdentity

Als de parameter aanwezig is, wordt aan de VIRTUELE machine een beheerde systeemidentiteit toegewezen die automatisch wordt gegenereerd.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Tag

Hiermee geeft u op dat resources en resourcegroepen kunnen worden gelabeld met een set naam-waardeparen. Door tags toe te voegen aan resources kunt u resources groeperen in resourcegroepen en uw eigen weergaven maken. Elke resource of resourcegroep kan maximaal 15 tags hebben.

Type:Hashtable
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-UserAssignedIdentity

De naam van een beheerde service-identiteit die moet worden toegewezen aan de virtuele machine.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-VirtualNetworkName

De naam van een nieuw (of bestaand) virtueel netwerk voor de gemaakte VM die moet worden gebruikt. Als dit niet is opgegeven, wordt er een naam gegenereerd.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-VM

Hiermee geeft u een lokale virtuele machine te maken. Gebruik de cmdlet New-AzureRmVMConfig om een object voor een virtuele machine op te halen. Andere cmdlets kunnen worden gebruikt om de virtuele machine te configureren, zoals Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage en Add-AzureRmVMNetworkInterface.

Type:PSVirtualMachine
Aliassen:VMProfile
Position:2
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-WhatIf

Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.

Type:SwitchParameter
Aliassen:wi
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Zone

Hiermee geeft u de zonelijst van de virtuele machine.

Type:String[]
Position:3
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

String

PSVirtualMachine

String[]

Hashtable

Uitvoerwaarden

PSAzureOperationResponse

PSVirtualMachine