Set-AzVmssOsProfile

Imposta le proprietà del profilo del sistema operativo VMSS.

Sintassi

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>]

Descrizione

Il cmdlet Set-AzVmssOsProfile imposta le proprietà del profilo del sistema operativo del set di scalabilità di macchine virtuali.

Esempio

Esempio 1: Impostare le proprietà del profilo del sistema operativo per un set di scalabilità di macchine virtuali

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

Questo comando imposta le proprietà del profilo del sistema operativo per l'oggetto $vmss. Il comando imposta il prefisso del nome computer per tutte le istanze della macchina virtuale nel set di scalabilità di macchine virtuali su Test e fornisce il nome utente e la password dell'amministratore.

Esempio 2: Impostare le proprietà del profilo del sistema operativo per un vmss in modalità flessibile con Hotpatching abilitato.

# 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 = "<Password>" | ConvertTo-SecureString -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;

Impostare le proprietà del profilo del sistema operativo per una macchina virtuale in modalità flessibile con Hotpatching abilitato

Parametri

-AdditionalUnattendContent

Specifica un oggetto contenuto automatico. È possibile usare Add-AzVMAdditionalUnattendContent per creare l'oggetto.

Type:AdditionalUnattendContent[]
Position:8
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-AdminPassword

Specifica la password dell'amministratore da usare per tutte le istanze della macchina virtuale nel set di scalabilità di macchine virtuali.

Type:String
Position:3
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-AdminUsername

Specifica il nome dell'account amministratore da usare per tutte le istanze della macchina virtuale nel set di scalabilità di macchine virtuali.
Restrizione:
Windows: Impossibile contenere caratteri speciali /""[]:|<>+=;,?*@& or end in "."
Linux: il nome utente deve contenere solo lettere, numeri, trattini e caratteri di sottolineatura e non iniziare con un trattino o un numero.
Valori non consentiti: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin"2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5".
Lunghezza minima: 1 carattere
Lunghezza massima: 20 caratteri per Windows, 64 caratteri per Linux
Per un elenco di utenti di sistema predefiniti in Linux che non devono essere usati in questo campo, vedere Selezione di nomi utente per Linux in Azure.

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ComputerNamePrefix

Specifica il prefisso del nome computer per tutte le istanze della macchina virtuale nel set di scalabilità di macchine virtuali. I nomi dei computer devono essere lunghi da 1 a 15 caratteri.

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CustomData

Specifica una stringa con codifica base 64 di dati personalizzati. Questa operazione viene decodificata in una matrice binaria salvata come file nella macchina virtuale. La lunghezza massima della matrice binaria è di 65535 byte.
Per l'uso di cloud-init per la macchina virtuale, vedere Uso di cloud-init per personalizzare una macchina virtuale Linux durante la creazione.

Type:String
Position:4
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DefaultProfile

Credenziali, account, tenant e sottoscrizione usati per la comunicazione con Azure.

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnableHotpatching

Consente ai clienti di applicare patch alle macchine virtuali di Azure senza richiedere un riavvio. Per enableHotpatching, 'provisionVMAgent' deve essere impostato su true e 'patchMode' deve essere impostato su 'AutomaticByPlatform'.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-LinuxConfigurationDisablePasswordAuthentication

Indica che questo cmdlet disabilita l'autenticazione della password.

Type:Nullable<T>[Boolean]
Position:10
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-LinuxConfigurationPatchMode

Specifica la modalità di applicazione di patch guest alle macchine virtuali IaaS o alle macchine virtuali associate al set di scalabilità di macchine virtuali con OrchestrationMode come flessibile.

I valori possibili sono:

ImageDefault : viene usata la configurazione di applicazione di patch predefinita della macchina virtuale.

AutomaticByPlatform : la macchina virtuale verrà aggiornata automaticamente dalla piattaforma. La proprietà provisionVMAgent deve essere true

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-LinuxConfigurationProvisionVMAgent

Indica se è necessario eseguire il provisioning dell'agente di macchine virtuali nella macchina virtuale.

Quando questa proprietà non viene specificata nel corpo della richiesta, il comportamento predefinito consiste nell'impostarlo su true. In questo modo si garantisce che l'agente di macchine virtuali sia installato nella macchina virtuale in modo che le estensioni possano essere aggiunte alla macchina virtuale in un secondo momento

Type:Nullable<T>[Boolean]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Listener

Specifica i listener di Gestione remota Windows (WinRM). In questo modo si abilita Windows PowerShell remoto. È possibile usare il cmdlet Add-AzVmssWinRMListener per creare il listener.

Type:WinRMListener[]
Position:9
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PublicKey

Specifica l'oggetto chiave pubblica Secure Shell (SSH). È possibile usare il cmdlet Add-AzVMSshPublicKey per creare l'oggetto.

Type:SshPublicKey[]
Position:11
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Secret

Specifica l'oggetto segreti che contiene i riferimenti al certificato da inserire nella macchina virtuale. È possibile usare il cmdlet Add-AzVmssSecret per creare l'oggetto secrets.

Type:VaultSecretGroup[]
Position:12
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-TimeZone

Specifica il fuso orario della macchina virtuale. ad esempio "Ora solare pacifico".
I valori possibili possono essere TimeZoneInfo.Id valore dai fusi orari restituiti da TimeZoneInfo.GetSystemTimeZones.

Type:String
Position:7
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-VirtualMachineScaleSet

Specifica l'oggetto VMSS. È possibile usare il cmdlet New-AzVmssConfig per creare l'oggetto.

Type:PSVirtualMachineScaleSet
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WindowsConfigurationEnableAutomaticUpdate

Indica se le macchine virtuali nel set di scalabilità di macchine virtuali sono abilitate per gli aggiornamenti automatici.

Type:Nullable<T>[Boolean]
Position:6
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WindowsConfigurationPatchMode

Specifica la modalità di applicazione di patch guest alle macchine virtuali IaaS o alle macchine virtuali associate al set di scalabilità di macchine virtuali con OrchestrationMode come flessibile.

I valori possibili sono:

Manuale: è possibile controllare l'applicazione di patch a una macchina virtuale. A tale scopo, applicare manualmente le patch all'interno della macchina virtuale. In questa modalità gli aggiornamenti automatici sono disabilitati; la proprietà WindowsConfiguration.enableAutomatic Aggiornamenti deve essere false

AutomaticByOS : la macchina virtuale verrà aggiornata automaticamente dal sistema operativo. La proprietà WindowsConfiguration.enableAutomatic Aggiornamenti deve essere true.

AutomaticByPlatform : la macchina virtuale verrà aggiornata automaticamente dalla piattaforma. Le proprietà provisionVMAgent e WindowsConfiguration.enableAutomatic Aggiornamenti devono essere true

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WindowsConfigurationProvisionVMAgent

Indica se è necessario eseguire il provisioning dell'agente di macchine virtuali nelle macchine virtuali nel set di scalabilità di macchine virtuali.

Type:Nullable<T>[Boolean]
Position:5
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

Input

PSVirtualMachineScaleSet

String

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

AdditionalUnattendContent[]

WinRMListener[]

SshPublicKey[]

VaultSecretGroup[]

Output

PSVirtualMachineScaleSet