Partager via


New-AzureRmVM

Crée une machine virtuelle.

Avertissement

Le module AzureRM PowerShell a été officiellement déconseillé depuis le 29 février 2024. Les utilisateurs sont invités à migrer d’AzureRM vers le module Az PowerShell afin de s’assurer d’une prise en charge et des mises à jour continues.

Bien que le module AzureRM puisse toujours fonctionner, il n’est plus conservé ou pris en charge, plaçant toute utilisation continue à la discrétion et au risque de l’utilisateur. Consultez nos ressources sur la migration pour obtenir des conseils sur la transition vers le module Az.

Syntaxe

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

L’applet de commande New-AzureRmVM crée une machine virtuelle dans Azure. Cette applet de commande prend un objet de machine virtuelle comme entrée. Utilisez l’applet de commande New-AzureRmVMConfig pour créer un objet de machine virtuelle. D’autres applets de commande peuvent être utilisées pour configurer la machine virtuelle, comme Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage, Add-AzureRmVMNetworkInterface et Set-AzureRmVMOSDisk. Il SimpleParameterSet fournit une méthode pratique pour créer une machine virtuelle en rendant les arguments de création de machine virtuelle courants facultatifs.

Exemples

Exemple 1 : Créer une machine virtuelle

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

Cet exemple de script montre comment créer une machine virtuelle. Le script demande un nom d’utilisateur et un mot de passe pour la machine virtuelle. Ce script utilise plusieurs autres applets de commande.

Exemple 2 : Créer une machine virtuelle à partir d’une image utilisateur personnalisée

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

Cet exemple montre comment utiliser une image de système d’exploitation personnalisée généralisée et généralisée et y attacher un disque de données, provisionner un nouveau réseau, déployer le disque dur virtuel et l’exécuter. Ce script peut être utilisé pour l’approvisionnement automatique, car il utilise les informations d’identification d’administrateur de machine virtuelle locale inline au lieu d’appeler Get-Credential , ce qui nécessite une interaction utilisateur. Ce script suppose que vous êtes déjà connecté à votre compte Azure. Vous pouvez confirmer votre état de connexion à l’aide de l’applet de commande Get-AzureSubscription .

Exemple 3 : Créer une machine virtuelle à partir d’une image de la Place de marché sans adresse IP publique

$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

Cet exemple provisionne un nouveau réseau et déploie une machine virtuelle Windows à partir de la Place de marché sans créer d’adresse IP publique ou de groupe de sécurité réseau. Ce script peut être utilisé pour l’approvisionnement automatique, car il utilise les informations d’identification d’administrateur de machine virtuelle locale inline au lieu d’appeler Get-Credential , ce qui nécessite une interaction utilisateur.

Paramètres

-AddressPrefix

Préfixe d’adresse du réseau virtuel qui sera créé pour la machine virtuelle.

Type:String
Position:Named
Valeur par défaut:192.168.0.0/16
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-AllocationMethod

Méthode d’allocation IP pour l’adresse IP publique qui sera créée pour la machine virtuelle.

Type:String
Valeurs acceptées:Static, Dynamic
Position:Named
Valeur par défaut:Static
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-AsJob

Exécutez l’applet de commande en arrière-plan et retournez un travail pour suivre la progression.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-AvailabilitySetName

Spécifie un nom pour le groupe à haute disponibilité.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Confirm

Vous demande une confirmation avant d’exécuter l’applet de commande.

Type:SwitchParameter
Alias:cf
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Credential

Informations d’identification de l’administrateur pour la machine virtuelle.

Type:PSCredential
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-DataDiskSizeInGb

Spécifie les tailles des disques de données en Go.

Type:Int32[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-DefaultProfile

Informations d’identification, compte, locataire et abonnement utilisés pour la communication avec Azure.

Type:IAzureContextContainer
Alias:AzureRmContext, AzureCredential
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-DisableBginfoExtension

Indique que cette applet de commande n’installe pas l’extension BG Info sur la machine virtuelle.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-DiskFile

Chemin d’accès local au fichier de disque dur virtuel à charger dans le cloud et pour créer la machine virtuelle, et il doit avoir « .vhd » comme suffixe.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-DomainNameLabel

Étiquette de sous-domaine pour le nom de domaine complet (FQDN) de la machine virtuelle. Cela prendra la forme {domainNameLabel}.{location}.cloudapp.azure.com.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Image

Nom de l’image conviviale sur laquelle la machine virtuelle sera générée. Ces éléments sont les suivants : Win2016Datacenter, Win2012R2Datacenter, Win2012Datacenter, Win2008R2SP1, UbuntuLTS, CentOS, CoreOS, Debian, openSUSE-Leap, RHEL, SLES.

Type:String
Alias:ImageName
Position:Named
Valeur par défaut:Win2016Datacenter
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-LicenseType

Spécifie un type de licence, qui indique que l’image ou le disque de la machine virtuelle a été concédé sous licence locale. Cette valeur est utilisée uniquement pour les images qui contiennent le système d’exploitation Windows Server. Les valeurs valides pour ce paramètre sont :

  • Windows_Client
  • Windows_Server Cette valeur ne peut pas être mise à jour. Si vous spécifiez ce paramètre pour une mise à jour, la valeur doit correspondre à la valeur initiale de la machine virtuelle.
Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Linux

Indique si le fichier disque est pour la machine virtuelle Linux, s’il est spécifié ; ou Windows, s’il n’est pas spécifié par défaut.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Location

Spécifie un emplacement pour la machine virtuelle.

Type:String
Position:1
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Name

Nom de la ressource de machine virtuelle.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-OpenPorts

Liste des ports à ouvrir sur le groupe de sécurité réseau (NSG) pour la machine virtuelle créée. La valeur par défaut dépend du type d’image choisi (par exemple, Windows : 3389, 5985 et Linux : 22).

Type:Int32[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-PublicIpAddressName

Nom d’une adresse IP publique (ou existante) pour la machine virtuelle créée à utiliser. S’il n’est pas spécifié, un nom est généré.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ResourceGroupName

Spécifie le nom d’un groupe de ressources.

Type:String
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-SecurityGroupName

Nom d’un groupe de sécurité réseau (NSG) nouveau (ou existant) que la machine virtuelle créée doit utiliser. S’il n’est pas spécifié, un nom est généré.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Size

Taille de la machine virtuelle. La valeur par défaut est : Standard_DS1_v2.

Type:String
Position:Named
Valeur par défaut:Standard_DS1_v2
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-SubnetAddressPrefix

Préfixe d’adresse du sous-réseau qui sera créé pour la machine virtuelle.

Type:String
Position:Named
Valeur par défaut:192.168.1.0/24
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-SubnetName

Nom d’un sous-réseau (ou existant) pour la machine virtuelle créée à utiliser. S’il n’est pas spécifié, un nom est généré.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-SystemAssignedIdentity

Si le paramètre est présent, la machine virtuelle reçoit une identité de système managée générée automatiquement.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Tag

Spécifie que les ressources et les groupes de ressources peuvent être étiquetés avec un ensemble de paires nom-valeur. L’ajout de balises à des ressources vous permet de regrouper les ressources entre les groupes de ressources et de créer vos propres vues. Chaque ressource ou groupe de ressources peut inclure un maximum de 15 balises.

Type:Hashtable
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-UserAssignedIdentity

Nom d’une identité de service managé qui doit être affectée à la machine virtuelle.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-VirtualNetworkName

Nom d’un réseau virtuel (ou existant) que la machine virtuelle créée doit utiliser. S’il n’est pas spécifié, un nom est généré.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-VM

Spécifie une machine virtuelle locale à créer. Pour obtenir un objet de machine virtuelle, utilisez l’applet de commande New-AzureRmVMConfig. D’autres applets de commande peuvent être utilisées pour configurer la machine virtuelle, comme Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage et Add-AzureRmVMNetworkInterface.

Type:PSVirtualMachine
Alias:VMProfile
Position:2
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-WhatIf

Montre ce qui se passe en cas d’exécution de l’applet de commande. L’applet de commande n’est pas exécutée.

Type:SwitchParameter
Alias:wi
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Zone

Spécifie la liste de zones de la machine virtuelle.

Type:String[]
Position:3
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

String

PSVirtualMachine

String[]

Hashtable

Sorties

PSAzureOperationResponse

PSVirtualMachine