Compartir a través de


Set-AzVmssOsProfile

Establece las propiedades del perfil del sistema operativo VMSS.

Sintaxis

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

El cmdlet Set-AzVmssOsProfile establece las propiedades del perfil del sistema operativo del conjunto de escalado de máquinas virtuales.

Ejemplos

Ejemplo 1: Establecimiento de las propiedades del perfil del sistema operativo para un 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

Este comando establece las propiedades del perfil del sistema operativo para el objeto $vmss. El comando establece el prefijo de nombre de equipo para todas las instancias de máquina virtual de VMSS en Probar y proporciona el nombre de usuario y la contraseña del administrador.

Ejemplo 2: Establezca las propiedades del perfil del sistema operativo para vmss en modo flexible con el almacenamiento en caliente 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;

Establecimiento de las propiedades del perfil de sistema operativo para vmss en modo flexible con el almacenamiento en caliente habilitado

Parámetros

-AdditionalUnattendContent

Especifica un objeto de contenido desatendido. Puede usar Add-AzVMAdditionalUnattendContent para crear el objeto .

Tipo:AdditionalUnattendContent[]
Posición:8
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-AdminPassword

Especifica la contraseña de administrador que se va a usar para todas las instancias de máquina virtual de VMSS.

Tipo:String
Posición:3
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-AdminUsername

Especifica el nombre de la cuenta de administrador que se va a usar para todas las instancias de máquina virtual de VMSS.
Restricción:
Windows: No se pueden contener caracteres especiales /""[]:|<>+=;,?*@& o terminar en "."
Linux: el nombre de usuario solo debe contener letras, números, guiones y guiones bajos y puede que no empiece por un guión o un número.
Valores no permitidos: "administrator", "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".
Longitud mínima: 1 carácter
Longitud máxima: 20 caracteres para Windows, 64 caracteres para Linux
Para obtener una lista de los usuarios del sistema integrados en Linux que no deben usarse en este campo, consulte Selección de nombres de usuario para Linux en Azure.

Tipo:String
Posición:2
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-ComputerNamePrefix

Especifica el prefijo de nombre de equipo para todas las instancias de máquina virtual de VMSS. Los nombres de equipo deben tener entre 1 y 15 caracteres.

Tipo:String
Posición:1
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-Confirm

Le solicita su confirmación antes de ejecutar el cmdlet.

Tipo:SwitchParameter
Alias:cf
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-CustomData

Especifica una cadena codificada en base 64 de datos personalizados. Esto se descodifica en una matriz binaria que se guarda como un archivo en la máquina virtual. La longitud máxima de la matriz binaria es de 65535 bytes.
Para usar cloud-init para la máquina virtual, consulte Uso de cloud-init para personalizar una máquina virtual Linux durante la creación.

Tipo:String
Posición:4
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-DefaultProfile

Las credenciales, la cuenta, el inquilino y la suscripción que se usan para la comunicación con Azure.

Tipo:IAzureContextContainer
Alias:AzContext, AzureRmContext, AzureCredential
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-EnableHotpatching

Permite a los clientes aplicar revisiones a sus máquinas virtuales de Azure sin necesidad de reiniciar. Para enableHotpatching, el "provisionVMAgent" debe establecerse en true y "patchMode" debe establecerse en "AutomaticByPlatform".

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-LinuxConfigurationDisablePasswordAuthentication

Indica que este cmdlet deshabilita la autenticación con contraseña.

Tipo:Nullable<T>[Boolean]
Posición:10
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-LinuxConfigurationPatchMode

Especifica el modo de aplicación de revisiones de invitado de máquina virtual a máquinas virtuales iaaS o máquinas virtuales asociadas al conjunto de escalado de máquinas virtuales con OrchestrationMode como flexible.

Los valores posibles son:

ImageDefault : se usa la configuración de aplicación de revisiones predeterminada de la máquina virtual.

AutomaticByPlatform : la plataforma actualizará automáticamente la máquina virtual. La propiedad provisionVMAgent debe ser true

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-LinuxConfigurationProvisionVMAgent

Indica si se debe aprovisionar el agente de máquina virtual en la máquina virtual.

Cuando esta propiedad no se especifica en el cuerpo de la solicitud, el comportamiento predeterminado es establecerla en true. Esto garantizará que el agente de máquina virtual esté instalado en la máquina virtual para que las extensiones se puedan agregar a la máquina virtual más adelante.

Tipo:Nullable<T>[Boolean]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-Listener

Especifica los agentes de escucha de Administración remota de Windows (WinRM). Esto habilita Windows PowerShell remoto. Puede usar el cmdlet Add-AzVmssWinRMListener para crear el agente de escucha.

Tipo:WinRMListener[]
Posición:9
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-PublicKey

Especifica el objeto de clave pública de Secure Shell (SSH). Puede usar el cmdlet Add-AzVMSshPublicKey para crear el objeto .

Tipo:SshPublicKey[]
Posición:11
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-Secret

Especifica el objeto de secretos que contiene las referencias de certificado que se van a colocar en la máquina virtual. Puede usar el cmdlet Add-AzVmssSecret para crear el objeto secrets.

Tipo:VaultSecretGroup[]
Posición:12
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-TimeZone

Especifica la zona horaria de la máquina virtual. Por ejemplo, "Hora estándar del Pacífico".
Los valores posibles se pueden TimeZoneInfo.Id valor de las zonas horarias devueltas por TimeZoneInfo.GetSystemTimeZones.

Tipo:String
Posición:7
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-VirtualMachineScaleSet

Especifica el objeto VMSS. Puede usar el cmdlet New-AzVmssConfig para crear el objeto .

Tipo:PSVirtualMachineScaleSet
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-WhatIf

Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.

Tipo:SwitchParameter
Alias:wi
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-WindowsConfigurationEnableAutomaticUpdate

Indica si las máquinas virtuales de VMSS están habilitadas para las actualizaciones automáticas.

Tipo:Nullable<T>[Boolean]
Posición:6
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-WindowsConfigurationPatchMode

Especifica el modo de aplicación de revisiones de invitado de máquina virtual a máquinas virtuales iaaS o máquinas virtuales asociadas al conjunto de escalado de máquinas virtuales con OrchestrationMode como flexible.

Los valores posibles son:

Manual : controla la aplicación de revisiones en una máquina virtual. Para ello, aplique revisiones manualmente dentro de la máquina virtual. En este modo, las actualizaciones automáticas están deshabilitadas; La propiedad WindowsConfiguration.enableAutomaticUpdates debe ser false

AutomaticByOS : el sistema operativo actualizará automáticamente la máquina virtual. La propiedad WindowsConfiguration.enableAutomaticUpdates debe ser true.

AutomaticByPlatform : la máquina virtual actualizará automáticamente la plataforma. Las propiedades provisionVMAgent y WindowsConfiguration.enableAutomaticUpdates deben ser true.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-WindowsConfigurationProvisionVMAgent

Indica si se debe aprovisionar el agente de máquina virtual en las máquinas virtuales de VMSS.

Tipo:Nullable<T>[Boolean]
Posición:5
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

Entradas

PSVirtualMachineScaleSet

String

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

AdditionalUnattendContent[]

WinRMListener[]

SshPublicKey[]

VaultSecretGroup[]

Salidas

PSVirtualMachineScaleSet