New-AzureRmVM
가상 머신을 만듭니다.
Warning
AzureRM PowerShell 모듈은 2024년 2월 29일부터 공식적으로 사용되지 않습니다. 사용자는 지속적인 지원 및 업데이트를 보장하기 위해 AzureRM에서 Az PowerShell 모듈로 마이그레이션하는 것이 좋습니다.
AzureRM 모듈은 여전히 작동할 수 있지만 더 이상 유지 관리되거나 지원되지 않으므로 사용자의 재량에 따라 계속 사용할 수 있습니다. Az 모듈로 전환하는 방법에 대한 지침은 마이그레이션 리소스를 참조하세요.
구문
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에 대해 생성될 가상 네트워크의 주소 접두사입니다.
형식: | String |
Position: | Named |
Default value: | 192.168.0.0/16 |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-AllocationMethod
VM에 대해 생성될 공용 IP에 대한 IP 할당 방법입니다.
형식: | String |
허용되는 값: | Static, Dynamic |
Position: | Named |
Default value: | Static |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-AsJob
백그라운드에서 cmdlet을 실행하고 작업을 반환하여 진행률을 추적합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-AvailabilitySetName
가용성 집합의 이름을 지정합니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Confirm
cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.
형식: | SwitchParameter |
별칭: | cf |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Credential
VM에 대한 관리자 자격 증명입니다.
형식: | PSCredential |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-DataDiskSizeInGb
데이터 디스크의 크기를 GB 단위로 지정합니다.
형식: | Int32[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-DefaultProfile
Azure와의 통신에 사용되는 자격 증명, 계정, 테넌트 및 구독입니다.
형식: | IAzureContextContainer |
별칭: | AzureRmContext, AzureCredential |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-DisableBginfoExtension
이 cmdlet이 가상 머신에 BG 정보 확장을 설치하지 않음을 나타냅니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-DiskFile
클라우드에 업로드하고 VM을 만들기 위한 가상 하드 디스크 파일의 로컬 경로이며 접미사로 '.vhd'가 있어야 합니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-DomainNameLabel
VM의 FQDN(정규화된 도메인 이름)에 대한 하위 도메인 레이블입니다. 이 형식 {domainNameLabel}.{location}.cloudapp.azure.com
은 다음과 같습니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Image
VM을 빌드할 친숙한 이미지 이름입니다. Win2016Datacenter, Win2012R2Datacenter, Win2012Datacenter, Win2008R2SP1, UbuntuLTS, CentOS, CoreOS, Debian, openSUSE-Leap, RHEL, SLES가 포함됩니다.
형식: | String |
별칭: | ImageName |
Position: | Named |
Default value: | Win2016Datacenter |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-LicenseType
가상 머신의 이미지 또는 디스크가 온-프레미스에서 사용이 허가되었음을 나타내는 라이선스 유형을 지정합니다. 이 값은 Windows Server 운영 체제를 포함하는 이미지에만 사용됩니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.
- Windows_Client
- Windows_Server 이 값은 업데이트할 수 없습니다. 업데이트에 이 매개 변수를 지정하는 경우 값은 가상 머신의 초기 값과 일치해야 합니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Linux
지정된 경우 디스크 파일이 Linux VM용인지 여부를 나타냅니다. 또는 Windows(기본적으로 지정되지 않은 경우)입니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Location
가상 머신의 위치를 지정합니다.
형식: | String |
Position: | 1 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Name
VM 리소스의 이름입니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-OpenPorts
생성된 VM에 대한 NSG(네트워크 보안 그룹)에서 열 포트 목록입니다. 기본값은 선택한 이미지 유형(예: Windows: 3389, 5985 및 Linux: 22)에 따라 달라집니다.
형식: | Int32[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-PublicIpAddressName
사용할 만든 VM에 대한 새(또는 기존) 공용 IP 주소의 이름입니다. 지정하지 않으면 이름이 생성됩니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-ResourceGroupName
리소스 그룹의 이름을 지정합니다.
형식: | String |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-SecurityGroupName
만든 VM에서 사용할 새(또는 기존) NSG(네트워크 보안 그룹)의 이름입니다. 지정하지 않으면 이름이 생성됩니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Size
가상 머신 크기입니다. 기본값은 Standard_DS1_v2.
형식: | String |
Position: | Named |
Default value: | Standard_DS1_v2 |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-SubnetAddressPrefix
VM에 대해 생성될 서브넷의 주소 접두사입니다.
형식: | String |
Position: | Named |
Default value: | 192.168.1.0/24 |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-SubnetName
사용할 만든 VM에 대한 새(또는 기존) 서브넷의 이름입니다. 지정하지 않으면 이름이 생성됩니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-SystemAssignedIdentity
매개 변수가 있으면 VM에 자동으로 생성되는 관리되는 시스템 ID가 할당됩니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Tag
리소스 및 리소스 그룹에 이름-값 쌍 집합으로 태그를 지정할 수 있도록 지정합니다. 리소스에 태그를 추가하면 리소스 그룹 간에 리소스를 그룹화하고 고유한 보기를 만들 수 있습니다. 각 리소스 또는 리소스 그룹에는 최대 15개의 태그가 포함될 수 있습니다.
형식: | Hashtable |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-UserAssignedIdentity
VM에 할당해야 하는 관리 서비스 ID의 이름입니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-VirtualNetworkName
사용할 만든 VM에 대한 새(또는 기존) 가상 네트워크의 이름입니다. 지정하지 않으면 이름이 생성됩니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-VM
만들 로컬 가상 머신을 지정합니다. 가상 머신 개체를 가져오려면 New-AzureRmVMConfig cmdlet을 사용합니다. Set-AzureRmVMOperatingSystem, Set-AzureRmVMSourceImage 및 Add-AzureRmVMNetworkInterface와 같은 다른 cmdlet을 사용하여 가상 머신을 구성할 수 있습니다.
형식: | PSVirtualMachine |
별칭: | VMProfile |
Position: | 2 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-WhatIf
cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.
형식: | SwitchParameter |
별칭: | wi |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Zone
가상 머신의 영역 목록을 지정합니다.
형식: | String[] |
Position: | 3 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
String[]