Compartilhar via


New-AzureRmVM

Cria uma máquina virtual.

Aviso

O módulo PowerShell do AzureRM foi oficialmente preterido a partir de 29 de fevereiro de 2024. Os usuários são aconselhados a migrar do AzureRM para o módulo do Az PowerShell para garantir o suporte e as atualizações contínuas.

Embora o módulo AzureRM ainda possa funcionar, ele não tem suporte ou será mantido, colocando qualquer uso contínuo a critério e risco do usuário. Consulte nossos recursos de migração para obter diretrizes sobre a transição para o módulo Az.

Sintaxe

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

O cmdlet New-AzureRmVM cria uma máquina virtual no Azure. Esse cmdlet usa um objeto de máquina virtual como entrada. Use o cmdlet New-AzureRmVMConfig para criar um objeto de máquina virtual. Outros cmdlets podem ser usados para configurar a máquina virtual, como Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage, Add-AzureRmVMNetworkInterface e Set-AzureRmVMOSDisk. O SimpleParameterSet fornece um método conveniente para criar uma VM tornando opcionais os argumentos comuns de criação de VM.

Exemplos

Exemplo 1: Criar uma 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

Este script de exemplo mostra como criar uma máquina virtual. O script solicitará um nome de usuário e senha para a VM. Esse script usa vários outros cmdlets.

Exemplo 2: Criar uma máquina virtual a partir de uma imagem de usuário 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

Este exemplo usa uma imagem de sistema operacional personalizada generalizada e preparada pelo sistema existente e anexa um disco de dados a ela, provisiona uma nova rede, implanta o VHD e o executa. Esse script pode ser usado para provisionamento automático porque usa as credenciais de administrador da máquina virtual local embutidas em vez de chamar Get-Credential , que requer interação do usuário. Esse script pressupõe que você já esteja conectado à sua conta do Azure. Você pode confirmar seu status de logon usando o cmdlet Get-AzureSubscription .

Exemplo 3: Criar uma VM de uma imagem do marketplace sem um IP público

$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

Este exemplo provisiona uma nova rede e implanta uma VM do Windows do Marketplace sem criar um endereço IP público ou um Grupo de Segurança de Rede. Esse script pode ser usado para provisionamento automático porque usa as credenciais de administrador da máquina virtual local embutidas em vez de chamar Get-Credential , que requer interação do usuário.

Parâmetros

-AddressPrefix

O prefixo de endereço da rede virtual que será criada para a VM.

Tipo:String
Cargo:Named
Valor padrão:192.168.0.0/16
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-AllocationMethod

O método de alocação de IP para o IP público que será criado para a VM.

Tipo:String
Valores aceitos:Static, Dynamic
Cargo:Named
Valor padrão:Static
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-AsJob

Execute o cmdlet em segundo plano e retorne um trabalho para acompanhar o progresso.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-AvailabilitySetName

Especifica um nome para o conjunto de disponibilidade.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Confirm

Solicita sua confirmação antes de executar o cmdlet.

Tipo:SwitchParameter
Aliases:cf
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Credential

As credenciais de administrador da VM.

Tipo:PSCredential
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-DataDiskSizeInGb

Especifica os tamanhos dos discos de dados em GB.

Tipo:Int32[]
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-DefaultProfile

As credenciais, a conta, o locatário e a assinatura usados para comunicação com o Azure.

Tipo:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-DisableBginfoExtension

Indica que esse cmdlet não instala a extensão BG Info na máquina virtual.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-DiskFile

O caminho local para o arquivo de disco rígido virtual a ser carregado na nuvem e para criar a VM, e deve ter '.vhd' como sufixo.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-DomainNameLabel

O rótulo de subdomínio para o FQDN (nome de domínio totalmente qualificado) da VM. Isso assumirá a forma {domainNameLabel}.{location}.cloudapp.azure.com.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Image

O nome da imagem amigável sobre o qual a VM será criada. Estes incluem: Win2016Datacenter, Win2012R2Datacenter, Win2012Datacenter, Win2008R2SP1, UbuntuLTS, CentOS, CoreOS, Debian, openSUSE-Leap, RHEL, SLES.

Tipo:String
Aliases:ImageName
Cargo:Named
Valor padrão:Win2016Datacenter
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-LicenseType

Especifica um tipo de licença, que indica que a imagem ou o disco da máquina virtual foi licenciado localmente. Esse valor é usado apenas para imagens que contêm o sistema operacional Windows Server. Os valores aceitáveis para esse parâmetro são:

  • Windows_Client
  • Windows_Server Esse valor não pode ser atualizado. Se você especificar esse parâmetro para uma atualização, o valor deverá corresponder ao valor inicial da máquina virtual.
Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Linux

Indica se o arquivo de disco é para VM do Linux, se especificado; ou Windows, se não especificado por padrão.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Location

Especifica um local para a máquina virtual.

Tipo:String
Cargo:1
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Name

O nome do recurso de VM.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-OpenPorts

Uma lista de portas a serem abertas no NSG (grupo de segurança de rede) para a VM criada. O valor padrão depende do tipo de imagem escolhida (ou seja, Windows: 3389, 5985 e Linux: 22).

Tipo:Int32[]
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-PublicIpAddressName

O nome de um endereço IP público novo (ou existente) para a VM criada usar. Se não for especificado, um nome será gerado.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-ResourceGroupName

Especifica o nome de um grupo de recursos.

Tipo:String
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-SecurityGroupName

O nome de um NSG (grupo de segurança de rede) novo (ou existente) para a VM criada usar. Se não for especificado, um nome será gerado.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Size

O tamanho da máquina virtual. O valor padrão é: Standard_DS1_v2.

Tipo:String
Cargo:Named
Valor padrão:Standard_DS1_v2
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-SubnetAddressPrefix

O prefixo de endereço da sub-rede que será criada para a VM.

Tipo:String
Cargo:Named
Valor padrão:192.168.1.0/24
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-SubnetName

O nome de uma sub-rede nova (ou existente) para a VM criada usar. Se não for especificado, um nome será gerado.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-SystemAssignedIdentity

Se o parâmetro estiver presente, a VM receberá uma identidade de sistema gerenciada gerada automaticamente.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Tag

Especifica que os recursos e grupos de recursos podem ser marcados com um conjunto de pares nome-valor. A adição de tags aos recursos permite agrupar recursos entre grupos de recursos e criar suas próprias exibições. Cada recurso ou grupo de recursos pode ter no máximo 15 marcas.

Tipo:Hashtable
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-UserAssignedIdentity

O nome de uma identidade de serviço gerenciado que deve ser atribuída à VM.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-VirtualNetworkName

O nome de uma rede virtual nova (ou existente) para a VM criada usar. Se não for especificado, um nome será gerado.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-VM

Especifica uma máquina virtual local a ser criada. Para obter um objeto de máquina virtual, use o cmdlet New-AzureRmVMConfig. Outros cmdlets podem ser usados para configurar a máquina virtual, como Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage e Add-AzureRmVMNetworkInterface.

Tipo:PSVirtualMachine
Aliases:VMProfile
Cargo:2
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Tipo:SwitchParameter
Aliases:wi
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Zone

Especifica a lista de zonas da máquina virtual.

Tipo:String[]
Cargo:3
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

String

PSVirtualMachine

String[]

Hashtable

Saídas

PSAzureOperationResponse

PSVirtualMachine