你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
New-AzVM
创建虚拟机。
语法
New-AzVM
[[-ResourceGroupName] <String>]
[[-Location] <String>]
[-EdgeZone <String>]
[[-Zone] <String[]>]
[-PublicIpSku <String>]
-Name <String>
-Credential <PSCredential>
[-NetworkInterfaceDeleteOption <String>]
[-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]
[-OSDiskDeleteOption <String>]
[-DataDiskSizeInGb <Int32[]>]
[-DataDiskDeleteOption <String>]
[-EnableUltraSSD]
[-ProximityPlacementGroupId <String>]
[-HostId <String>]
[-VmssId <String>]
[-Priority <String>]
[-EvictionPolicy <String>]
[-MaxPrice <Double>]
[-EncryptionAtHost]
[-HostGroupId <String>]
[-SshKeyName <String>]
[-GenerateSshKey]
[-CapacityReservationGroupId <String>]
[-UserData <String>]
[-ImageReferenceId <String>]
[-PlatformFaultDomain <Int32>]
[-HibernationEnabled]
[-vCPUCountAvailable <Int32>]
[-vCPUCountPerCore <Int32>]
[-DiskControllerType <String>]
[-SharedGalleryImageId <String>]
[-SecurityType <String>]
[-EnableVtpm <Boolean>]
[-EnableSecureBoot <Boolean>]
[-IfMatch <String>]
[-IfNoneMatch <String>]
[-SshKeyType <String>]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-AzVM
[-ResourceGroupName] <String>
[-Location] <String>
[-EdgeZone <String>]
[-VM] <PSVirtualMachine>
[[-Zone] <String[]>]
[-DisableBginfoExtension]
[-Tag <Hashtable>]
[-LicenseType <String>]
[-AsJob]
[-OSDiskDeleteOption <String>]
[-DataDiskDeleteOption <String>]
[-SshKeyName <String>]
[-GenerateSshKey]
[-vCPUCountAvailable <Int32>]
[-vCPUCountPerCore <Int32>]
[-IfMatch <String>]
[-IfNoneMatch <String>]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-AzVM
[[-ResourceGroupName] <String>]
[[-Location] <String>]
[-EdgeZone <String>]
[-PublicIpSku <String>]
-Name <String>
[-NetworkInterfaceDeleteOption <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]
[-OSDiskDeleteOption <String>]
[-DataDiskSizeInGb <Int32[]>]
[-DataDiskDeleteOption <String>]
[-EnableUltraSSD]
[-ProximityPlacementGroupId <String>]
[-HostId <String>]
[-VmssId <String>]
[-Priority <String>]
[-EvictionPolicy <String>]
[-MaxPrice <Double>]
[-EncryptionAtHost]
[-HostGroupId <String>]
[-CapacityReservationGroupId <String>]
[-UserData <String>]
[-PlatformFaultDomain <Int32>]
[-HibernationEnabled]
[-vCPUCountAvailable <Int32>]
[-vCPUCountPerCore <Int32>]
[-IfMatch <String>]
[-IfNoneMatch <String>]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
New-AzVM cmdlet 在 Azure 中创建虚拟机。
此 cmdlet 采用虚拟机对象作为输入。 New-AzVM cmdlet 将创建一个新的存储帐户,用于启动诊断(如果尚不存在)。
使用 New-AzVMConfig cmdlet 创建虚拟机对象。
然后使用以下 cmdlet 设置虚拟机对象的不同属性:
- Add-AzVMNetworkInterface 用于设置网络配置文件。
- Set-AzVMOperatingSystem 以设置 OS 配置文件。
- Set-AzVMSourceImage 用于设置源映像。
- Set-AzVMOSDisk 用于设置 OS 磁盘(存储配置文件)。
- Get-AzComputeResourceSku 还可用于查找订阅和区域的可用虚拟机大小。
这SimpleParameterSet
提供了一种方便的方法,可通过使常见的 VM 创建参数可选来创建 VM。
有关教程,请参阅 快速入门:使用 PowerShell 在 Azure 中创建 Windows 虚拟机。
示例
示例 1:创建虚拟机
New-AzVM -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:从自定义用户映像创建虚拟机
## VM Account
# Credentials for Local Admin account you created in the sysprepped (generalized) vhd image
$VMLocalAdminUser = "LocalAdminUser"
$VMLocalAdminSecurePassword = ConvertTo-SecureString -String "****" -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-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $SubnetAddressPrefix
$Vnet = New-AzVirtualNetwork -Name $NetworkName -ResourceGroupName $ResourceGroupName -Location $LocationName -AddressPrefix $VnetAddressPrefix -Subnet $SingleSubnet
$PIP = New-AzPublicIpAddress -Name $PublicIPAddressName -DomainNameLabel $DNSNameLabel -ResourceGroupName $ResourceGroupName -Location $LocationName -AllocationMethod Dynamic
$NIC = New-AzNetworkInterface -Name $NICName -ResourceGroupName $ResourceGroupName -Location $LocationName -SubnetId $Vnet.Subnets[0].Id -PublicIpAddressId $PIP.Id
$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);
$securityTypeStnd = "Standard"
$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $VMSize -SecurityType $securityTypeStnd
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName -Credential $Credential -ProvisionVMAgent -EnableAutoUpdate
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $NIC.Id
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name $OSDiskName -VhdUri $OSDiskUri -SourceImageUri $SourceImageUri -Caching $OSDiskCaching -CreateOption $OSCreateOption -Windows
New-AzVM -ResourceGroupName $ResourceGroupName -Location $LocationName -VM $VirtualMachine -Verbose -Zone @("1")
此示例采用现有的 sys 预装的通用自定义操作系统映像,并将数据磁盘附加到其中、预配新网络、部署 VHD 并运行它。 此脚本可用于自动预配,因为它使用本地虚拟机管理员凭据内联,而不是调用 需要用户交互的 Get-Credential 。 此脚本假定已登录到 Azure 帐户。 可以使用 Get-AzSubscription cmdlet 确认登录状态。
示例 3:从没有公共 IP 的市场映像创建 VM
$VMLocalAdminUser = "LocalAdminUser"
$VMLocalAdminSecurePassword = ConvertTo-SecureString -String "****" -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-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $SubnetAddressPrefix
$Vnet = New-AzVirtualNetwork -Name $NetworkName -ResourceGroupName $ResourceGroupName -Location $LocationName -AddressPrefix $VnetAddressPrefix -Subnet $SingleSubnet
$NIC = New-AzNetworkInterface -Name $NICName -ResourceGroupName $ResourceGroupName -Location $LocationName -SubnetId $Vnet.Subnets[0].Id
$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);
$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $VMSize
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName -Credential $Credential -ProvisionVMAgent -EnableAutoUpdate
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $NIC.Id
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine -PublisherName 'MicrosoftWindowsServer' -Offer 'WindowsServer' -Skus '2022-datacenter-azure-edition-core' -Version latest
New-AzVM -ResourceGroupName $ResourceGroupName -Location $LocationName -VM $VirtualMachine -Verbose
此命令从没有公共 IP 的市场映像创建 VM。
示例 4:创建具有 UserData 值的 VM:
# VM Account
$VMLocalAdminUser = "LocalAdminUser";
$VMLocalAdminSecurePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force;
# Azure Account
$LocationName = "eastus";
$ResourceGroupName = "MyResourceGroup";
# VM Profile & Hardware
$VMName = 'v' + $ResourceGroupName;
$domainNameLabel = "d1" + $ResourceGroupName;
$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);
# Create UserData value
$text = "text for UserData";
$bytes = [System.Text.Encoding]::Unicode.GetBytes($text);
$userData = [Convert]::ToBase64String($bytes);
# Create VM
New-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName -Credential $Credential -DomainNameLabel $domainNameLabel -UserData $userData;
$vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName -UserData;
UserData 值必须始终进行 Base64 编码。
示例 5:使用另一个资源组中的现有子网创建新 VM
$UserName = "User"
$Password = ConvertTo-SecureString -String "****" -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($UserName, $Password)
$Vnet = $(Get-AzVirtualNetwork -ResourceGroupName ResourceGroup2 -Name VnetName)
$PIP = (Get-AzPublicIpAddress -ResourceGroupName ResourceGroup2 -Name PublicIPName)
$NIC = New-AzNetworkInterface -Name NICname -ResourceGroupName ResourceGroup2 -Location SouthCentralUS -SubnetId $Vnet.Subnets[1].Id -PublicIpAddressId $PIP.Id
$VirtualMachine = New-AzVMConfig -VMName VirtualMachineName -VMSize Standard_D4s_v3
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName computerName -Credential $psCred -ProvisionVMAgent -EnableAutoUpdate
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $NIC.Id
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine -PublisherName 'MicrosoftWindowsServer' -Offer 'WindowsServer' -Skus '2022-datacenter-azure-edition-core' -Version latest
New-AzVM -ResourceGroupName ResourceGroup1 -Location SouthCentralUS -VM $VirtualMachine
此示例使用另一个资源组中的现有子网从市场部署 Windows VM。
示例 6:使用 PlatformFaultDomain 值创建新 VM 作为 VMSS 的一部分。
$resourceGroupName= "ResourceGroupName";
$loc = 'eastus';
New-AzResourceGroup -Name $resourceGroupName -Location $loc -Force;
$domainNameLabel = "d1" + $resourceGroupName;
$vmname = "vm" + $resourceGroupName;
$platformFaultDomainVMDefaultSet = 2;
$vmssFaultDomain = 3;
$securePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force;
$user = <USERNAME>;
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
$vmssName = "vmss" + $resourceGroupName;
$vmssConfig = New-AzVmssConfig -Location $loc -PlatformFaultDomainCount $vmssFaultDomain;
$vmss = New-AzVmss -ResourceGroupName $resourceGroupName -Name $vmssName -VirtualMachineScaleSet $vmssConfig;
$vm = New-AzVM -ResourceGroupName $resourceGroupName -Name $vmname -Credential $cred -DomainNameLabel $domainNameLabel -PlatformFaultDomain $platformFaultDomainVMDefaultSet -VmssId $vmss.Id;
此示例使用 PlatformFaultDomain 值创建一个新 VM 作为 VMSS 的一部分。
示例 7:使用 -Image 别名创建 VM。
$resourceGroupName= "<Resource Group Name>"
$loc = "<Azure Region>"
$domainNameLabel = "<Domain Name Label>"
$vmname = "<Virtual Machine Name>"
$securePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force
$user = "<Username>"
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword)
New-AzResourceGroup -Name $resourceGroupName -Location $loc -Force
# Create a VM using an Image alias.
$vmname = 'v' + $resourceGroupName
$domainNameLabel = "d" + $resourceGroupName
$vm = New-AzVM -ResourceGroupName $resourceGroupName -Name $vmname -Credential $cred -Image OpenSuseLeap154Gen2 -DomainNameLabel $domainNameLabel
$vm = Get-AzVM -ResourceGroupName $resourceGroupName -Name $vmname
此示例使用 -Image 参数创建新的 VM,为 VM 提供许多默认值。
示例 8:为受信任的 Launch SecurityType 创建 VM。
$rgname = <Resource Group Name>;
$loc = "eastus";
New-AzResourceGroup -Name $rgname -Location $loc -Force;
# VM Profile & Hardware
$domainNameLabel1 = 'd1' + $rgname;
$vmsize = 'Standard_D4s_v3';
$vmname1 = 'v' + $rgname;
$imageName = "Win2022AzureEdition";
$disable = $false;
$enable = $true;
$securityType = "TrustedLaunch";
$securePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force;
$user = <Username>;
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
# VM creation using Simple parameterset
New-AzVM -ResourceGroupName $rgname -Location $loc -Name $vmname1 -Credential $cred -Size $vmsize -Image $imageName -DomainNameLabel $domainNameLabel1 -SecurityType $securityType;
$vm1 = Get-AzVM -ResourceGroupName $rgname -Name $vmname1;
# Verify Values
#$vm1.SecurityProfile.SecurityType "TrustedLaunch";
#$vm1.SecurityProfile.UefiSettings.VTpmEnabled $true;
#$vm1.SecurityProfile.UefiSettings.SecureBootEnabled $true;
本示例使用 TrustedLaunch 安全类型创建新的 VM,并默认将 EnableSecureBoot 和 EnableVtpm 标志设置为 True。 受信任的启动 VM 需要 Gen2 映像。 有关详细信息,请查看 “受信任的启动”功能页 。
示例 9:使用 New-AzVMConfig 创建启用受信任启动的 VM。
$rgname = "<Resource Group Name>";
$loc = "<Azure Region>";
$vmname = 'vm' + $rgname;
$domainNameLabel = "d1" + $rgname;
$vnetname = "vn" + $rgname;
$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;
$VMSize = "Standard_DS2_v2";
$PublisherName = "MicrosoftWindowsServer";
$Offer = "WindowsServer";
$SKU = "2022-datacenter-azure-edition";
$version = "latest";
$securePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force;
$user = <Username>;
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
# Network setup
$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;
# VM
$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 $version ;
Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id;
New-AzVM -ResourceGroupName $rgname -Location $loc -VM $vmConfig;
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmname;
# Verify $vm.SecurityProfile.SecurityType is TrustedLaunch
# Verify $vm.SecurityProfile.UefiSettings.SecureBootEnabled is true.
# Verify $vm.SecurityProfile.UefiSettings.VTpmEnabled is true.
此示例演示如何创建具有有效 Gen2 映像的 VM,使 VM 默认为需要 Gen2 映像的 TrustedLaunch。 有关详细信息,请查看 “受信任的启动”功能页 。
示例 10:创建默认启用 TrustedLaunch 的 VM。
$rgname = "<Resource Group Name>";
$loc = "<Azure Region>";
$vmname = 'vm' + $rgname;
$domainNameLabel = "d1" + $rgname;
$securePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force;
$user = <Username>;
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
# Create VM
$vm = New-AzVM -ResourceGroupName $rgname -Name $vmname -Credential $cred -DomainNameLabel $domainNameLabel;
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmname;
# Verify $vm.SecurityProfile.SecurityType is TrustedLaunch.
# Verify the $vm.StorageProfile.ImageReference.Sku has defaulted to "2022-datacenter-azure-edition", a Gen2 image.
此示例演示使用最小参数的简单 cmdlet 调用如何生成启用了 TrustedLaunch 的 VM 以及 Gen2 映像。 有关详细信息,请查看 “受信任的启动”功能页 。
=======
参数
-AddressPrefix
将为 VM 创建的虚拟网络的地址前缀。
类型: | String |
Position: | Named |
默认值: | 192.168.0.0/16 |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-AllocationMethod
将为 VM 创建的公共 IP 的 IP 分配方法。
类型: | String |
接受的值: | Static, Dynamic |
Position: | Named |
默认值: | Static |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-AsJob
在后台运行 cmdlet 并返回作业以跟踪进度。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-AvailabilitySetName
指定可用性集的名称。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-CapacityReservationGroupId
用于分配的容量预留组的 ID。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Confirm
提示你在运行 cmdlet 之前进行确认。
类型: | SwitchParameter |
别名: | cf |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Credential
VM 的管理员凭据。
用户名
限制:
Windows:不能包含特殊字符 /“”[]:|<>+=;,?*@& 或以“.” 结尾。
Linux:用户名只能包含字母、数字、连字符和下划线,不能以连字符或数字开头。
不允许的值: “administrator”、“admin”、“user1”、“user1”、“test”、“user2”、“test1”、“user3”、“admin1”、“1”, “123”、“a”、“actuser”、“adm”、“admin2”、“aspnet”、“backup”、“console”、“david”、“guest”、“john”、“owner”、“root”、“server”、“sql”、“support”、“support_388945a0”、“sys”、“test2”、“test3”、“user4”、“user5”。
最小长度: 1 个字符
最大长度: 适用于 Windows 的 20 个字符,适用于 Linux 的 64 个字符
密码
必须具有以下 3 个:1 个小写字符、1 个大写字符、1 个数字和 1 个特殊字符。
该值长度必须介于 12 到 123 个字符之间。
类型: | PSCredential |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-DataDiskDeleteOption
指定 VM 删除后的数据磁盘删除选项。 选项为“分离”、“删除”
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DataDiskSizeInGb
指定数据磁盘的大小(以 GB 为单位)。
类型: | Int32[] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DefaultProfile
用于与 Azure 通信的凭据、帐户、租户和订阅。
类型: | IAzureContextContainer |
别名: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DisableBginfoExtension
指示此 cmdlet 不会 在虚拟机上安装 BG 信息 扩展。
类型: | SwitchParameter |
Position: | 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 包含 V2 (https://learn.microsoft.com/rest/api/compute/resourceskus/list) 时检查作为 VM SKU 功能的一部分返回的 HyperVGenerations 功能。
有关支持的磁盘控制器类型的详细信息,请参阅 https://aka.ms/azure-diskcontrollertypes。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DiskFile
要上传到云和创建 VM 的虚拟硬盘文件的本地路径,并且必须具有“.vhd”作为其后缀。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-DomainNameLabel
VM 的完全限定域名(FQDN)的子域标签。 这将采用格式 {domainNameLabel}.{location}.cloudapp.azure.com
。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-EdgeZone
设置边缘区域名称。 如果设置,查询将路由到指定的边缘区域而不是主区域。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-EnableSecureBoot
指定是否应在虚拟机上启用安全启动。
类型: | Nullable<T>[Boolean] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-EnableUltraSSD
对 vm 使用 UltraSSD 磁盘。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-EnableVtpm
指定是否应在虚拟机上启用 vTPM。
类型: | Nullable<T>[Boolean] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-EncryptionAtHost
请求中的用户可以使用 EncryptionAtHost 属性来启用或禁用虚拟机或虚拟机规模集的主机加密。 这将为所有磁盘启用加密,包括主机本身的资源/临时磁盘。 默认值:除非将此属性设置为 true,否则将禁用主机上的加密。
类型: | SwitchParameter |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-EvictionPolicy
Azure 现成虚拟机的逐出策略。 支持的值为“Deallocate”和“Delete”。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-GenerateSshKey
生成 SSH 公钥/私钥对并在 Azure 上创建 SSH 公钥资源。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-HibernationEnabled
在 VM 上启用或禁用休眠功能的标志。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-HostGroupId
指定虚拟机将驻留的专用主机组。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-HostId
主机的 ID
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-IfMatch
用于为 PUT 和其他非安全方法发出请求条件。 仅当资源与列出的 ETag 值之一匹配时,服务器才会返回请求的资源。 省略此值以始终覆盖当前资源。 指定最后一次看到的 ETag 值,以防止意外覆盖并发更改。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-IfNoneMatch
用于为 GET 和 HEAD 方法发出请求条件。 仅当列出的 ETag 值与当前实体匹配时,服务器才会返回请求的资源。 用于为 GET 和 HEAD 方法发出请求条件。 仅当列出的 ETag 值与当前实体匹配时,服务器才会返回请求的资源。 设置为“*”以允许创建新记录集,但要防止更新现有记录集。 其他值将导致服务器出错,因为它们不受支持。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-Image
要在其中生成 VM 的友好映像名称。 可用的别名为:Win2022AzureEdition、 Win2022AzureEditionCore、Win2019Datacenter、Win2016Datacenter、Win2012R2Datacenter、Win2012Datacenter、Ubuntu2204、CentOS85Gen2、Debian11、OpenSuseLeap154Gen2、RHELRaw8LVMGen2、SuseSles15SP3、FlatcarLinuxFreeGen2。
类型: | String |
别名: | ImageName |
Position: | Named |
默认值: | Win2016Datacenter |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ImageReferenceId
为 vm 部署指定共享库映像唯一 ID。 这可以从共享库映像 GET 调用中提取。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-LicenseType
指定许可证类型,指示虚拟机的映像或磁盘在本地获得许可。 Windows Server 的可能值为:
- Windows_Client
- Windows_Server
Linux Server 操作系统的可能值为:
- RHEL_BYOS(适用于 RHEL)
- SLES_BYOS(对于 SUSE)
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Linux
指示磁盘文件是否适用于 Linux VM(如果指定);或 Windows(如果未默认指定)。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Location
指定虚拟机的位置。
类型: | String |
Position: | 1 |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-MaxPrice
低优先级虚拟机计费的最大价格。
类型: | Double |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Name
VM 资源的名称。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-NetworkInterfaceDeleteOption
指定删除 VM 时对 NetworkInterface 资源执行的操作。 选项包括:分离、删除。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-OpenPorts
要为创建的 VM 在网络安全组(NSG)上打开的端口列表。 默认值取决于所选映像的类型(即 Windows:3389、5985 和 Linux:22)。
类型: | Int32[] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-OSDiskDeleteOption
指定 VM 删除后 OS 磁盘删除选项。 选项为“分离”、“删除”
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-PlatformFaultDomain
指定虚拟机的容错域。
类型: | Int32 |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-Priority
虚拟机的优先级。 仅支持的值是“Regular”、“Spot”和“Low”。 “Regular”适用于常规虚拟机。 “Spot”适用于现成虚拟机。 “Low”也适用于现成虚拟机,但被“Spot”取代。 请使用“Spot”而不是“Low”。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ProximityPlacementGroupId
要用于此虚拟机的邻近放置组的资源 ID。
类型: | String |
别名: | ProximityPlacementGroup |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-PublicIpAddressName
要使用的 VM 的新(或现有)公共 IP 地址的名称。 如果未指定,将生成名称。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-PublicIpSku
指定公共 IP SKU 名称
接受的值为“Basic”和“Standard”
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ResourceGroupName
指定资源组的名称。
类型: | String |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-SecurityGroupName
要使用的 VM 的新(或现有)网络安全组(NSG)的名称。 如果未指定,将生成名称。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-SecurityType
指定虚拟机的 SecurityType。 必须将其设置为任何指定值才能启用 UefiSettings。 默认情况下,除非设置了此属性,否则不会启用 UefiSettings。
类型: | String |
接受的值: | TrustedLaunch, ConfidentialVM, Standard |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-SharedGalleryImageId
为 vm 部署指定共享库映像唯一 ID。 这可以从共享库映像 GET 调用中提取。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Size
虚拟机大小。 Get-AzComputeResourceSku 可用于查找订阅和区域的可用大小。
默认值为:Standard_D2s_v3。
类型: | String |
Position: | Named |
默认值: | Standard_D2s_v3 |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-SshKeyName
SSH 公钥资源的名称。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-SshKeyType
指定要生成的 SSH 密钥的类型。 允许的值为“Ed25519”和“RSA”。
类型: | String |
接受的值: | Ed25519, RSA |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-SubnetAddressPrefix
将为 VM 创建的子网的地址前缀。
类型: | String |
Position: | Named |
默认值: | 192.168.1.0/24 |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-SubnetName
要使用的 VM 的新(或现有)子网的名称。 如果未指定,将生成名称。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-SystemAssignedIdentity
如果存在此参数,则会为 VM 分配自动生成的托管系统标识。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Tag
指定可以使用一组名称值对标记资源和资源组。 将标记添加到资源后,可以跨资源组将资源组合在一起,并创建自己的视图。 每个资源或资源组最多可以有 15 个标记。
类型: | Hashtable |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-UserAssignedIdentity
应分配给 VM 的托管服务标识的名称。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-UserData
将进行 base-64 编码的 VM 的 UserData。 客户不应在此处传递任何机密。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-vCPUCountAvailable
指定可用于 VM 的 vCPU 数。 如果未在请求正文中指定此属性,则默认行为是将其设置为 API 响应 中公开的 VM 大小的 vCPU 值,以列出区域中所有可用的虚拟机大小。
类型: | Int32 |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-vCPUCountPerCore
指定 vCPU 与物理核心比率。 如果未在请求正文中指定此属性,则默认行为设置为 API 响应中公开的 VM 大小的 vCPUUsPerCore 值,以 列出区域中所有可用的虚拟机大小。 将此属性设置为 1 也意味着禁用超线程处理。
类型: | Int32 |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-VirtualNetworkName
要使用的已创建 VM 的新(或现有)虚拟网络的名称。 如果未指定,将生成名称。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-VM
指定要创建的本地虚拟机。 若要获取虚拟机对象,请使用 New-AzVMConfig cmdlet。 其他 cmdlet 可用于配置虚拟机,例如 Set-AzVMOperatingSystem、Set-AzVMSourceImage 和 Add-AzVMNetworkInterface。
类型: | PSVirtualMachine |
别名: | VMProfile |
Position: | 2 |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-VmssId
此 VM 将与之关联的虚拟机规模集的 ID
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WhatIf
显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Zone
指定虚拟机的区域。 尽管它采用区域数组,但虚拟机不支持多个可用性区域。 允许的值取决于区域的功能。 允许的值通常为 1、2 或 3。 有关 Azure 可用性区域的详细信息。
类型: | String[] |
Position: | 3 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
String[]