Compartilhar via


Set-AzVmssOsProfile

Define as propriedades do perfil do sistema operacional VMSS.

Sintaxe

Default (Default)

Set-AzVmssOsProfile
    [-VirtualMachineScaleSet] <PSVirtualMachineScaleSet>
    [[-ComputerNamePrefix] <String>]
    [[-AdminUsername] <String>]
    [[-AdminPassword] <String>]
    [[-CustomData] <String>]
    [[-WindowsConfigurationProvisionVMAgent] <Boolean>]
    [-LinuxConfigurationProvisionVMAgent <Boolean>]
    [[-WindowsConfigurationEnableAutomaticUpdate] <Boolean>]
    [[-TimeZone] <String>]
    [[-AdditionalUnattendContent] <AdditionalUnattendContent[]>]
    [[-Listener] <WinRMListener[]>]
    [[-LinuxConfigurationDisablePasswordAuthentication] <Boolean>]
    [[-PublicKey] <SshPublicKey[]>]
    [[-Secret] <VaultSecretGroup[]>]
    [-WindowsConfigurationPatchMode <String>]
    [-LinuxConfigurationPatchMode <String>]
    [-EnableHotpatching]
    [-DefaultProfile <IAzureContextContainer>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

O cmdlet Set-AzVmssOsProfile define as propriedades de perfil do sistema operacional Conjunto de Dimensionamento de Máquinas Virtuais.

Exemplos

Exemplo 1: Definir as propriedades de perfil do sistema operacional para um VMSS

$vmss = New-AzVmssConfig -Location $Loc -SkuCapacity 2 -SkuName "Standard_A0" -UpgradePolicyMode "Automatic" -NetworkInterfaceConfiguration $NetCfg
Set-AzVmssOsProfile -VirtualMachineScaleSet $vmss -ComputerNamePrefix "Test" -AdminUsername $AdminUsername -AdminPassword $AdminPassword

Esse comando define as propriedades de perfil do sistema operacional para o objeto $vmss. O comando define o prefixo de nome do computador para todas as instâncias de máquina virtual no VMSS para testar e fornece o nome de usuário e a senha do administrador.

Exemplo 2: defina as propriedades de perfil do sistema operacional para uma Vmss no modo flexível com o Hotpatching habilitado.

# Setup variables.
$loc = "eastus";
$rgname = "<Resource Group Name>";
$vmssName = "myVmssSlb";
$vmNamePrefix = "vmSlb";
$vmssInstanceCount = 5;
$vmssSku = "Standard_DS1_v2";
$vnetname = "myVnet";
$vnetAddress = "10.0.0.0/16";
$subnetname = "default-slb";
$subnetAddress = "10.0.2.0/24";
$securePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force;
$cred = New-Object System.Management.Automation.PSCredential ("<Username>", $securePassword);

# VMSS Flex requires explicit outbound access.
# Create a virtual network.
$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetname -AddressPrefix $subnetAddress;
$virtualNetwork = New-AzVirtualNetwork -Name $vnetname -ResourceGroupName $rgname -Location $loc -AddressPrefix $vnetAddress -Subnet $frontendSubnet;

# Create a public IP address.
$publicIP = New-AzPublicIpAddress `
    -ResourceGroupName $rgname `
    -Location $loc `
    -AllocationMethod Static `
    -Sku "Standard" `
    -IpAddressVersion "IPv4" `
    -Name "myLBPublicIP";

# Create a frontend and backend IP pool.
$frontendIP = New-AzLoadBalancerFrontendIpConfig `
    -Name "myFrontEndPool" `
    -PublicIpAddress $publicIP;

$backendPool = New-AzLoadBalancerBackendAddressPoolConfig -Name "myBackEndPool" ;

# Create the load balancer.
$lb = New-AzLoadBalancer `
    -ResourceGroupName $rgname `
    -Name "myLoadBalancer" `
    -Sku "Standard" `
    -Tier "Regional" `
    -Location $loc `
    -FrontendIpConfiguration $frontendIP `
    -BackendAddressPool $backendPool;

# Create a load balancer health probe for TCP port 80.
Add-AzLoadBalancerProbeConfig -Name "myHealthProbe" `
    -LoadBalancer $lb `
    -Protocol TCP `
    -Port 80 `
    -IntervalInSeconds 15 `
    -ProbeCount 2;

# Create a load balancer rule to distribute traffic on port TCP 80.
# The health probe from the previous step is used to make sure that traffic is
# only directed to healthy VM instances.
Add-AzLoadBalancerRuleConfig `
    -Name "myLoadBalancerRule" `
    -LoadBalancer $lb `
    -FrontendIpConfiguration $lb.FrontendIpConfigurations[0] `
    -BackendAddressPool $lb.BackendAddressPools[0] `
    -Protocol TCP `
    -FrontendPort 80 `
    -BackendPort 80 `
    -DisableOutboundSNAT `
    -Probe (Get-AzLoadBalancerProbeConfig -Name "myHealthProbe" -LoadBalancer $lb);

# Add outbound connectivity rule.
Add-AzLoadBalancerOutboundRuleConfig `
    -Name "outboundrule" `
    -LoadBalancer $lb `
    -AllocatedOutboundPort '10000' `
    -Protocol 'All' `
    -IdleTimeoutInMinutes '15' `
    -FrontendIpConfiguration $lb.FrontendIpConfigurations[0] `
    -BackendAddressPool $lb.BackendAddressPools[0];

# Update the load balancer configuration.
Set-AzLoadBalancer -LoadBalancer $lb;

# Create IP address configurations.
# Instances will require explicit outbound connectivity, for example
#   - NAT Gateway on the subnet (recommended)
#   - Instances in backend pool of Standard LB with outbound connectivity rules
#   - Public IP address on each instance
# See aka.ms/defaultoutboundaccess for more info.
$ipConfig = New-AzVmssIpConfig `
    -Name "myIPConfig" `
    -SubnetId $virtualNetwork.Subnets[0].Id `
    -LoadBalancerBackendAddressPoolsId $lb.BackendAddressPools[0].Id `
    -Primary;

# Create a config object.
# The Vmss config object stores the core information for creating a scale set.
$vmssConfig = New-AzVmssConfig `
    -Location $loc `
    -SkuCapacity $vmssInstanceCount `
    -SkuName $vmssSku `
    -OrchestrationMode 'Flexible' `
    -PlatformFaultDomainCount 1;

# Reference a virtual machine image from the gallery.
Set-AzVmssStorageProfile $vmssConfig `
    -OsDiskCreateOption "FromImage" `
    -ImageReferencePublisher "MicrosoftWindowsServer" `
    -ImageReferenceOffer "WindowsServer" `
    -ImageReferenceSku "2022-datacenter-azure-edition-core-smalldisk" `
    -ImageReferenceVersion "latest";

# Set up information for authenticating with the virtual machine.
Set-AzVmssOsProfile $vmssConfig `
    -AdminUsername $cred.UserName `
    -AdminPassword $cred.Password `
    -ComputerNamePrefix $vmNamePrefix `
    -WindowsConfigurationProvisionVMAgent $true `
    -WindowsConfigurationPatchMode "AutomaticByPlatform" `
    -EnableHotpatching;

# Attach the virtual network to the config object.
Add-AzVmssNetworkInterfaceConfiguration `
    -VirtualMachineScaleSet $vmssConfig `
    -Name "network-config" `
    -Primary $true `
    -IPConfiguration $ipConfig `
    -NetworkApiVersion '2020-11-01';

# Define the Application Health extension properties.
$publicConfig = @{"protocol" = "http"; "port" = 80; "requestPath" = "/healthEndpoint"};
$extensionName = "myHealthExtension";
$extensionType = "ApplicationHealthWindows";
$publisher = "Microsoft.ManagedServices";
# Add the Application Health extension to the scale set model.
Add-AzVmssExtension -VirtualMachineScaleSet $vmssConfig `
    -Name $extensionName `
    -Publisher $publisher `
    -Setting $publicConfig `
    -Type $extensionType `
    -TypeHandlerVersion "1.0" `
    -AutoUpgradeMinorVersion $True;

# Create the virtual machine scale set.
$vmss = New-AzVmss `
    -ResourceGroupName $rgname `
    -Name $vmssName `
    -VirtualMachineScaleSet $vmssConfig;

Definir as propriedades de perfil do sistema operacional para uma VMss no modo flexível com o Hotpatching habilitado

Parâmetros

-AdditionalUnattendContent

Especifica um objeto de conteúdo autônomo. Você pode usar o Add-AzVMAdditionalUnattendContent para criar o objeto.

Propriedades do parâmetro

Tipo:

AdditionalUnattendContent[]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:8
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-AdminPassword

Especifica a senha de administrador a ser usada para todas as instâncias de máquina virtual no VMSS.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:3
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-AdminUsername

Especifica o nome da conta de administrador a ser usado para todas as instâncias de máquina virtual no VMSS.
Restrição:
Windows: Não é possível conter caracteres especiais /""[]:|<>+=;,?*@& ou terminar em "."
Linux: o nome de usuário deve conter apenas letras, números, hifens e sublinhados e pode não começar com um hífen ou número.
valores não permitidos: "administrador", "admin", "user", "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".
Comprimento mínimo: 1 caractere
Comprimento máximo: 20 caracteres para Windows, 64 caracteres para Linux
Para obter uma lista de usuários internos do sistema no Linux que não devem ser usados neste campo, consulte Selecionar Nomes de Usuário para Linux no Azure.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:2
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-ComputerNamePrefix

Especifica o prefixo de nome do computador para todas as instâncias de máquina virtual no VMSS. Os nomes de computador devem ter de 1 a 15 caracteres.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:1
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-Confirm

Solicita sua confirmação antes de executar o cmdlet.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:cf

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-CustomData

Especifica uma cadeia de caracteres codificada em base 64 de dados personalizados. Isso é decodificado para uma matriz binária que é salva como um arquivo na máquina virtual. O comprimento máximo da matriz binária é de 65535 bytes.
Para usar o cloud-init para sua VM, consulte Usando cloud-init para personalizar uma VM do Linux durante a criação.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:4
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-DefaultProfile

As credenciais, a conta, o locatário e a assinatura usados para comunicação com o Azure.

Propriedades do parâmetro

Tipo:IAzureContextContainer
Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:AzContext, AzureRmContext, AzureCredential

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-EnableHotpatching

Permite que os clientes corrijam suas VMss do Azure sem exigir uma reinicialização. Para enableHotpatching, o 'provisionVMAgent' deve ser definido como true e 'patchMode' deve ser definido como 'AutomaticByPlatform'.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-LinuxConfigurationDisablePasswordAuthentication

Indica que esse cmdlet desabilita a autenticação de senha.

Propriedades do parâmetro

Tipo:

Nullable<T>[Boolean]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:10
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-LinuxConfigurationPatchMode

Especifica o modo de aplicação de patch de convidado de VM para máquina virtual IaaS ou máquinas virtuais associadas ao conjunto de dimensionamento de máquinas virtuais com OrchestrationMode como Flexível.

Os valores possíveis são:

ImageDefault – a configuração de aplicação de patch padrão da máquina virtual é usada.

AutomaticByPlatform – a máquina virtual será atualizada automaticamente pela plataforma. A propriedade provisionVMAgent deve ser verdadeira

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-LinuxConfigurationProvisionVMAgent

Indica se o agente de máquina virtual deve ser provisionado na máquina virtual.

Quando essa propriedade não é especificada no corpo da solicitação, o comportamento padrão é defini-la como true. Isso garantirá que o Agente de VM esteja instalado na VM para que as extensões possam ser adicionadas à VM posteriormente

Propriedades do parâmetro

Tipo:

Nullable<T>[Boolean]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-Listener

Especifica os ouvintes do WinRM (Gerenciamento Remoto do Windows). Isso habilita o Windows PowerShell remoto. Você pode usar o cmdlet Add-AzVmssWinRMListener para criar o ouvinte.

Propriedades do parâmetro

Tipo:

WinRMListener[]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:9
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-PublicKey

Especifica o objeto de chave pública SSH (Secure Shell). Você pode usar o cmdlet Add-AzVMSshPublicKey para criar o objeto.

Propriedades do parâmetro

Tipo:

SshPublicKey[]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:11
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-Secret

Especifica o objeto de segredos que contém as referências de certificado a serem colocadas na máquina virtual. Você pode usar o cmdlet Add-AzVmssSecret para criar o objeto de segredos.

Propriedades do parâmetro

Tipo:

VaultSecretGroup[]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:12
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-TimeZone

Especifica o fuso horário da máquina virtual. por exemplo, "Horário Padrão do Pacífico".
Os valores possíveis podem ser TimeZoneInfo.Id valor de fusos horários retornados por TimeZoneInfo.GetSystemTimeZones.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:7
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-VirtualMachineScaleSet

Especifica o objeto VMSS. Você pode usar o cmdlet New-AzVmssConfig para criar o objeto.

Propriedades do parâmetro

Tipo:PSVirtualMachineScaleSet
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:wi

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-WindowsConfigurationEnableAutomaticUpdate

Indica se as máquinas virtuais no VMSS estão habilitadas para atualizações automáticas.

Propriedades do parâmetro

Tipo:

Nullable<T>[Boolean]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:6
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-WindowsConfigurationPatchMode

Especifica o modo de aplicação de patch de convidado de VM para máquina virtual IaaS ou máquinas virtuais associadas ao conjunto de dimensionamento de máquinas virtuais com OrchestrationMode como Flexível.

Os valores possíveis são:

Manual - Você controla a aplicação de patches em uma máquina virtual. Faça isso aplicando patches manualmente dentro da VM. Nesse modo, as atualizações automáticas são desabilitadas; a propriedade WindowsConfiguration.enableAutomaticUpdates deve ser falsa

AutomaticByOS – a máquina virtual será atualizada automaticamente pelo sistema operacional. A propriedade WindowsConfiguration.enableAutomaticUpdates deve ser verdadeira.

AutomaticByPlatform – a máquina virtual será atualizada automaticamente pela plataforma. As propriedades provisionVMAgent e WindowsConfiguration.enableAutomaticUpdates devem ser verdadeiras

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-WindowsConfigurationProvisionVMAgent

Indica se o agente de máquina virtual deve ser provisionado nas máquinas virtuais no VMSS.

Propriedades do parâmetro

Tipo:

Nullable<T>[Boolean]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:5
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

PSVirtualMachineScaleSet

String

Nullable<T>

AdditionalUnattendContent

WinRMListener

SshPublicKey

VaultSecretGroup

Saídas

PSVirtualMachineScaleSet