Partager via


Set-AzVmssOsProfile

Définit les propriétés du profil du système d’exploitation VMSS.

Syntaxe

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

L’applet de commande Set-AzVmssOsProfile définit les propriétés du profil de système d’exploitation du groupe de machines virtuelles identiques.

Exemples

Exemple 1 : Définir les propriétés du profil du système d’exploitation pour 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

Cette commande définit les propriétés du profil du système d’exploitation pour l’objet $vmss. La commande définit le préfixe du nom de l’ordinateur pour toutes les instances de machine virtuelle dans vmSS pour tester et fournir le nom d’utilisateur et le mot de passe de l’administrateur.

Exemple 2 : Définissez les propriétés du profil du système d’exploitation pour une machine virtuelle en mode flexible avec Hotpatching activé.

# 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;

Définir les propriétés du profil du système d’exploitation pour une machine virtuelle en mode flexible avec Hotpatching activé

Paramètres

-AdditionalUnattendContent

Spécifie un objet de contenu sans assistance. Vous pouvez utiliser Add-AzVMAdditionalUnattendContent pour créer l’objet.

Type:AdditionalUnattendContent[]
Position:8
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-AdminPassword

Spécifie le mot de passe administrateur à utiliser pour toutes les instances de machine virtuelle dans vmSS.

Type:String
Position:3
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-AdminUsername

Spécifie le nom du compte d’administrateur à utiliser pour toutes les instances de machine virtuelle dans vmSS.
Restriction:
Windows : Impossible de contenir des caractères spéciaux /"[] :|<>+= ;, ?*@> ou se terminez par « ».
Linux : le nom d’utilisateur ne doit contenir que des lettres, des chiffres, des traits d’union et des traits de soulignement et ne peut pas commencer par un trait d’union ou un nombre.
Valeurs non autorisées : « administrateur », « admin », « user », « user1 », « test », « user2 », « test1 », « 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 ».
Longueur minimale : 1 caractère
Longueur maximale : 20 caractères pour Windows, 64 caractères pour Linux
Pour obtenir la liste des utilisateurs système intégrés sur Linux qui ne doivent pas être utilisés dans ce champ, consultez Sélectionner des noms d’utilisateur pour Linux sur Azure.

Type:String
Position:2
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-ComputerNamePrefix

Spécifie le préfixe de nom d’ordinateur pour toutes les instances de machine virtuelle dans vmSS. Les noms d’ordinateur doivent être de 1 à 15 caractères.

Type:String
Position:1
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Confirm

Vous demande une confirmation avant d’exécuter la commande cmdlet.

Type:SwitchParameter
Alias:cf
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CustomData

Spécifie une chaîne codée en base 64 de données personnalisées. Il s’agit d’un tableau binaire enregistré sous forme de fichier sur la machine virtuelle. La longueur maximale du tableau binaire est de 65535 octets.
Pour utiliser cloud-init pour votre machine virtuelle, consultez Utilisation de cloud-init pour personnaliser une machine virtuelle Linux lors de la création.

Type:String
Position:4
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-DefaultProfile

Informations d’identification, compte, locataire et abonnement utilisés pour la communication avec Azure.

Type:IAzureContextContainer
Alias:AzContext, AzureRmContext, AzureCredential
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-EnableHotpatching

Permet aux clients de corriger leurs machines virtuelles Azure sans nécessiter de redémarrage. Pour enableHotpatching, le paramètre « provisionVMAgent » doit être défini sur true et « patchMode » doit être défini sur « AutomaticByPlatform ».

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-LinuxConfigurationDisablePasswordAuthentication

Indique que cette applet de commande désactive l’authentification par mot de passe.

Type:Nullable<T>[Boolean]
Position:10
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-LinuxConfigurationPatchMode

Spécifie le mode de mise à jour corrective d’invité de machine virtuelle sur une machine virtuelle IaaS ou des machines virtuelles associées au groupe de machines virtuelles identiques avec OrchestrationMode en tant que flexible.

Les valeurs possibles sont les suivantes :

ImageDefault : la configuration de mise à jour corrective par défaut de la machine virtuelle est utilisée.

AutomaticByPlatform : la machine virtuelle est automatiquement mise à jour par la plateforme. La propriété provisionVMAgent doit être true

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-LinuxConfigurationProvisionVMAgent

Indique si l’agent de machine virtuelle doit être approvisionné sur la machine virtuelle.

Lorsque cette propriété n’est pas spécifiée dans le corps de la requête, le comportement par défaut est de le définir sur true. Cela garantit que l’agent de machine virtuelle est installé sur la machine virtuelle afin que les extensions puissent être ajoutées ultérieurement à la machine virtuelle.

Type:Nullable<T>[Boolean]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Listener

Spécifie les écouteurs Windows Remote Management (WinRM). Cela active Windows PowerShell à distance. Vous pouvez utiliser l’applet de commande Add-AzVmssWinRMListener pour créer l’écouteur.

Type:WinRMListener[]
Position:9
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-PublicKey

Spécifie l’objet de clé publique SSH (Secure Shell). Vous pouvez utiliser l’applet de commande Add-AzVMSshPublicKey pour créer l’objet.

Type:SshPublicKey[]
Position:11
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Secret

Spécifie l’objet secrets qui contient les références de certificat à placer sur la machine virtuelle. Vous pouvez utiliser l’applet de commande Add-AzVmssSecret pour créer l’objet secrets.

Type:VaultSecretGroup[]
Position:12
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-TimeZone

Spécifie le fuseau horaire de la machine virtuelle. par exemple « Heure standard du Pacifique ».
Les valeurs possibles peuvent être TimeZoneInfo.Id valeur des fuseaux horaires retournés par TimeZoneInfo.GetSystemTimeZones.

Type:String
Position:7
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-VirtualMachineScaleSet

Spécifie l’objet VMSS. Vous pouvez utiliser l’applet de commande New-AzVmssConfig pour créer l’objet.

Type:PSVirtualMachineScaleSet
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-WhatIf

Montre ce qui se passe en cas d’exécution de l’applet de commande. L’applet de commande n’est pas exécutée.

Type:SwitchParameter
Alias:wi
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-WindowsConfigurationEnableAutomaticUpdate

Indique si les machines virtuelles dans vmSS sont activées pour les mises à jour automatiques.

Type:Nullable<T>[Boolean]
Position:6
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-WindowsConfigurationPatchMode

Spécifie le mode de mise à jour corrective d’invité de machine virtuelle sur une machine virtuelle IaaS ou des machines virtuelles associées au groupe de machines virtuelles identiques avec OrchestrationMode en tant que flexible.

Les valeurs possibles sont les suivantes :

Manuel : vous contrôlez l’application de correctifs sur une machine virtuelle. Pour ce faire, appliquez manuellement des correctifs à l’intérieur de la machine virtuelle. Dans ce mode, les mises à jour automatiques sont désactivées ; la propriété WindowsConfiguration.enableAutomaticUpdates doit être false

AutomaticByOS : la machine virtuelle sera automatiquement mise à jour par le système d’exploitation. La propriété WindowsConfiguration.enableAutomaticUpdates doit être vraie.

AutomaticByPlatform : la machine virtuelle est automatiquement mise à jour par la plateforme. Les propriétés provisionVMAgent et WindowsConfiguration.enableAutomaticUpdates doivent être vraies

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-WindowsConfigurationProvisionVMAgent

Indique si l’agent de machine virtuelle doit être approvisionné sur les machines virtuelles dans vmSS.

Type:Nullable<T>[Boolean]
Position:5
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

Entrées

PSVirtualMachineScaleSet

String

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

AdditionalUnattendContent[]

WinRMListener[]

SshPublicKey[]

VaultSecretGroup[]

Sorties

PSVirtualMachineScaleSet