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.
Typ: | AdditionalUnattendContent[] |
Position: | 8 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-AdminPassword
Gibt das Administratorkennwort an, das für alle Instanzen des virtuellen Computers im VMSS verwendet werden soll.
Typ: | String |
Position: | 3 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | 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.
Typ: | String |
Position: | 2 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | 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.
Typ: | String |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Confirm
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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.
Typ: | String |
Position: | 4 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-DefaultProfile
Die Anmeldeinformationen, Konten, Mandanten und Abonnements, die für die Kommunikation mit Azure verwendet werden.
Typ: | IAzureContextContainer |
Aliase: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-LinuxConfigurationDisablePasswordAuthentication
Gibt an, dass dieses Cmdlet die Kennwortauthentifizierung deaktiviert.
Typ: | Nullable<T>[Boolean] |
Position: | 10 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | 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.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | 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.
Typ: | Nullable<T>[Boolean] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | 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.
Typ: | WinRMListener[] |
Position: | 9 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-PublicKey
Gibt das Öffentliche Schlüsselobjekt (Secure Shell, SSH) an. Sie können das Add-AzVMSshPublicKey-Cmdlet verwenden, um das Objekt zu erstellen.
Typ: | SshPublicKey[] |
Position: | 11 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | 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.
Typ: | VaultSecretGroup[] |
Position: | 12 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | 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.
Typ: | String |
Position: | 7 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-VirtualMachineScaleSet
Gibt das VMSS-Objekt an. Sie können das Objekt mithilfe des Cmdlets New-AzVmssConfig erstellen.
Typ: | PSVirtualMachineScaleSet |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliase: | wi |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-WindowsConfigurationEnableAutomaticUpdate
Gibt an, ob die virtuellen Computer in VMSS für automatische Updates aktiviert sind.
Typ: | Nullable<T>[Boolean] |
Position: | 6 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | 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.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-WindowsConfigurationProvisionVMAgent
Gibt an, ob der Agent des virtuellen Computers auf den virtuellen Computern in vmSS bereitgestellt werden soll.
Typ: | Nullable<T>[Boolean] |
Position: | 5 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Nullable<T>[[System.Boolean, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]