다음을 통해 공유


New-AzureRmVM

가상 머신을 만듭니다.

Warning

AzureRM PowerShell 모듈은 2024년 2월 29일부터 공식적으로 사용되지 않습니다. 사용자는 지속적인 지원 및 업데이트를 보장하기 위해 AzureRM에서 Az PowerShell 모듈로 마이그레이션하는 것이 좋습니다.

AzureRM 모듈은 여전히 작동할 수 있지만 더 이상 기본 또는 지원되지 않으므로 사용자의 재량에 따라 계속 사용할 수 있습니다. 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

New-AzureRmVM cmdlet은 Azure에서 가상 머신을 만듭니다. 이 cmdlet은 가상 머신 개체를 입력으로 사용합니다. New-AzureRmVMConfig cmdlet을 사용하여 가상 머신 개체를 만듭니다. Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage, Add-AzureRmVMNetworkInterface 및 Set-AzureRmVMOSDisk와 같은 다른 cmdlet을 사용하여 가상 머신을 구성할 수 있습니다. 일반적인 SimpleParameterSet VM 만들기 인수를 선택적으로 만들어 VM을 만드는 편리한 방법을 제공합니다.

예제

예제 1: 가상 머신 만들기

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

이 예제 스크립트는 가상 머신을 만드는 방법을 보여 줍니다. 스크립트는 VM에 대한 사용자 이름 및 암호를 요청합니다. 이 스크립트는 다른 여러 cmdlet을 사용합니다.

예제 2: 사용자 지정 사용자 이미지에서 가상 머신 만들기

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

이 예제에서는 미리 준비된 일반화된 기존 사용자 지정 운영 체제 이미지를 가져와 데이터 디스크를 연결하고, 새 네트워크를 프로비전하고, VHD를 배포하고, 실행합니다. 이 스크립트는 사용자 상호 작용이 필요한 Get-Credential을 호출하는 대신 로컬 가상 머신 관리자 자격 증명을 인라인으로 사용하기 때문에 자동 프로비저닝에 사용할 수 있습니다. 이 스크립트는 사용자가 이미 Azure 계정에 로그인했다고 가정합니다. Get-AzureSubscription cmdlet을 사용하여 로그인 상태 확인할 수 있습니다.

예제 3: 공용 IP 없이 마켓플레이스 이미지에서 VM 만들기

$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

이 예제에서는 공용 IP 주소 또는 네트워크 보안 그룹을 만들지 않고 새 네트워크를 프로비전하고 Marketplace에서 Windows VM을 배포합니다. 이 스크립트는 사용자 상호 작용이 필요한 Get-Credential을 호출하는 대신 로컬 가상 머신 관리자 자격 증명을 인라인으로 사용하기 때문에 자동 프로비저닝에 사용할 수 있습니다.

매개 변수

-AddressPrefix

VM에 대해 생성될 가상 네트워크의 주소 접두사입니다.

Type:String
Position:Named
Default value:192.168.0.0/16
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AllocationMethod

VM에 대해 생성될 공용 IP에 대한 IP 할당 방법입니다.

Type:String
Accepted values:Static, Dynamic
Position:Named
Default value:Static
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsJob

백그라운드에서 cmdlet을 실행하고 작업을 반환하여 진행률을 추적합니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AvailabilitySetName

가용성 집합의 이름을 지정합니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

VM에 대한 관리자 자격 증명입니다.

Type:PSCredential
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DataDiskSizeInGb

데이터 디스크의 크기를 GB 단위로 지정합니다.

Type:Int32[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

Azure와의 통신에 사용되는 자격 증명, 계정, 테넌트 및 구독입니다.

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisableBginfoExtension

이 cmdlet이 가상 머신에 BG 정보 확장을 설치하지 않음을 나타냅니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DiskFile

클라우드에 업로드하고 VM을 만들기 위한 가상 하드 디스크 파일의 로컬 경로이며 접미사로 '.vhd'가 있어야 합니다.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DomainNameLabel

VM의 FQDN(정규화된 do기본 이름)에 대한 하위 기본 레이블입니다. 이 형식 {domainNameLabel}.{location}.cloudapp.azure.com은 다음과 같습니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Image

VM을 빌드할 친숙한 이미지 이름입니다. Win2016Datacenter, Win2012R2Datacenter, Win2012Datacenter, Win2008R2SP1, UbuntuLTS, CentOS, CoreOS, Debian, openSUSE-Leap, RHEL, SLES가 포함됩니다.

Type:String
Aliases:ImageName
Position:Named
Default value:Win2016Datacenter
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LicenseType

가상 머신의 이미지 또는 디스크가 온-프레미스에서 사용이 허가되었음을 나타내는 라이선스 유형을 지정합니다. 이 값은 Windows Server 운영 체제를 포함하는 이미지에만 사용됩니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • Windows_Client
  • Windows_Server 이 값은 업데이트할 수 없습니다. 업데이트에 이 매개 변수를 지정하는 경우 값은 가상 머신의 초기 값과 일치해야 합니다.
Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Linux

지정된 경우 디스크 파일이 Linux VM용인지 여부를 나타냅니다. 또는 Windows(기본적으로 지정되지 않은 경우)입니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Location

가상 머신의 위치를 지정합니다.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Name

VM 리소스의 이름입니다.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-OpenPorts

생성된 VM에 대한 NSG(네트워크 보안 그룹)에서 열 포트 목록입니다. 기본값은 선택한 이미지 유형(예: Windows: 3389, 5985 및 Linux: 22)에 따라 달라집니다.

Type:Int32[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PublicIpAddressName

사용할 만든 VM에 대한 새(또는 기존) 공용 IP 주소의 이름입니다. 지정하지 않으면 이름이 생성됩니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ResourceGroupName

리소스 그룹의 이름을 지정합니다.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SecurityGroupName

만든 VM에서 사용할 새(또는 기존) NSG(네트워크 보안 그룹)의 이름입니다. 지정하지 않으면 이름이 생성됩니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Size

가상 머신 크기입니다. 기본값은 Standard_DS1_v2.

Type:String
Position:Named
Default value:Standard_DS1_v2
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SubnetAddressPrefix

VM에 대해 생성될 서브넷의 주소 접두사입니다.

Type:String
Position:Named
Default value:192.168.1.0/24
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SubnetName

사용할 만든 VM에 대한 새(또는 기존) 서브넷의 이름입니다. 지정하지 않으면 이름이 생성됩니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SystemAssignedIdentity

매개 변수가 있으면 VM에 자동으로 생성되는 관리되는 시스템 ID가 할당됩니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Tag

리소스 및 리소스 그룹에 이름-값 쌍 집합으로 태그를 지정할 수 있도록 지정합니다. 리소스에 태그를 추가하면 리소스 그룹 간에 리소스를 그룹화하고 고유한 보기를 만들 수 있습니다. 각 리소스 또는 리소스 그룹에는 최대 15개의 태그가 포함될 수 있습니다.

Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-UserAssignedIdentity

VM에 할당해야 하는 관리 서비스 ID의 이름입니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VirtualNetworkName

사용할 만든 VM에 대한 새(또는 기존) 가상 네트워크의 이름입니다. 지정하지 않으면 이름이 생성됩니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VM

만들 로컬 가상 머신을 지정합니다. 가상 머신 개체를 가져오려면 New-AzureRmVMConfig cmdlet을 사용합니다. Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage 및 Add-AzureRmVMNetworkInterface와 같은 다른 cmdlet을 사용하여 가상 머신을 구성할 수 있습니다.

Type:PSVirtualMachine
Aliases:VMProfile
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Zone

가상 머신의 영역 목록을 지정합니다.

Type:String[]
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

String

PSVirtualMachine

String[]

Hashtable

출력

PSAzureOperationResponse

PSVirtualMachine