Freigeben über


New-AzureRmVM

Erstellt einen virtuellen Computer.

Warnung

Das AzureRM PowerShell-Modul ist seit dem 29. Februar 2024 offiziell veraltet. Benutzern wird empfohlen, von AzureRM zum Az PowerShell-Modul zu migrieren, um weiterhin Support und Updates zu erhalten.

Obwohl das AzureRM-Modul möglicherweise weiterhin funktioniert, wird es nicht mehr gewartet, und es wird kein Support mehr angeboten. Die weitere Nutzung erfolgt daher nach Ermessen und Risiko des Benutzers. Weitere Informationen zum Übergang zum Az-Modul finden Sie in unseren Migrationsressourcen.

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

Beschreibung

Das Cmdlet New-AzureRmVM erstellt einen virtuellen Computer in Azure. Dieses Cmdlet verwendet ein Objekt des virtuellen Computers als Eingabe. Verwenden Sie das Cmdlet New-AzureRmVMConfig, um ein Objekt eines virtuellen Computers zu erstellen. Andere Cmdlets können verwendet werden, um den virtuellen Computer zu konfigurieren, z. B. Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage, Add-AzureRmVMNetworkInterface und Set-AzureRmVMOSDisk. Dies SimpleParameterSet stellt eine bequeme Methode zum Erstellen eines virtuellen Computers bereit, indem allgemeine ARGUMENTE für die VM-Erstellung optional erstellt werden.

Beispiele

Beispiel 1: Erstellen eines virtuellen Computers

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

Dieses Beispielskript zeigt, wie Sie einen virtuellen Computer erstellen. Das Skript fragt einen Benutzernamen und ein Kennwort für die VM. Dieses Skript verwendet mehrere andere Cmdlets.

Beispiel 2: Erstellen eines virtuellen Computers aus einem benutzerdefinierten Benutzerimage

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

This example takes an existing sys-prepped, generalized custom operating system image and attaches a data disk to it, deploys a new network, deploys the VHD, and runs it. Dieses Skript kann für die automatische Bereitstellung verwendet werden, da sie die Anmeldeinformationen des lokalen virtuellen Computers inline verwendet, anstatt Get-Credential aufzurufen, die eine Benutzerinteraktion erfordern. Dieses Skript geht davon aus, dass Sie bereits bei Ihrem Azure-Konto angemeldet sind. Sie können Ihren Anmeldestatus mithilfe des Cmdlets "Get-AzureSubscription " bestätigen.

Beispiel 3: Erstellen eines virtuellen Computers aus einem Marketplace-Image ohne öffentliche IP

$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 diesem Beispiel wird ein neues Netzwerk bereitgestellt und eine Windows-VM aus dem Marketplace bereitgestellt, ohne eine öffentliche IP-Adresse oder Eine Netzwerksicherheitsgruppe zu erstellen. Dieses Skript kann für die automatische Bereitstellung verwendet werden, da sie die Anmeldeinformationen des lokalen virtuellen Computers inline verwendet, anstatt Get-Credential aufzurufen, die eine Benutzerinteraktion erfordern.

Parameter

-AddressPrefix

Das Adresspräfix für das virtuelle Netzwerk, das für den virtuellen Computer erstellt wird.

Typ:String
Position:Named
Standardwert:192.168.0.0/16
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-AllocationMethod

Die IP-Zuordnungsmethode für die öffentliche IP, die für den virtuellen Computer erstellt wird.

Typ:String
Zulässige Werte:Static, Dynamic
Position:Named
Standardwert:Static
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-AsJob

Führen Sie das Cmdlet im Hintergrund aus, und geben Sie einen Auftrag zurück, um den Fortschritt nachzuverfolgen.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-AvailabilitySetName

Gibt einen Namen für den Verfügbarkeitssatz an.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

Typ:SwitchParameter
Aliase:cf
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Credential

Die Administratoranmeldeinformationen für den virtuellen Computer.

Typ:PSCredential
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-DataDiskSizeInGb

Gibt die Größe von Datenträgern in GB an.

Typ:Int32[]
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-DefaultProfile

Die Anmeldeinformationen, Konten, Mandanten und Abonnements, die für die Kommunikation mit Azure verwendet werden.

Typ:IAzureContextContainer
Aliase:AzureRmContext, AzureCredential
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-DisableBginfoExtension

Gibt an, dass dieses Cmdlet die BG Info-Erweiterung nicht auf dem virtuellen Computer installiert.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-DiskFile

Der lokale Pfad zur virtuellen Festplattendatei, die in die Cloud hochgeladen werden soll, und zum Erstellen der VM und muss ".vhd" als Suffix aufweisen.

Typ:String
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-DomainNameLabel

Die Unterdomänenbezeichnung für den vollqualifizierten Domänennamen (FQDN) der VM. Dies wird die Form {domainNameLabel}.{location}.cloudapp.azure.comannehmen.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Image

Der Anzeigeimagename, auf dem die VM erstellt wird. Dazu gehören: Win2016Datacenter, Win2012R2Datacenter, Win2012Datacenter, Win2008R2SP1, UbuntuLTS, CentOS, CoreOS, Debian, openSUSE-Leap, RHEL, SLES.

Typ:String
Aliase:ImageName
Position:Named
Standardwert:Win2016Datacenter
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-LicenseType

Gibt einen Lizenztyp an, der angibt, dass das Image oder der Datenträger für den virtuellen Computer lokal lizenziert wurde. Dieser Wert wird nur für Bilder verwendet, die das Windows Server-Betriebssystem enthalten. Zulässige Werte für diesen Parameter:

  • Windows_Client
  • Windows_Server Dieser Wert kann nicht aktualisiert werden. Wenn Sie diesen Parameter für ein Update angeben, muss der Wert mit dem Anfangswert für den virtuellen Computer übereinstimmen.
Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Linux

Gibt an, ob die Datenträgerdatei für linux-VM ist, falls angegeben; oder Windows, wenn nicht standardmäßig angegeben.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Location

Gibt einen Speicherort für den virtuellen Computer an.

Typ:String
Position:1
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Name

Der Name der VM-Ressource.

Typ:String
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-OpenPorts

Eine Liste der Ports, die für die erstellte VM in der Netzwerksicherheitsgruppe (Network Security Group, NSG) geöffnet werden sollen. Der Standardwert hängt vom Typ des ausgewählten Images ab (d. h. Windows: 3389, 5985 und Linux: 22).

Typ:Int32[]
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-PublicIpAddressName

Der Name einer neuen (oder vorhandenen) öffentlichen IP-Adresse für die erstellte VM, die verwendet werden soll. Wenn nicht angegeben, wird ein Name generiert.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ResourceGroupName

Gibt den Namen einer Ressourcengruppe an.

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-SecurityGroupName

Der Name einer neuen (oder vorhandenen) Netzwerksicherheitsgruppe (NSG) für die erstellte VM, die verwendet werden soll. Wenn nicht angegeben, wird ein Name generiert.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Size

Die Größe des virtuellen Computers. Der Standardwert ist: Standard_DS1_v2.

Typ:String
Position:Named
Standardwert:Standard_DS1_v2
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-SubnetAddressPrefix

Das Adresspräfix für das Subnetz, das für den virtuellen Computer erstellt wird.

Typ:String
Position:Named
Standardwert:192.168.1.0/24
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-SubnetName

Der Name eines neuen (oder vorhandenen) Subnetzes für die erstellte VM, die verwendet werden soll. Wenn nicht angegeben, wird ein Name generiert.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-SystemAssignedIdentity

Wenn der Parameter vorhanden ist, wird dem virtuellen Computer eine verwaltete Systemidentität zugewiesen, die automatisch generiert wird.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Tag

Gibt an, dass Ressourcen und Ressourcengruppen mit einer Gruppe von Namen-Wert-Paaren markiert werden können. Durch das Hinzufügen von Tags zu Ressourcen können Sie Ressourcen in Ressourcengruppen gruppieren und eigene Ansichten erstellen. Jede Ressource oder Ressourcengruppe kann maximal 15 Tags haben.

Typ:Hashtable
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-UserAssignedIdentity

Der Name einer verwalteten Dienstidentität, die der VM zugewiesen werden soll.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-VirtualNetworkName

Der Name eines neuen (oder vorhandenen) virtuellen Netzwerks für den erstellten virtuellen Computer, der verwendet werden soll. Wenn nicht angegeben, wird ein Name generiert.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-VM

Gibt einen zu erstellenden lokalen virtuellen Computer an. Verwenden Sie das Cmdlet New-AzureRmVMConfig, um ein Objekt eines virtuellen Computers abzurufen. Andere Cmdlets können verwendet werden, um den virtuellen Computer zu konfigurieren, z. B. Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage und Add-AzureRmVMNetworkInterface.

Typ:PSVirtualMachine
Aliase:VMProfile
Position:2
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Typ:SwitchParameter
Aliase:wi
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Zone

Gibt die Zonenliste des virtuellen Computers an.

Typ:String[]
Position:3
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

String

PSVirtualMachine

String[]

Hashtable

Ausgaben

PSAzureOperationResponse

PSVirtualMachine