次の方法で共有


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 用に構成可能なローカル仮想マシン オブジェクトを作成します。

次のコマンドレットを使用して、仮想マシン オブジェクトのさまざまなプロパティを設定します。

例 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 -String "****" -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 -String "****" -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
$securePassword = ConvertTo-SecureString -String "****" -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

String[]

Hashtable

SwitchParameter

出力

PSVirtualMachine