Partager via


Set-AzVmssOsProfile

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

Syntax

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 = "<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;

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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-AdminPassword

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

Type:String
Position:3
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Vous demande une confirmation avant d’exécuter l’applet de commande.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DefaultProfile

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

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-LinuxConfigurationDisablePasswordAuthentication

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

Type:Nullable<T>[Boolean]
Position:10
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WindowsConfigurationEnableAutomaticUpdate

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

Type:Nullable<T>[Boolean]
Position:6
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.enableAutomatic Mises à jour doit être false

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

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

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

-WindowsConfigurationProvisionVMAgent

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

Type:Nullable<T>[Boolean]
Position:5
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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