Compartir a través de


New-AzureRmVM

Crea una máquina virtual.

Advertencia

El módulo de PowerShell de AzureRM ha quedado en desuso oficialmente a partir del 29 de febrero de 2024. Se recomienda a los usuarios migrar de AzureRM al módulo Az PowerShell para seguir recibiendo soporte técnico y actualizaciones.

Aunque el módulo AzureRM puede seguir funcionando, ya no se mantiene ni se admite, colocando cualquier uso continuado a discreción y riesgo del usuario. Consulte nuestros recursos de migración para ver una guía sobre la transición al módulo Az.

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

El cmdlet New-AzureRmVM crea una máquina virtual en Azure. Este cmdlet toma un objeto de máquina virtual como entrada. Use el cmdlet New-AzureRmVMConfig para crear un objeto de máquina virtual. Otros cmdlets se pueden usar para configurar la máquina virtual, como Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage, Add-AzureRmVMNetworkInterface y Set-AzureRmVMOSDisk. SimpleParameterSet proporciona un método práctico para crear una máquina virtual mediante la creación de argumentos de creación de máquinas virtuales comunes opcionales.

Ejemplos

Ejemplo 1: Creación de una máquina virtual

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

En este script de ejemplo se muestra cómo crear una máquina virtual. El script le pedirá un nombre de usuario y una contraseña para la máquina virtual. Este script usa otros cmdlets.

Ejemplo 2: Creación de una máquina virtual a partir de una imagen de usuario personalizada

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

En este ejemplo se toma una imagen de sistema operativo personalizada generalizada existente y se adjunta un disco de datos, se aprovisiona una nueva red, se implementa el disco duro virtual y se ejecuta. Este script se puede usar para el aprovisionamiento automático porque usa las credenciales de administrador de máquina virtual local insertadas en lugar de llamar a Get-Credential , lo que requiere interacción del usuario. Este script supone que ya ha iniciado sesión en su cuenta de Azure. Puede confirmar el estado de inicio de sesión mediante el cmdlet Get-AzureSubscription .

Ejemplo 3: Creación de una máquina virtual a partir de una imagen de Marketplace sin una dirección IP pública

$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

En este ejemplo se aprovisiona una nueva red e implementa una máquina virtual Windows desde Marketplace sin crear una dirección IP pública ni un grupo de seguridad de red. Este script se puede usar para el aprovisionamiento automático porque usa las credenciales de administrador de máquina virtual local insertadas en lugar de llamar a Get-Credential , lo que requiere interacción del usuario.

Parámetros

-AddressPrefix

Prefijo de dirección de la red virtual que se creará para la máquina virtual.

Tipo:String
Position:Named
valor predeterminado:192.168.0.0/16
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-AllocationMethod

Método de asignación de IP para la dirección IP pública que se creará para la máquina virtual.

Tipo:String
valores aceptados:Static, Dynamic
Position:Named
valor predeterminado:Static
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-AsJob

Ejecute el cmdlet en segundo plano y devuelva un trabajo para realizar un seguimiento del progreso.

Tipo:SwitchParameter
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-AvailabilitySetName

Especifica un nombre para el conjunto de disponibilidad.

Tipo:String
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Le solicita su confirmación antes de ejecutar el cmdlet.

Tipo:SwitchParameter
Aliases:cf
Position:Named
valor predeterminado:False
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Credenciales de administrador para la máquina virtual.

Tipo:PSCredential
Position:Named
valor predeterminado:None
Requerido:True
Accept pipeline input:False
Accept wildcard characters:False

-DataDiskSizeInGb

Especifica los tamaños de los discos de datos en GB.

Tipo:Int32[]
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

Las credenciales, la cuenta, el inquilino y la suscripción que se usan para la comunicación con Azure.

Tipo:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-DisableBginfoExtension

Indica que este cmdlet no instala la extensión BG Info en la máquina virtual.

Tipo:SwitchParameter
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-DiskFile

La ruta de acceso local al archivo de disco duro virtual que se va a cargar en la nube y para crear la máquina virtual, y debe tener ".vhd" como sufijo.

Tipo:String
Position:Named
valor predeterminado:None
Requerido:True
Accept pipeline input:False
Accept wildcard characters:False

-DomainNameLabel

Etiqueta de subdominio para el nombre de dominio completo (FQDN) de la máquina virtual. Esto tomará la forma {domainNameLabel}.{location}.cloudapp.azure.com.

Tipo:String
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-Image

Nombre descriptivo de la imagen en la que se compilará la máquina virtual. Estos incluyen: Win2016Datacenter, Win2012R2Datacenter, Win2012Datacenter, Win2008R2SP1, UbuntuLTS, CentOS, CoreOS, Debian, openSUSE-Leap, RHEL, SLES.

Tipo:String
Aliases:ImageName
Position:Named
valor predeterminado:Win2016Datacenter
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-LicenseType

Especifica un tipo de licencia, que indica que la imagen o el disco de la máquina virtual tenía una licencia local. Este valor solo se usa para imágenes que contienen el sistema operativo Windows Server. Los valores permitidos para este parámetro son los siguientes:

  • Windows_Client
  • Windows_Server Este valor no se puede actualizar. Si especifica este parámetro para una actualización, el valor debe coincidir con el valor inicial de la máquina virtual.
Tipo:String
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-Linux

Indica si el archivo de disco es para la máquina virtual Linux, si se especifica; o Windows, si no se especifica de forma predeterminada.

Tipo:SwitchParameter
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-Location

Especifica una ubicación para la máquina virtual.

Tipo:String
Position:1
valor predeterminado:None
Requerido:True
Accept pipeline input:False
Accept wildcard characters:False

-Name

Nombre del recurso de máquina virtual.

Tipo:String
Position:Named
valor predeterminado:None
Requerido:True
Accept pipeline input:False
Accept wildcard characters:False

-OpenPorts

Lista de puertos que se van a abrir en el grupo de seguridad de red (NSG) de la máquina virtual creada. El valor predeterminado depende del tipo de imagen elegido (es decir, Windows: 3389, 5985 y Linux: 22).

Tipo:Int32[]
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-PublicIpAddressName

Nombre de una dirección IP pública nueva (o existente) para la máquina virtual creada que se va a usar. Si no se especifica, se generará un nombre.

Tipo:String
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-ResourceGroupName

Especifica el nombre de un grupo de recursos.

Tipo:String
Position:0
valor predeterminado:None
Requerido:True
Accept pipeline input:False
Accept wildcard characters:False

-SecurityGroupName

Nombre de un grupo de seguridad de red (NSG) nuevo (o existente) para la máquina virtual creada que se va a usar. Si no se especifica, se generará un nombre.

Tipo:String
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-Size

Tamaño de la máquina virtual. El valor predeterminado es: Standard_DS1_v2.

Tipo:String
Position:Named
valor predeterminado:Standard_DS1_v2
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-SubnetAddressPrefix

Prefijo de dirección de la subred que se creará para la máquina virtual.

Tipo:String
Position:Named
valor predeterminado:192.168.1.0/24
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-SubnetName

Nombre de una subred nueva (o existente) para la máquina virtual creada que se va a usar. Si no se especifica, se generará un nombre.

Tipo:String
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-SystemAssignedIdentity

Si el parámetro está presente, a la máquina virtual se le asigna una identidad del sistema administrada que se genera automáticamente.

Tipo:SwitchParameter
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-Tag

Especifica que los recursos y los grupos de recursos se pueden etiquetar con un conjunto de pares nombre-valor. Agregar etiquetas a recursos le permite agrupar los recursos entre grupos de recursos y crear sus propias vistas. Cada recurso o grupo de recursos puede tener un máximo de 15 etiquetas.

Tipo:Hashtable
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:True
Accept wildcard characters:False

-UserAssignedIdentity

Nombre de una identidad de servicio administrada que se debe asignar a la máquina virtual.

Tipo:String
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-VirtualNetworkName

Nombre de una red virtual nueva (o existente) para la máquina virtual creada que se va a usar. Si no se especifica, se generará un nombre.

Tipo:String
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-VM

Especifica una máquina virtual local que se va a crear. Para obtener un objeto de máquina virtual, use el cmdlet New-AzureRmVMConfig. Otros cmdlets se pueden usar para configurar la máquina virtual, como Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage y Add-AzureRmVMNetworkInterface.

Tipo:PSVirtualMachine
Aliases:VMProfile
Position:2
valor predeterminado:None
Requerido:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.

Tipo:SwitchParameter
Aliases:wi
Position:Named
valor predeterminado:False
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-Zone

Especifica la lista de zonas de la máquina virtual.

Tipo:String[]
Position:3
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

String

PSVirtualMachine

String[]

Hashtable

Salidas

PSAzureOperationResponse

PSVirtualMachine