Partilhar via


New-AzureRmVM

Cria uma máquina virtual.

Aviso

O módulo AzureRM do PowerShell 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 Az PowerShell para garantir suporte e atualizações contínuos.

Embora o módulo AzureRM ainda possa funcionar, ele não é mais mantido ou suportado, colocando qualquer uso continuado a critério e risco do usuário. Consulte nossos recursos de migração para obter orientação 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. Este 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 os argumentos comuns de criação de VM opcionais.

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 para o 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 a partir de uma imagem de mercado 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 a partir 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 para a rede virtual que será criada para a VM.

Tipo:String
Position:Named
Default value:192.168.0.0/16
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-AllocationMethod

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

Tipo:String
Valores aceites:Static, Dynamic
Position:Named
Default value:Static
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-AsJob

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

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-AvailabilitySetName

Especifica um nome para o conjunto de disponibilidade.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Confirm

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

Tipo:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Credential

As credenciais de administrador para a VM.

Tipo:PSCredential
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-DataDiskSizeInGb

Especifica os tamanhos dos discos de dados em GB.

Tipo:Int32[]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-DefaultProfile

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

Tipo:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-DisableBginfoExtension

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

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-DiskFile

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

Tipo:String
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-DomainNameLabel

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

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Image

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

Tipo:String
Aliases:ImageName
Position:Named
Default value:Win2016Datacenter
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais: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 somente para imagens que contêm o sistema operacional Windows Server. Os valores aceitáveis para este parâmetro são:

  • Windows_Client
  • Windows_Server Este 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
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Linux

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

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Location

Especifica um local para a máquina virtual.

Tipo:String
Position:1
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Name

O nome do recurso VM.

Tipo:String
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais: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[]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais: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
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-ResourceGroupName

Especifica o nome de um grupo de recursos.

Tipo:String
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais: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
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Size

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

Tipo:String
Position:Named
Default value:Standard_DS1_v2
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-SubnetAddressPrefix

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

Tipo:String
Position:Named
Default value:192.168.1.0/24
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais: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
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-SystemAssignedIdentity

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

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Tag

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

Tipo:Hashtable
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-UserAssignedIdentity

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

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais: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
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais: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
Position:2
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-WhatIf

Apresenta o que aconteceria mediante a execução do cmdlet. O cmdlet não é executado.

Tipo:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Zone

Especifica a lista de zonas da máquina virtual.

Tipo:String[]
Position:3
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

Entradas

String

PSVirtualMachine

String[]

Hashtable

Saídas

PSAzureOperationResponse

PSVirtualMachine