Share 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.

Syntax

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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AllocationMethod

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

Type:String
Accepted values:Static, Dynamic
Position:Named
Default value:Static
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AvailabilitySetName

Hiermee geeft u een naam voor de beschikbaarheidsset.

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

-Confirm

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

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

-Credential

De beheerdersreferenties voor de virtuele machine.

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

-DataDiskSizeInGb

Hiermee geeft u de grootte van gegevensschijven in GB.

Type:Int32[]
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:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Required:True
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Aliases:ImageName
Position:Named
Default value:Win2016Datacenter
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. 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
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Location

Hiermee geeft u een locatie voor de virtuele machine.

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

-Name

De naam van de VM-resource.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ResourceGroupName

Hiermee geeft u de naam van een resourcegroep.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Size

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

Type:String
Position:Named
Default value:Standard_DS1_v2
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-UserAssignedIdentity

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Aliases:VMProfile
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

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

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

-Zone

Hiermee geeft u de zonelijst van de virtuele machine.

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

Invoerwaarden

String

PSVirtualMachine

String[]

Hashtable

Uitvoerwaarden

PSAzureOperationResponse

PSVirtualMachine