你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

New-AzVmss

创建虚拟机规模集。

语法

New-AzVmss
   [-ResourceGroupName] <String>
   [-VMScaleSetName] <String>
   [-VirtualMachineScaleSet] <PSVirtualMachineScaleSet>
   [-AsJob]
   [-IfMatch <String>]
   [-IfNoneMatch <String>]
   [-EdgeZone <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzVmss
   [[-ResourceGroupName] <String>]
   [-VMScaleSetName] <String>
   [-AsJob]
   [-UserData <String>]
   [-EnableAutomaticOSUpgrade]
   [-IfMatch <String>]
   [-IfNoneMatch <String>]
   [-ImageName <String>]
   -Credential <PSCredential>
   [-InstanceCount <Int32>]
   [-VirtualNetworkName <String>]
   [-SubnetName <String>]
   [-PublicIpAddressName <String>]
   [-DomainNameLabel <String>]
   [-SecurityGroupName <String>]
   [-LoadBalancerName <String>]
   [-BackendPort <Int32[]>]
   [-Location <String>]
   [-EdgeZone <String>]
   [-VmSize <String>]
   [-UpgradePolicyMode <UpgradeMode>]
   [-AllocationMethod <String>]
   [-VnetAddressPrefix <String>]
   [-SubnetAddressPrefix <String>]
   [-FrontendPoolName <String>]
   [-BackendPoolName <String>]
   [-SystemAssignedIdentity]
   [-UserAssignedIdentity <String>]
   [-EnableUltraSSD]
   [-Zone <System.Collections.Generic.List`1[System.String]>]
   [-NatBackendPort <Int32[]>]
   [-DataDiskSizeInGb <Int32[]>]
   [-ProximityPlacementGroupId <String>]
   [-HostGroupId <String>]
   [-Priority <String>]
   [-EvictionPolicy <String>]
   [-MaxPrice <Double>]
   [-ScaleInPolicy <String[]>]
   [-SkipExtensionsOnOverprovisionedVMs]
   [-EncryptionAtHost]
   [-PlatformFaultDomainCount <Int32>]
   [-OrchestrationMode <String>]
   [-CapacityReservationGroupId <String>]
   [-ImageReferenceId <String>]
   [-DiskControllerType <String>]
   [-SharedGalleryImageId <String>]
   [-SecurityType <String>]
   [-EnableVtpm <Boolean>]
   [-EnableSecureBoot <Boolean>]
   [-SecurityPostureId <String>]
   [-SecurityPostureExcludeExtension <String[]>]
   [-SkuProfileVmSize <String[]>]
   [-SkuProfileAllocationStrategy <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [-SinglePlacementGroup]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

说明

New-AzVmss cmdlet 在 Azure 中创建虚拟机规模集(VMSS)。 使用简单参数集 (SimpleParameterSet) 快速创建预先设置的 VMSS 和关联的资源。

如果需要在创建之前精确配置 VMSS 的每个组件和每个关联的资源,请使用默认参数集 (DefaultParameter)。 对于默认参数集,首先使用 New-AzVmssConfig cmdlet 创建虚拟机规模集对象。

然后,使用以下 cmdlet 设置虚拟机规模集对象的不同属性:

请参阅此处的虚拟机规模集的其他 cmdlet。

VMSS 创建默认为 OrchestrationMode:Flexible。 默认情况下,默认参数集将在 VirtualMachineScaleSetVMProfile 中设置属性。 若要创建具有空 VirtualMachineScaleSetVMProfile 属性的 VMSS,请使用简单的参数集,方法是首先使用 New-AzVmssConfig 创建具有空 VirtualMachineScaleSetVMProfile 属性的 VirtualMachineScaleSet 对象。


请参阅 [快速入门:使用 Azure PowerShell 创建虚拟机规模集](https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/quick-create-powershell) 有关教程)。

示例

示例 1:使用 SimpleParameterSet 创建 VMSS

$vmssName = 'VMSSNAME'
# Create credentials, I am using one way to create credentials, there are others as well.
# Pick one that makes the most sense according to your use case.
$vmPassword = ConvertTo-SecureString -String "****" -AsPlainText -Force
$vmCred = New-Object System.Management.Automation.PSCredential('USERNAME', $vmPassword)
$securityTypeStnd = "Standard"

#Create a VMSS using the default settings
New-AzVmss -Credential $vmCred -VMScaleSetName $vmssName -SecurityType $securityTypeStnd

上述命令创建具有以下名称 $vmssName

  • 资源组
  • 虚拟网络
  • 负载均衡器
  • 公共 IP
  • 具有 2 个实例的 VMSS

为 VMSS 中的 VM 选择的默认映像是 2016-Datacenter Windows Server ,SKU 为 Standard_DS1_v2

示例 2:使用 DefaultParameterSet 创建 VMSS

# Common
$LOC = "WestUs";
$RGName = "rgkyvms";

New-AzResourceGroup -Name $RGName -Location $LOC -Force;

# SRP
$STOName = "sto" + $RGName;
$STOType = "Standard_GRS";
New-AzStorageAccount -ResourceGroupName $RGName -Name $STOName -Location $LOC -Type $STOType;
$STOAccount = Get-AzStorageAccount -ResourceGroupName $RGName -Name $STOName;

# NRP
$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" -DnsServer "10.1.1.1" -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 Dynamic -DomainNameLabel ("pubip" + $RGName);
$PubIP = Get-AzPublicIpAddress -Name ("pubip"  + $RGName) -ResourceGroupName $RGName;

# Create LoadBalancer
$FrontendName = "fe" + $RGName
$BackendAddressPoolName = "bepool" + $RGName
$ProbeName = "vmssprobe" + $RGName
$InboundNatPoolName  = "innatpool" + $RGName
$LBRuleName = "lbrule" + $RGName
$LBName = "vmsslb" + $RGName

$Frontend = New-AzLoadBalancerFrontendIpConfig -Name $FrontendName -PublicIpAddress $PubIP
$BackendAddressPool = New-AzLoadBalancerBackendAddressPoolConfig -Name $BackendAddressPoolName
$Probe = New-AzLoadBalancerProbeConfig -Name $ProbeName -RequestPath healthcheck.aspx -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2
$InboundNatPool = New-AzLoadBalancerInboundNatPoolConfig -Name $InboundNatPoolName  -FrontendIPConfigurationId `
    $Frontend.Id -Protocol Tcp -FrontendPortRangeStart 3360 -FrontendPortRangeEnd 3367 -BackendPort 3370;
$LBRule = New-AzLoadBalancerRuleConfig -Name $LBRuleName `
    -FrontendIPConfiguration $Frontend -BackendAddressPool $BackendAddressPool `
    -Probe $Probe -Protocol Tcp -FrontendPort 80 -BackendPort 80 `
    -IdleTimeoutInMinutes 15 -EnableFloatingIP -LoadDistribution SourceIP;
$ActualLb = New-AzLoadBalancer -Name $LBName -ResourceGroupName $RGName -Location $LOC `
    -FrontendIpConfiguration $Frontend -BackendAddressPool $BackendAddressPool `
    -Probe $Probe -LoadBalancingRule $LBRule -InboundNatPool $InboundNatPool;
$ExpectedLb = Get-AzLoadBalancer -Name $LBName -ResourceGroupName $RGName

# New VMSS Parameters
$VMSSName = "vmss" + $RGName;

$AdminUsername = "Admin01";
$AdminPassword = "p4ssw0rd@123" + $RGName;

$PublisherName = "MicrosoftWindowsServer"
$Offer         = "WindowsServer"
$Sku           = "2012-R2-Datacenter"
$Version       = "latest"

$VHDContainer = "https://" + $STOName + ".blob.core.windows.net/" + $VMSSName;

$ExtName = "CSETest";
$Publisher = "Microsoft.Compute";
$ExtType = "BGInfo";
$ExtVer = "2.1";

#IP Config for the NIC
$IPCfg = New-AzVmssIpConfig -Name "Test" `
    -LoadBalancerInboundNatPoolsId $ExpectedLb.InboundNatPools[0].Id `
    -LoadBalancerBackendAddressPoolsId $ExpectedLb.BackendAddressPools[0].Id `
    -SubnetId $SubNetId;

#VMSS Config
$securityTypeStnd = "Standard";
$VMSS = New-AzVmssConfig -Location $LOC -SkuCapacity 2 -SkuName "Standard_E4-2ds_v4" -UpgradePolicyMode "Automatic" -SecurityType $securityTypeStnd `
    | Add-AzVmssNetworkInterfaceConfiguration -Name "Test" -Primary $True -IPConfiguration $IPCfg `
    | Add-AzVmssNetworkInterfaceConfiguration -Name "Test2"  -IPConfiguration $IPCfg `
    | Set-AzVmssOsProfile -ComputerNamePrefix "Test"  -AdminUsername $AdminUsername -AdminPassword $AdminPassword `
    | Set-AzVmssStorageProfile -Name "Test"  -OsDiskCreateOption 'FromImage' -OsDiskCaching "None" `
    -ImageReferenceOffer $Offer -ImageReferenceSku $Sku -ImageReferenceVersion $Version `
    -ImageReferencePublisher $PublisherName -VhdContainer $VHDContainer `
    | Add-AzVmssExtension -Name $ExtName -Publisher $Publisher -Type $ExtType -TypeHandlerVersion $ExtVer -AutoUpgradeMinorVersion $True

#Create the VMSS
New-AzVmss -ResourceGroupName $RGName -Name $VMSSName -VirtualMachineScaleSet $VMSS;

上面的复杂示例创建 VMSS,下面是所发生情况的说明:

  • 第一个命令创建具有指定名称和位置的资源组。
  • 第二个命令使用 New-AzStorageAccount cmdlet 创建存储帐户。
  • 然后,第三个命令使用 Get-AzStorageAccount cmdlet 获取第二个命令中创建的存储帐户,并将结果存储在$STOAccount变量中。
  • 第五个命令使用 New-AzVirtualNetworkSubnetConfig cmdlet 创建子网,并将结果存储在名为$SubNet的变量中。
  • 第六个命令使用 New-AzVirtualNetwork cmdlet 创建虚拟网络,并将结果存储在名为$VNet的变量中。
  • 第七个命令使用 Get-AzVirtualNetwork 获取有关第六个命令中创建的虚拟网络的信息,并将信息存储在名为$VNet的变量中。
  • 第八个和第九个命令使用 New-AzPublicIpAddressGet- AzureRmPublicIpAddress 从该公共 IP 地址创建和获取信息。
  • 这些命令将信息存储在名为$PubIP的变量中。
  • 第十个命令使用 New- AzureRmLoadBalancerFrontendIpConfig cmdlet 创建前端负载均衡器,并将结果存储在名为$Frontend的变量中。
  • 第十一个命令使用 New-AzLoadBalancerBackendAddressPoolConfig 创建后端地址池配置,并将结果存储在名为$BackendAddressPool的变量中。
  • 第十二个命令使用 New-AzLoadBalancerProbeConfig 创建探测,并将探测信息存储在名为$Probe的变量中。
  • 第十三个命令使用 New-AzLoadBalancerInboundNatPoolConfig cmdlet 创建负载均衡器入站网络地址转换(NAT)池配置。
  • 第十四个命令使用 New-AzLoadBalancerRuleConfig 创建负载均衡器规则配置,并将结果存储在名为$LBRule的变量中。
  • 第十五个命令使用 New-AzLoadBalancer cmdlet 创建负载均衡器,并将结果存储在名为$ActualLb的变量中。
  • 第十六个命令使用 Get-AzLoadBalancer 获取有关在第十五个命令中创建的负载均衡器的信息,并将信息存储在名为$ExpectedLb的变量中。
  • 第十七个命令使用 New-AzVmssIpConfig cmdlet 创建 VMSS IP 配置,并将信息存储在名为$IPCfg的变量中。
  • 第十八个命令使用 New-AzVmssConfig cmdlet 创建 VMSS 配置对象,并将结果存储在名为$VMSS的变量中。
  • 第十九个命令使用 New-AzVmss cmdlet 创建 VMSS。

示例 3:使用 UserData 值创建 VMSS

$ResourceGroupName = 'RESOURCE GROUP NAME';
$vmssName = 'VMSSNAME';
$domainNameLabel = "dnl" + $ResourceGroupName;
# Create credentials, I am using one way to create credentials, there are others as well.
# Pick one that makes the most sense according to your use case.
$vmPassword = ConvertTo-SecureString -String "****" -AsPlainText -Force;
$vmCred = New-Object System.Management.Automation.PSCredential('USERNAME', $vmPassword);

$text = "UserData value to encode";
$bytes = [System.Text.Encoding]::Unicode.GetBytes($text);
$userData = [Convert]::ToBase64String($bytes);
$securityTypeStnd = "Standard";

#Create a VMSS
New-AzVmss -ResourceGroupName $ResourceGroupName -Name $vmssName -Credential $vmCred -DomainNameLabel $domainNameLabel -Userdata $userData -SecurityType $securityTypeStnd;
$vmss = Get-AzVmss -ResourceGroupName $ResourceGroupName -VMScaleSetName $vmssName -InstanceView:$false -Userdata;

使用 UserData 值创建 VMSS

示例 4:使用安全类型 TrustedLaunch 创建 VM

$rgname = "rgname";
$loc = "eastus";

# VMSS Profile & Hardware requirements for the TrustedLaunch default behavior.
$vmssSize = 'Standard_D4s_v3';
$vmssName1 = 'vmss1' + $rgname;
$imageName = "Win2022AzureEdition";
$adminUsername = "<Username>";
$adminPassword = ConvertTo-SecureString -String "****" -AsPlainText -Force;
$vmCred = New-Object System.Management.Automation.PSCredential ($adminUsername, $adminPassword);

# VMSS Creation 
$result = New-AzVmss -Credential $vmCred -VMScaleSetName $vmssName1 -ImageName $imageName -SecurityType "TrustedLaunch";
# Validate that for -SecurityType "TrustedLaunch", "-Vtpm" and -"SecureBoot" are "Enabled/true"
# $result.VirtualMachineProfile.SecurityProfile.UefiSettings.VTpmEnabled;
# $result.VirtualMachineProfile.SecurityProfile.UefiSettings.SecureBootEnabled;

此示例使用新的安全类型“TrustedLaunch”创建新的 VMSS,并且必要的 UEFISettings 值、VTpmEnabled 和 SecureBootEnalbed 为 true。 有关详细信息,请查看 “受信任的启动”功能页

示例 5:在业务流程模式下创建 VM:默认灵活

# Create configration object
$vmssConfig = New-AzVmssConfig -Location EastUs2 -UpgradePolicyMode Manual -SinglePlacementGroup $true

# VMSS Creation 
New-AzVmss -ResourceGroupName TestRg -VMScaleSetName myVMSS -VirtualMachineScaleSet $vmssConfig

此示例创建新的 VMSS,默认为 OrchestrationMode 灵活。

示例 6:默认启用 TrustedLaunch 的新 VMSS。

$rgname = "<Resource Group>";
$loc = "<Azure Region>";
New-AzResourceGroup -Name $rgname -Location $loc -Force;

$vmssName = 'vmss' + $rgname;
$vmssSize = 'Standard_D4s_v3';
$imageName = "Win2022AzureEdition";
$publisherName = "MicrosoftWindowsServer";
$offer = "WindowsServer";
$sku = "2022-Datacenter-Azure-Edition";
$adminUsername = "<Username>";
$password = "<Password>";

# NRP
$vnetworkName = 'vnet' + $rgname;
$subnetName = 'subnet' + $rgname;
$subnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix "10.0.0.0/24";
$vnet = New-AzVirtualNetwork -Name $vnetworkName -ResourceGroupName $rgname -Location $loc -AddressPrefix "10.0.0.0/16" -Subnet $subnet;
$vnet = Get-AzVirtualNetwork -Name $vnetworkName -ResourceGroupName $rgname;
$subnetId = $vnet.Subnets[0].Id;

$ipCfg = New-AzVmssIpConfig -Name 'test' -SubnetId $subnetId;

$vmss = New-AzVmssConfig -Location $loc -SkuCapacity 2 -SkuName $vmssSize -UpgradePolicyMode 'Manual' `
    | Add-AzVmssNetworkInterfaceConfiguration -Name 'test' -Primary $true -IPConfiguration $ipCfg `
    | Set-AzVmssOsProfile -ComputerNamePrefix 'test' -AdminUsername $adminUsername -AdminPassword $password;
    
# Create TL Vmss
$result = New-AzVmss -ResourceGroupName $rgname -VMScaleSetName $vmssName -VirtualMachineScaleSet $vmss;
$vmssGet = Get-AzVmss -ResourceGroupName $rgname -VMScaleSetName $vmssName;

# Verify $vmssGet.VirtualMachineProfile.SecurityProfile.SecurityType is TrustedLaunch.
# Verify $vmssGet.VirtualMachineProfile.SecurityProfile.UefiSettings.VTpmEnabled is True.
# Verify $vmssGet.VirtualMachineProfile.SecurityProfile.UefiSettings.SecureBootEnabled is True.
# Verify $vmssGet.VirtualMachineProfile.StorageProfile.ImageReference.Sku is 2022-Datacenter-Azure-Edition.

上述虚拟机规模集默认已启用“受信任的启动”。 有关详细信息,请查看 “受信任的启动”功能页

参数

-AllocationMethod

规模集的公共 IP 地址(静态或动态)的分配方法。 如果未提供任何值,则分配将是静态的。

类型:String
接受的值:Static, Dynamic
Position:Named
默认值:Static
必需:False
接受管道输入:False
接受通配符:False

-AsJob

在后台运行 cmdlet 并返回作业以跟踪进度。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-BackendPoolName

此规模集的负载均衡器中使用的后端地址池的名称。 如果未提供任何值,则会创建一个新的后端池,其名称与规模集相同。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-BackendPort

规模集负载均衡器用于与规模集中的 VM 通信的后端端口号。 如果未指定任何值,端口 3389 和 5985 将用于 Windows VMS,端口 22 将用于 Linux VM。

类型:Int32[]
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

-DataDiskSizeInGb

指定数据磁盘的大小(以 GB 为单位)。

类型:Int32[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DefaultProfile

用于与 Azure 通信的凭据、帐户、租户和订阅。

类型:IAzureContextContainer
别名:AzContext, AzureRmContext, AzureCredential
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

-DomainNameLabel

此规模集的公共完全限定域名(FQDN)的域名标签。 这是自动分配给规模集的域名的第一个组件。 自动分配的域名使用窗体(<DomainNameLabel>.<Location>.cloudapp.azure.com)。 如果未提供任何值,则默认域名标签将为连接 <ScaleSetName><ResourceGroupName>

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-EdgeZone

设置边缘区域名称。 如果设置,查询将路由到指定的边缘区域而不是主区域。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-EnableAutomaticOSUpgrade

当较新版本的映像可用时,是否应以滚动方式自动将 OS 升级应用于规模集实例。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符: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

此参数将为主机本身的所有磁盘(包括 Resource/Temp 磁盘)启用加密。 默认值:除非将此属性设置为 true,否则将禁用主机上的加密。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-EvictionPolicy

低优先级虚拟机规模集的逐出策略。 仅支持的值是“解除分配”和“Delete”。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-FrontendPoolName

在规模集负载均衡器中使用的前端地址池的名称。 如果未提供任何值,则会创建一个新的前端地址池,其名称与规模集相同。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-HostGroupId

指定虚拟机规模集将驻留在的专用主机组。

类型:String
别名:HostGroup
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-IfMatch

用于为 PUT 和其他非安全方法发出请求条件。 仅当资源与列出的 ETag 值之一匹配时,服务器才会返回请求的资源。 省略此值以始终覆盖当前资源。 指定最后一次看到的 ETag 值,以防止意外覆盖并发更改。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-IfNoneMatch

用于为 GET 和 HEAD 方法发出请求条件。 仅当列出的 ETag 值与当前实体匹配时,服务器才会返回请求的资源。 用于为 GET 和 HEAD 方法发出请求条件。 仅当列出的 ETag 值与当前实体匹配时,服务器才会返回请求的资源。 设置为“*”以允许创建新记录集,但要防止更新现有记录集。 其他值将导致服务器出错,因为它们不受支持。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ImageName

此规模集中 VM 的映像的别名。 如果未提供任何值,将使用“Windows Server 2016 DataCenter”映像。 可用的别名为:Win2022AzureEdition、 Win2022AzureEditionCore、Win2019Datacenter、Win2016Datacenter、Win2012R2Datacenter、Win2012Datacenter、UbuntuLTS、Ubuntu2204、CentOS85Gen2、Debian11、OpenSuseLeap154Gen2、RHELRaw8LVMGen2、Susesles15SP3、FlatcarLinuxFreeGen2。

类型:String
别名:Image
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ImageReferenceId

为 vmss 部署指定共享库映像唯一 ID。 这可以从共享库映像 GET 调用中提取。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-InstanceCount

规模集中的 VM 映像数。 如果未提供任何值,将创建 2 个实例。

类型:Int32
Position:Named
默认值:2
必需:False
接受管道输入:False
接受通配符:False

-LoadBalancerName

要用于此规模集的负载均衡器的名称。 如果未指定任何值,将使用与规模集相同的名称创建新的负载均衡器。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Location

要在其中创建此规模集的 Azure 位置。 如果未指定任何值,将从参数中引用的其他资源的位置推断位置。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-MaxPrice

低优先级虚拟机规模集计费的最大价格。

类型:Double
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-NatBackendPort

入站网络地址转换的后端端口。

类型:Int32[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-OrchestrationMode

指定虚拟机规模集的业务流程模式。 可能的值:统一、灵活

使用默认参数集在 OrchestrationMode:Flexible 中创建 VMSS 将导致默认情况下填充 VirtualMachineScaleSetVMProfile。 如果要使用空 VirtualMachineScaleSetVMProfile 创建 VMSS,请先使用 New-AzVmssConfig 创建具有空 VMProfile 属性的 VirtualMachineScaleSet 对象,然后使用简单参数集创建 VMSS。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-PlatformFaultDomainCount

每个放置组的容错域计数。

类型: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

要用于此规模集的公共 IP 地址的名称。 如果未提供任何值,则会创建与规模集同名的新公共 IPAddress。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ResourceGroupName

指定 VMSS 的资源组的名称。 如果未指定任何值,将使用与规模集相同的名称创建新的 ResourceGroup。

类型:String
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-ScaleInPolicy

在虚拟机规模集中进行缩放时要遵循的规则。 可能的值为:“Default”、“OldestVM”和“NewestVM”。 如果虚拟机规模集是区域性规模集,则规模集将首先在区域之间均衡。如果规模集是区域性规模集,则规模集将首先均衡。 然后,它将尽可能跨容错域进行均衡。 在每个容错域中,选择删除的虚拟机将是不受横向扩展保护的最新虚拟机。 当虚拟机规模集正在扩展时,将选择不受横向缩减保护的最早虚拟机,以便删除。 对于区域虚拟机规模集,规模集将首先跨区域均衡。 在每个区域中,将选择不受保护的最早虚拟机进行删除。 当虚拟机规模集正在扩展时,将选择不受横向缩减保护的最新虚拟机,以便删除。 对于区域虚拟机规模集,规模集将首先跨区域均衡。 在每个区域中,将选择不受保护的最新虚拟机进行删除。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SecurityGroupName

要应用于此规模集的网络安全组的名称。 如果未提供任何值,则会创建与规模集同名的默认网络安全组,并将其应用于规模集。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SecurityPostureExcludeExtension

应用安全状况时要排除的虚拟机扩展列表。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-SecurityPostureId

/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|latest 形式的安全状况引用 ID

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符: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

-SinglePlacementGroup

使用它在单个放置组中创建规模集,默认值为多个组

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SkipExtensionsOnOverprovisionedVMs

指定扩展不会在额外的过度预配的 VM 上运行。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SkuProfileAllocationStrategy

SKU 配置文件的分配策略。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-SkuProfileVmSize

规模集的 VM 大小的数组。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-SubnetAddressPrefix

此 ScaleSet 将使用的子网的地址前缀。 如果未提供任何值,将应用默认子网设置(192.168.1.0/24)。

类型:String
Position:Named
默认值:192.168.1.0/24
必需:False
接受管道输入:False
接受通配符:False

-SubnetName

要用于此规模集的子网的名称。 如果未提供任何值,将使用与规模集相同的名称创建新子网。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SystemAssignedIdentity

如果参数存在,则规模集中的 VM(是)分配了自动生成的托管系统标识。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-UpgradePolicyMode

此规模集中 VM 实例的升级策略模式。 升级策略可以指定自动、手动或滚动升级。

类型:UpgradeMode
接受的值:Automatic, Manual, Rolling
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-UserAssignedIdentity

应分配给规模集中 VM 的托管服务标识的名称。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-UserData

Vmss 的 UserData(将进行 base-64 编码)。 客户不应在此处传递任何机密。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-VirtualMachineScaleSet

指定 VirtualMachineScaleSet 对象,该对象包含此 cmdlet 创建的 VMSS 的属性。

类型:PSVirtualMachineScaleSet
Position:2
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-VirtualNetworkName

要用于此规模集的虚拟网络的名称。 如果未提供任何值,则会创建与规模集同名的新虚拟网络。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-VMScaleSetName

指定此 cmdlet 创建的 VMSS 的名称。

类型:String
别名:Name
Position:1
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-VmSize

此规模集中 VM 实例的大小。 Get-AzComputeResourceSku 可用于查找订阅和区域的可用大小。 如果未指定大小,将使用默认大小(Standard_DS1_v2)。

类型:String
Position:Named
默认值:Standard_DS1_v2
必需:False
接受管道输入:False
接受通配符:False

-VnetAddressPrefix

用于此规模集的虚拟网络的地址前缀。 如果未提供任何值,将使用默认虚拟网络地址前缀设置(192.168.0.0/16)。

类型:String
Position:Named
默认值:192.168.0.0/16
必需:False
接受管道输入:False
接受通配符:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-Zone

表示为资源分配的 IP 需要来自的可用性区域列表。

类型:List<T>[String]
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

输入

String

PSVirtualMachineScaleSet

List<T>[[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]

输出

PSVirtualMachineScaleSet