Share via


Set-AzVmssOsProfile

Legt die Profileigenschaften des VMSS-Betriebssystems fest.

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

Beschreibung

Mit dem Cmdlet "Set-AzVmssOsProfile " werden die Profileigenschaften des Betriebssystems "Vm Scale Set" festgelegt.

Beispiele

Beispiel 1: Festlegen der Betriebssystemprofileigenschaften für eine 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

Mit diesem Befehl werden Die Profileigenschaften des Betriebssystems für das $vmss-Objekt festgelegt. Mit dem Befehl wird das Computernamenpräfix für alle Instanzen des virtuellen Computers in vmSS auf "Test" festgelegt und der Administratorbenutzername und das Kennwort angegeben.

Beispiel 2: Festlegen der Betriebssystemprofileigenschaften für einen virtuellen Computer im flexiblen Modus mit aktivierter Hotpatching-Funktion.

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

Festlegen der Betriebssystemprofileigenschaften für einen virtuellen Computer im flexiblen Modus mit aktiviertem Hotpatching

Parameter

-AdditionalUnattendContent

Gibt ein unbeaufsichtigtes Inhaltsobjekt an. Sie können das Objekt mithilfe des Add-AzVMAdditionalUnattendContent erstellen.

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

-AdminPassword

Gibt das Administratorkennwort an, das für alle Instanzen des virtuellen Computers im VMSS verwendet werden soll.

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

-AdminUsername

Gibt den Namen des Administratorkontos an, das für alle Instanzen des virtuellen Computers im VMSS verwendet werden soll.
Einschränkung:
Windows: Sonderzeichen /"[]:|<>+=;,?*@& oder enden sie in "."
Linux: Benutzername darf nur Buchstaben, Zahlen, Bindestriche und Unterstriche enthalten und darf nicht mit einem Bindestrich oder einer Zahl beginnen.
Unzulässige Werte: "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".
Mindestlänge: 1 Zeichen
Maximale Länge: 20 Zeichen für Windows, 64 Zeichen für Linux
Eine Liste der integrierten Systembenutzer unter Linux, die in diesem Feld nicht verwendet werden sollten, finden Sie unter Auswählen von Benutzernamen für Linux in Azure.

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

-ComputerNamePrefix

Gibt das Präfix des Computernamens für alle Instanzen des virtuellen Computers in vmSS an. Computernamen müssen 1 bis 15 Zeichen lang sein.

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

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

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

-CustomData

Gibt eine base64-codierte Zeichenfolge von benutzerdefinierten Daten an. Dies wird mit einem binären Array decodiert, das als Datei auf dem virtuellen Computer gespeichert wird. Die maximale Länge des binären Arrays beträgt 65535 Bytes.
Informationen zur Verwendung von Cloud-Init für Ihren virtuellen Computer finden Sie unter Verwenden von Cloud-Init zum Anpassen einer Linux-VM während der Erstellung.

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

-DefaultProfile

Die Anmeldeinformationen, Konten, Mandanten und Abonnements, die für die Kommunikation mit Azure verwendet werden.

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

-EnableHotpatching

Ermöglicht Es Kunden, ihre Azure-VMs zu patchen, ohne einen Neustart zu erfordern. Für enableHotpatching muss "provisionVMAgent" auf "true" festgelegt werden, und "patchMode" muss auf "AutomaticByPlatform" festgelegt werden.

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

-LinuxConfigurationDisablePasswordAuthentication

Gibt an, dass dieses Cmdlet die Kennwortauthentifizierung deaktiviert.

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

-LinuxConfigurationPatchMode

Gibt den Modus des VM-Gastpatchings auf iaaS-VM-Computer oder virtuelle Computer an, die mit orchestrationMode als flexibel verknüpft sind.

Dabei sind folgende Werte möglich:

ImageDefault – Die Standardpatchingkonfiguration des virtuellen Computers wird verwendet.

AutomaticByPlatform – Der virtuelle Computer wird automatisch von der Plattform aktualisiert. Die Eigenschaft provisionVMAgent muss true sein.

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

-LinuxConfigurationProvisionVMAgent

Gibt an, ob der Agent des virtuellen Computers auf dem virtuellen Computer bereitgestellt werden soll.

Wenn diese Eigenschaft nicht im Anforderungstext angegeben ist, wird sie standardmäßig auf "true" festgelegt. Dadurch wird sichergestellt, dass der VM-Agent auf dem virtuellen Computer installiert ist, damit Erweiterungen später zur VM hinzugefügt werden können.

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

-Listener

Gibt die Windows-Remoteverwaltung (WinRM)-Listener an. Dies ermöglicht Remote-Windows PowerShell. Sie können das Add-AzVmssWinRMListener-Cmdlet verwenden, um den Listener zu erstellen.

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

-PublicKey

Gibt das Öffentliche Schlüsselobjekt (Secure Shell, SSH) an. Sie können das Add-AzVMSshPublicKey-Cmdlet verwenden, um das Objekt zu erstellen.

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

-Secret

Gibt das geheime Objekt an, das die Zertifikatverweise enthält, die auf dem virtuellen Computer platziert werden sollen. Sie können das Add-AzVmssSecret-Cmdlet verwenden, um das geheime Objekt zu erstellen.

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

-TimeZone

Gibt die Zeitzone des virtuellen Computers an. z.B. "Pacific Standard Time".
Mögliche Werte können TimeZoneInfo.Id Wert aus Zeitzonen sein, die von TimeZoneInfo.GetSystemTimeZones zurückgegeben werden.

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

-VirtualMachineScaleSet

Gibt das VMSS-Objekt an. Sie können das Objekt mithilfe des Cmdlets New-AzVmssConfig erstellen.

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

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

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

-WindowsConfigurationEnableAutomaticUpdate

Gibt an, ob die virtuellen Computer in VMSS für automatische Updates aktiviert sind.

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

-WindowsConfigurationPatchMode

Gibt den Modus des VM-Gastpatchings auf iaaS-VM-Computer oder virtuelle Computer an, die mit orchestrationMode als flexibel verknüpft sind.

Dabei sind folgende Werte möglich:

Manuell – Sie steuern die Anwendung von Patches auf einen virtuellen Computer. Dazu wenden Sie Patches manuell innerhalb des virtuellen Computers an. In diesem Modus sind automatische Updates deaktiviert; die Eigenschaft "WindowsConfiguration.enableAutomaticUpdates" muss "false" sein.

AutomaticByOS – Der virtuelle Computer wird automatisch vom Betriebssystem aktualisiert. Die Eigenschaft "WindowsConfiguration.enableAutomaticUpdates" muss "true" sein.

AutomaticByPlatform – der virtuelle Computer wird automatisch von der Plattform aktualisiert. Die Eigenschaften provisionVMAgent und WindowsConfiguration.enableAutomaticUpdates müssen true sein.

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

-WindowsConfigurationProvisionVMAgent

Gibt an, ob der Agent des virtuellen Computers auf den virtuellen Computern in vmSS bereitgestellt werden soll.

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

Eingaben

PSVirtualMachineScaleSet

String

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

AdditionalUnattendContent[]

WinRMListener[]

SshPublicKey[]

VaultSecretGroup[]

Ausgaben

PSVirtualMachineScaleSet