New-AzVMConfig
構成可能な仮想マシン オブジェクトを作成します。
構文
New-AzVMConfig
[-VMName] <String>
[-VMSize] <String>
[[-AvailabilitySetId] <String>]
[[-LicenseType] <String>]
[-Zone <String[]>]
[-ProximityPlacementGroupId <String>]
[-HostId <String>]
[-VmssId <String>]
[-MaxPrice <Double>]
[-EvictionPolicy <String>]
[-Priority <String>]
[-Tags <Hashtable>]
[-EnableUltraSSD]
[-EncryptionAtHost]
[-CapacityReservationGroupId <String>]
[-ImageReferenceId <String>]
[-DiskControllerType <String>]
[-UserData <String>]
[-PlatformFaultDomain <Int32>]
[-HibernationEnabled]
[-vCPUCountAvailable <Int32>]
[-vCPUCountPerCore <Int32>]
[-SharedGalleryImageId <String>]
[-SecurityType <String>]
[-EnableVtpm <Boolean>]
[-EnableSecureBoot <Boolean>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzVMConfig
[-VMName] <String>
[-VMSize] <String>
[[-AvailabilitySetId] <String>]
[[-LicenseType] <String>]
[-IdentityType] <ResourceIdentityType>
[-IdentityId <String[]>]
[-Zone <String[]>]
[-ProximityPlacementGroupId <String>]
[-HostId <String>]
[-VmssId <String>]
[-MaxPrice <Double>]
[-EvictionPolicy <String>]
[-Priority <String>]
[-Tags <Hashtable>]
[-EnableUltraSSD]
[-EncryptionAtHost]
[-CapacityReservationGroupId <String>]
[-ImageReferenceId <String>]
[-DiskControllerType <String>]
[-UserData <String>]
[-PlatformFaultDomain <Int32>]
[-HibernationEnabled]
[-vCPUCountAvailable <Int32>]
[-vCPUCountPerCore <Int32>]
[-SharedGalleryImageId <String>]
[-SecurityType <String>]
[-EnableVtpm <Boolean>]
[-EnableSecureBoot <Boolean>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
説明
New-AzVMConfig コマンドレットは、Azure 用に構成可能なローカル仮想マシン オブジェクトを作成します。
次のコマンドレットを使用して、仮想マシン オブジェクトのさまざまなプロパティを設定します。
- Add-AzVMNetworkInterface ネットワーク プロファイルを設定します。
- SET-AzVMOperatingSystem OS プロファイルを設定します。
- ソース イメージを設定する Set-AzVMSourceImage 。
- SET-AzVMOSDisk OS ディスク (ストレージ プロファイル) を設定します。
- Get-AzComputeResourceSku を使用して、サブスクリプションとリージョンで使用可能な仮想マシンのサイズを確認することもできます。
チュートリアルについては、「 Quickstart: PowerShell を使用して Azure に Windows 仮想マシンを作成する 」を参照してください。
例
例 1: 仮想マシン リソースを作成する
$rgname = "resourceGroupName";
$loc = "eastus";
New-AzResourceGroup -Name $rgname -Location $loc -Force;
# General Setup
$vmname = 'v' + $rgname;
$domainNameLabel = "d1" + $rgname;
$vmSize = 'Standard_DS3_v2';
$computerName = "c" + $rgname;
$securityTypeStnd = "Standard";
# Credential. Input Username and Password values
$user = "";
$securePassword = "" | ConvertTo-SecureString -AsPlainText -Force;
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
# Creating a VMConfig
$vmconfig = New-AzVMConfig -VMName $vmname -vmsize $vmsize -SecurityType $securityTypeStnd;
# Set source image values
$publisherName = "MicrosoftWindowsServer";
$offer = "WindowsServer";
$sku = "2019-DataCenter";
$vmconfig = Set-AzVMSourceImage -VM $vmconfig -PublisherName $publisherName -Offer $offer -Skus $sku -Version 'latest';
# NRP Setup
$subnet = New-AzVirtualNetworkSubnetConfig -Name ('subnet' + $rgname) -AddressPrefix "10.0.0.0/24";
$vnet = New-AzVirtualNetwork -Force -Name ('vnet' + $rgname) -ResourceGroupName $rgname -Location $loc -AddressPrefix "10.0.0.0/16" -Subnet $subnet;
$vnet = Get-AzVirtualNetwork -Name ('vnet' + $rgname) -ResourceGroupName $rgname;
$subnetId = $vnet.Subnets[0].Id;
$pubip = New-AzPublicIpAddress -Force -Name ('pubip' + $rgname) -ResourceGroupName $rgname -Location $loc -AllocationMethod Static -DomainNameLabel $domainNameLabel;
$pubip = Get-AzPublicIpAddress -Name ('pubip' + $rgname) -ResourceGroupName $rgname;
$pubipId = $pubip.Id;
$nic = New-AzNetworkInterface -Force -Name ('nic' + $rgname) -ResourceGroupName $rgname -Location $loc -SubnetId $subnetId -PublicIpAddressId $pubip.Id;
$nic = Get-AzNetworkInterface -Name ('nic' + $rgname) -ResourceGroupName $rgname;
$nicId = $nic.Id;
$vmconfig = Add-AzVMNetworkInterface -VM $vmconfig -Id $nicId;
$vmconfig = Set-AzVMOperatingSystem -VM $vmconfig -Windows -ComputerName $computerName -Credential $cred;
# Create the VM
New-AzVM -ResourceGroupName $rgname -Location $loc -Vm $vmconfig;
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmname;
例 2: 障害ドメインがセットアップされた仮想マシン スケール セットに仮想マシン オブジェクトを作成する
$rgname = "resourceGroupName";
$loc = "eastus";
$vmname = "vm" + $rgname;
New-AzResourceGroup -Name $rgname -Location $loc -Force;
$domainNameLabel = "d1" + $rgname;
$vmname = "v" + $rgname;
$vnetname = "myVnet";
$vnetAddress = "10.0.0.0/16";
$subnetname = "slb" + $rgname;
$subnetAddress = "10.0.2.0/24";
$vmssName = "vmss" + $rgname;
$faultDomainNumber = 2;
$vmssFaultDomain = 3;
$securityTypeStnd = "Standard";
$OSDiskName = $vmname + "-osdisk";
$NICName = $vmname+ "-nic";
$NSGName = $vmname + "-NSG";
$OSDiskSizeinGB = 128;
$VMSize = "Standard_DS2_v2";
$PublisherName = "MicrosoftWindowsServer";
$Offer = "WindowsServer";
$SKU = "2019-Datacenter";
# Credential. Input Username and Password values.
$user = "";
$securePassword = "" | ConvertTo-SecureString -AsPlainText -Force;
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetname -AddressPrefix $subnetAddress;
$vnet = New-AzVirtualNetwork -Name $vnetname -ResourceGroupName $rgname -Location $loc -AddressPrefix $vnetAddress -Subnet $frontendSubnet;
$vmssConfig = New-AzVmssConfig -Location $loc -PlatformFaultDomainCount $vmssFaultDomain -SecurityType $securityTypeStnd;
$vmss = New-AzVmss -ResourceGroupName $RGName -Name $VMSSName -VirtualMachineScaleSet $vmssConfig;
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name RDP -Protocol Tcp -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow;
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $RGName -Location $loc -Name $NSGName -SecurityRules $nsgRuleRDP;
$nic = New-AzNetworkInterface -Name $NICName -ResourceGroupName $RGName -Location $loc -SubnetId $vnet.Subnets[0].Id -NetworkSecurityGroupId $nsg.Id -EnableAcceleratedNetworking;
# VM
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize $VMSize -VmssId $vmss.Id -PlatformFaultDomain $faultDomainNumber -SecurityType $securityTypeStnd;
Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmName -Credential $cred ;
Set-AzVMOSDisk -VM $vmConfig -StorageAccountType "Premium_LRS" -Caching ReadWrite -Name $OSDiskName -DiskSizeInGB $OSDiskSizeinGB -CreateOption FromImage ;
Set-AzVMSourceImage -VM $vmConfig -PublisherName $PublisherName -Offer $Offer -Skus $SKU -Version latest ;
Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id;
New-AzVM -ResourceGroupName $RGName -Location $loc -VM $vmConfig;
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmName;
例 2: TrustedLaunch セキュリティの種類に対して仮想マシン構成オブジェクトを使用して VM を作成し、既定ではフラグとして [Vhdm] と [セキュア ブート] を True に設定します。
$rgname = "rgname";
$loc = "eastus";
New-AzResourceGroup -Name $rgname -Location $loc -Force;
# VM Profile & Hardware
$domainNameLabel = "d1" + $rgname;
$vmsize = 'Standard_D4s_v3';
$vmname = $rgname + 'Vm';
$securityType_TL = "TrustedLaunch";
$vnetname = "myVnet";
$vnetAddress = "10.0.0.0/16";
$subnetname = "slb" + $rgname;
$subnetAddress = "10.0.2.0/24";
$OSDiskName = $vmname + "-osdisk";
$NICName = $vmname+ "-nic";
$NSGName = $vmname + "-NSG";
$OSDiskSizeinGB = 128;
$PublisherName = "MicrosoftWindowsServer";
$Offer = "WindowsServer";
$SKU = "2016-datacenter-gensecond";
$disable = $false;
$enable = $true;
$extDefaultName = "GuestAttestation";
$vmGADefaultIDentity = "SystemAssigned";
# Credential
$password = <Password>;
$securePassword = $password | ConvertTo-SecureString -AsPlainText -Force;
$user = <Username>;
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
# Network resources
$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetname -AddressPrefix $subnetAddress;
$vnet = New-AzVirtualNetwork -Name $vnetname -ResourceGroupName $rgname -Location $loc -AddressPrefix $vnetAddress -Subnet $frontendSubnet;
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name RDP -Protocol Tcp -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow;
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $rgname -Location $loc -Name $NSGName -SecurityRules $nsgRuleRDP;
$nic = New-AzNetworkInterface -Name $NICName -ResourceGroupName $rgname -Location $loc -SubnetId $vnet.Subnets[0].Id -NetworkSecurityGroupId $nsg.Id -EnableAcceleratedNetworking;
# Configure Values using VMConfig Object
$vmConfig = New-AzVMConfig -VMName $vmname -VMSize $vmsize;
Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmname -Credential $cred;
Set-AzVMSourceImage -VM $vmConfig -PublisherName $PublisherName -Offer $Offer -Skus $SKU -Version latest ;
Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id;
# VM Creation using VMConfig for Trusted Launch SecurityType
$vmConfig = Set-AzVMSecurityProfile -VM $vmConfig -SecurityType $securityType_TL;
New-AzVM -ResourceGroupName $rgname -Location $loc -VM $vmConfig;
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmname;
# Validate that for -SecurityType "TrustedLaunch", "-Vtpm" and "-SecureBoot" are "Enabled/true"
#$vm.SecurityProfile.UefiSettings.VTpmEnabled $true;
#$vm.SecurityProfile.UefiSettings.SecureBootEnabled $true;
この例では、TrustedLaunch セキュリティの種類に対して VMConfig オブジェクトを使用して VM を作成し、フラグが既定で True であることを確認します。
パラメーター
-AvailabilitySetId
可用性セットの ID を指定します。
可用性セット オブジェクトを取得するには、Get-AzAvailabilitySet コマンドレットを使用します。
可用性セット オブジェクトには、ID プロパティが含まれています。
同じ可用性セットで指定された仮想マシンは、可用性を最大化するために異なるノードに割り当てられます。
可用性セットの詳細については、「 仮想マシンの可用性の管理」を参照してください。
Azure の計画メンテナンスの詳細については、「 Azure の仮想マシンの計画メンテナンス」を参照してください。
現時点では、VM は作成時にのみ可用性セットに追加できます。 VM が追加される可用性セットは、可用性セット リソースと同じリソース グループの下に存在する必要があります。 既存の VM を可用性セットに追加することはできません。
このプロパティは、null 以外の properties.virtualMachineScaleSet 参照と共に存在できません。
型: | String |
配置: | 2 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-CapacityReservationGroupId
割り当てに使用される容量予約グループの ID。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-DefaultProfile
Azure との通信に使用される資格情報、アカウント、テナント、サブスクリプション。
型: | IAzureContextContainer |
Aliases: | AzContext, AzureRmContext, AzureCredential |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-DiskControllerType
VM と VirtualMachineScaleSet 用に構成されたディスク コントローラーの種類を指定します。 このプロパティは、オペレーティング システム ディスクと VM SKU が第 2 世代 (https://learn.microsoft.com/en-us/azure/virtual-machines/generation-2) をサポートしている仮想マシンでのみサポートされます。リージョンの Microsoft.Compute SKU API の応答で VM SKU 機能の一部として返される HyperVGenerations 機能に V2 (https://learn.microsoft.com/rest/api/compute/resourceskus/list) が含まれていることを確認してください。
サポートされているディスク コントローラーの種類の詳細については、 https://aka.ms/azure-diskcontrollertypesを参照してください。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-EnableSecureBoot
仮想マシンでセキュア ブートを有効にするかどうかを指定します。
型: | Nullable<T>[Boolean] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-EnableUltraSSD
VM にストレージ アカウントの種類UltraSSD_LRS 1 つ以上のマネージド データ ディスクを持つ機能を有効にします。 ストレージ アカウントの種類がUltraSSD_LRSマネージド ディスクは、このプロパティが有効になっている場合にのみ、仮想マシンに追加できます。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-EnableVtpm
仮想マシンで vTPM を有効にするかどうかを指定します。
型: | Nullable<T>[Boolean] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-EncryptionAtHost
EncryptionAtHost プロパティは、要求のユーザーが仮想マシンまたは仮想マシン スケール セットの Host Encryption を有効または無効にするために使用できます。 これにより、ホスト自体のリソース/一時ディスクを含むすべてのディスクの暗号化が有効になります。 既定値: リソースに対してこのプロパティが true に設定されていない限り、ホストでの暗号化は無効になります。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-EvictionPolicy
Azure スポット仮想マシンの削除ポリシー。 サポートされている値は、"割り当て解除" と "削除" です。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-HibernationEnabled
VM の休止機能を有効または無効にするフラグ。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-HostId
ホストの ID
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-IdentityId
仮想マシン スケール セットに関連付けられているユーザー ID の一覧を指定します。 ユーザー ID 参照は、"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identits/{identityName}" という形式の ARM リソース ID になります。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-IdentityType
構成されている場合は、仮想マシンの ID。
型: | Nullable<T>[ResourceIdentityType] |
指定可能な値: | SystemAssigned, UserAssigned, SystemAssignedUserAssigned, None |
配置: | 4 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ImageReferenceId
VM デプロイの共有ギャラリー イメージの一意の ID を指定しました。 これは、共有ギャラリー イメージの GET 呼び出しからフェッチできます。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-LicenseType
ライセンスの種類を指定します。これは、仮想マシンのイメージまたはディスクがオンプレミスでライセンスされたことを示します。 Windows Server に使用できる値は次のとおりです。
- Windows_Client
- Windows_Server
Linux Server オペレーティング システムで使用できる値は次のとおりです。
- RHEL_BYOS (RHEL の場合)
- SLES_BYOS (SUSE の場合)
型: | String |
配置: | 3 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-MaxPrice
優先順位の低い VM/VMSS に対して支払う最大価格を指定します。 この価格は米ドルです。 この価格は、VM サイズの現在の優先順位の低い価格と比較されます。 また、価格は優先順位の低い VM/VMSS の作成/更新時に比較され、maxPrice が現在の低優先度価格より大きい場合にのみ操作が成功します。 現在の低優先度の価格が VM/VMSS の作成後に maxPrice を超えた場合、maxPrice は優先順位の低い VM/VMSS の削除にも使用されます。 指定できる値は、0 より大きい任意の 10 進値です。 例: 0.01538。 -1 は、価格上の理由から優先順位の低い VM/VMSS を削除しないことを示します。 また、ユーザーが提供していない場合、既定の最大価格は -1 です。
型: | Double |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-PlatformFaultDomain
仮想マシンの障害ドメインを指定します。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Priority
仮想マシンの優先順位。 サポートされている値は、'Regular'、'Spot'、'Low' のみです。 "Regular" は通常の仮想マシン用です。 "スポット" はスポット仮想マシン用です。 'Low' はスポット仮想マシン用でもありますが、'Spot' に置き換えられます。 'Low' の代わりに 'Spot' を使用してください。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-ProximityPlacementGroupId
この仮想マシンで使用する近接通信配置グループのリソース ID。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-SecurityType
仮想マシンの SecurityType を指定します。 UefiSettings を有効にするには、指定した値に設定する必要があります。 既定では、このプロパティが設定されていない限り、UefiSettings は有効になりません。
型: | String |
指定可能な値: | TrustedLaunch, ConfidentialVM, Standard |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-SharedGalleryImageId
VM デプロイの共有ギャラリー イメージの一意の ID を指定しました。 これは、共有ギャラリー イメージの GET 呼び出しからフェッチできます。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Tags
リソースにアタッチされているタグ。
型: | Hashtable |
Aliases: | Tag |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-UserData
VM の UserData。base-64 でエンコードされます。 顧客はここでシークレットを渡すべきではありません。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-vCPUCountAvailable
VM で使用できる vCPU の数を指定します。 このプロパティが要求本文で指定されていない場合、既定の動作では、リージョンで使用可能なすべての仮想マシン サイズを一覧 の api 応答で公開されている VM サイズに対して使用可能な vCPU の値に設定します。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-vCPUCountPerCore
vCPU と物理コアの比率を指定します。 要求本文でこのプロパティが指定されていない場合、既定の動作は、リージョン内で使用可能なすべての仮想マシン サイズを一覧する の api 応答で公開される VM サイズの vCPUsPerCore の値に設定されます。 このプロパティを 1 に設定すると、ハイパースレッディングが無効になります。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-VMName
仮想マシンの名前を指定します。
型: | String |
Aliases: | ResourceName, Name |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-VMSize
仮想マシンのサイズを指定します。 Get-AzComputeResourceSku を使用して、サブスクリプションとリージョンで使用可能なサイズを確認できます。
型: | String |
配置: | 1 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-VmssId
仮想マシン スケール セットの ID
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Zone
仮想マシンの可用性ゾーンを指定します。 複数のゾーンを取り込みますが、仮想マシンは複数の可用性ゾーンをサポートしていません。 使用できる値は、リージョンの機能によって異なります。 通常、使用できる値は 1、2、または 3 です。 Azure 可用性ゾーンの詳細については。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
入力
String[]