New-AzureRmVM

仮想マシンを作成します。

重要

Az PowerShell モジュール で AzureRM PowerShell モジュールのすべての機能およびその他を利用できるようになったため、2024 年 2 月 29 日に AzureRM PowerShell モジュールは廃止になります。

サービスの中断を回避するために、2024 年 2 月 29 日までに、AzureRM PowerShell モジュールを使用するスクリプトを更新して、Az PowerShell モジュールを使用するようにしてください。 スクリプトを自動的に更新するには、 クイックスタート ガイドに従ってください。

構文

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>]

説明

New-AzureRmVM コマンドレットは、Azure に仮想マシンを作成します。 このコマンドレットは、仮想マシン オブジェクトを入力として受け取ります。 New-AzureRmVMConfig コマンドレットを使用して、仮想マシン オブジェクトを作成します。 その他のコマンドレットを使用して、Set-AzureRmVMOperatingSystem、Set-AzureRmVMSourceImage、Add-AzureRmVMNetworkInterface、Set-AzureRmVMOSDisk などの仮想マシンを構成できます。 共通 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 のユーザー名とパスワードが求められます。 このスクリプトでは、他のいくつかのコマンドレットを使用します。

例 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

この例では、既存の sys-prepped 一般化されたカスタム オペレーティング システム イメージを取得し、それにデータ ディスクを接続し、新しいネットワークをプロビジョニングして VHD を展開して実行します。 このスクリプトは、ユーザーの操作を必要とする Get-Credential を呼び出す代わりにローカル仮想マシン管理者の資格情報をインラインで使用するため、自動プロビジョニングに使用できます。 このスクリプトは、Azure アカウントに既にログインしていることを前提としています。 Get-AzureSubscription コマンドレットを使用して、ログインの状態を確認できます。

例 3: パブリック IP なしで Marketplace イメージから VM を作成する

$VMLocalAdminUser = "LocalAdminUser"
$VMLocalAdminSecurePassword = ConvertTo-SecureString <password> -AsPlainText -Force
$LocationName = "westus"
$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
Accept pipeline input:False
Accept wildcard characters:False
-AllocationMethod

VM 用に作成されるパブリック IP の IP 割り当て方法。

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

バックグラウンドでコマンドレットを実行し、ジョブを返して進行状況を追跡します。

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

可用性セットの名前を指定します。

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

コマンドレットの実行前に確認を求めるメッセージが表示されます。

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

VM の管理者資格情報。

Type:PSCredential
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-DataDiskSizeInGb

データ ディスクのサイズを GB 単位で指定します。

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

Azure との通信に使用される資格情報、アカウント、テナント、サブスクリプション。

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

このコマンドレットが仮想マシンに BG 情報 拡張機能をインストールしないことを示します。

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

クラウドにアップロードされ、VM を作成するための仮想ハード ディスク ファイルへのローカル パス。サフィックスとして '.vhd' が必要です。

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

VM の完全修飾ドメイン名 (FQDN) のサブドメイン ラベル。 これは、フォーム {domainNameLabel}.{location}.cloudapp.azure.comを取ります.

Type:String
Position:Named
Default value:None
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
Accept pipeline input:False
Accept wildcard characters:False
-LicenseType

ライセンスの種類を指定します。これは、仮想マシンのイメージまたはディスクがオンプレミスでライセンスされたことを示します。 この値は、Windows Server オペレーティング システムを含むイメージにのみ使用されます。 このパラメーターの有効値は、次のとおりです。

  • Windows_Client
  • Windows_Server この値は更新できません。 更新プログラムにこのパラメーターを指定する場合、値は仮想マシンの初期値と一致する必要があります。
Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Linux

ディスク ファイルが Linux VM 用かどうかを示します (指定されている場合)。または Windows (既定で指定されていない場合)。

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

仮想マシンの場所を指定します。

Type:String
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Name

VM リソースの名前。

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

作成された VM のネットワーク セキュリティ グループ (NSG) で開くポートの一覧。 既定値は、選択したイメージの種類 (Windows: 3389、5985、Linux: 22) によって異なります。

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

使用する作成済み VM の新しい (または既存の) パブリック IP アドレスの名前。 指定しない場合は、名前が生成されます。

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

リソース グループの名前を指定します。

Type:String
Position:0
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-SecurityGroupName

使用する作成済み VM の新しい (または既存の) ネットワーク セキュリティ グループ (NSG) の名前。 指定しない場合は、名前が生成されます。

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

仮想マシンのサイズ。 既定値は Standard_DS1_v2 です。

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

VM 用に作成されるサブネットのアドレス プレフィックス。

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

使用する作成済み VM の新しい (または既存の) サブネットの名前。 指定しない場合は、名前が生成されます。

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

パラメーターが存在する場合、VM には自動生成されるマネージド システム ID が割り当てられます。

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

リソースとリソース グループに一連の名前と値のペアでタグ付けできることを指定します。 リソースにタグを追加すると、異なるリソース グループのリソースをグループ化したり、独自のビューを作成したりできます。 各リソースまたはリソース グループには、最大で 15 個のタグを含めることができます。

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

VM に割り当てる必要があるマネージド サービス ID の名前。

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

作成した VM で使用する新しい (または既存の) 仮想ネットワークの名前。 指定しない場合は、名前が生成されます。

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

作成するローカル仮想マシンを指定します。 仮想マシン オブジェクトを取得するには、New-AzureRmVMConfig コマンドレットを使用します。 その他のコマンドレットを使用して、Set-AzureRmVMOperatingSystem、Set-AzureRmVMSourceImage、Add-AzureRmVMNetworkInterface などの仮想マシンを構成できます。

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

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

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

仮想マシンのゾーン一覧を指定します。

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

入力

String

PSVirtualMachine

String[]

Hashtable

出力

PSAzureOperationResponse

PSVirtualMachine