Delen via


Set-AzVmssOsProfile

Hiermee stelt u de eigenschappen van het VMSS-besturingssysteemprofiel in.

Syntaxis

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

Met de cmdlet Set-AzVmssOsProfile worden de eigenschappen van het besturingssysteem van de virtuele-machineschaalset ingesteld.

Voorbeelden

Voorbeeld 1: De eigenschappen van het besturingssysteemprofiel voor een VMSS instellen

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

Met deze opdracht worden eigenschappen van het besturingssysteemprofiel ingesteld voor het $vmss-object. Met de opdracht stelt u het voorvoegsel van de computernaam in voor alle exemplaren van de virtuele machine in de VMSS om de gebruikersnaam en het wachtwoord van de beheerder te testen en op te geven.

Voorbeeld 2: Stel de eigenschappen van het besturingssysteemprofiel in voor een vmss in de flexibele modus met Hotpatching ingeschakeld.

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

Stel de eigenschappen van het besturingssysteemprofiel in voor een vmss in de flexibele modus met Hotpatching ingeschakeld

Parameters

-AdditionalUnattendContent

Hiermee geeft u een inhoudsobject zonder toezicht op. U kunt de Add-AzVMAdditionalUnattendContent gebruiken om het object te maken.

Type:AdditionalUnattendContent[]
Position:8
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-AdminPassword

Hiermee geeft u het beheerderswachtwoord op dat moet worden gebruikt voor alle exemplaren van de virtuele machine in de VMSS.

Type:String
Position:3
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-AdminUsername

Hiermee geeft u de beheerdersaccountnaam op die moet worden gebruikt voor alle exemplaren van de virtuele machine in de VMSS.
Beperking:
Windows: Kan geen speciale tekens /"[]:|<>+=;,?*@& of eindig op "."
Linux: De gebruikersnaam mag alleen letters, cijfers, afbreekstreepjes en onderstrepingstekens bevatten en mag niet beginnen met een afbreekstreepje of cijfer.
Niet-toegestane waarden: '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".
Minimale lengte: 1 teken
Maximale lengte: 20 tekens voor Windows, 64 tekens voor Linux
Zie Gebruikersnamen voor Linux selecteren voor Linux voor een lijst met ingebouwde systeemgebruikers die niet in dit veld mogen worden gebruikt.

Type:String
Position:2
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-ComputerNamePrefix

Hiermee geeft u het voorvoegsel van de computernaam op voor alle exemplaren van de virtuele machine in de VMSS. Computernamen moeten 1 tot 15 tekens lang zijn.

Type:String
Position:1
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Confirm

Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.

Type:SwitchParameter
Aliassen:cf
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-CustomData

Hiermee geeft u een met base 64 gecodeerde tekenreeks van aangepaste gegevens op. Dit wordt gedecodeerd naar een binaire matrix die wordt opgeslagen als een bestand op de virtuele machine. De maximale lengte van de binaire matrix is 65535 bytes.
Zie Cloud-init gebruiken om een Virtuele Linux-machine aan te passen tijdens het maken.

Type:String
Position:4
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-DefaultProfile

De referenties, het account, de tenant en het abonnement die worden gebruikt voor communicatie met Azure.

Type:IAzureContextContainer
Aliassen:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-EnableHotpatching

Hiermee kunnen klanten hun Azure Vmss patchen zonder dat ze opnieuw hoeven op te starten. Voor enableHotpatching moet de 'provisionVMAgent' worden ingesteld op true en moet patchMode worden ingesteld op 'AutomaticByPlatform'.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-LinuxConfigurationDisablePasswordAuthentication

Geeft aan dat met deze cmdlet wachtwoordverificatie wordt uitgeschakeld.

Type:Nullable<T>[Boolean]
Position:10
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-LinuxConfigurationPatchMode

Hiermee geeft u de modus van VM-gastpatching naar virtuele IaaS-machine of virtuele machines die zijn gekoppeld aan virtuele-machineschaalset met OrchestrationMode als Flexibel.

Mogelijke waarden zijn:

ImageDefault : de standaardpatchingconfiguratie van de virtuele machine wordt gebruikt.

AutomaticByPlatform : de virtuele machine wordt automatisch bijgewerkt door het platform. De eigenschap provisionVMAgent moet waar zijn

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-LinuxConfigurationProvisionVMAgent

Hiermee wordt aangegeven of de virtuele-machineagent moet worden ingericht op de virtuele machine.

Wanneer deze eigenschap niet is opgegeven in de hoofdtekst van de aanvraag, is het standaardgedrag ingesteld op waar. Dit zorgt ervoor dat de VM-agent op de VIRTUELE machine is geïnstalleerd, zodat extensies later aan de VIRTUELE machine kunnen worden toegevoegd

Type:Nullable<T>[Boolean]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Listener

Hiermee geeft u de WinRM-listeners (Windows Remote Management) op. Hiermee schakelt u externe Windows PowerShell in. U kunt de cmdlet Add-AzVmssWinRMListener gebruiken om de listener te maken.

Type:WinRMListener[]
Position:9
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-PublicKey

Hiermee geeft u het openbare-sleutelobject (Secure Shell) (SSH) op. U kunt de cmdlet Add-AzVMSshPublicKey gebruiken om het object te maken.

Type:SshPublicKey[]
Position:11
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Secret

Hiermee geeft u het geheimenobject op dat de certificaatverwijzingen bevat die op de virtuele machine moeten worden geplaatst. U kunt de cmdlet Add-AzVmssSecret gebruiken om het geheimenobject te maken.

Type:VaultSecretGroup[]
Position:12
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-TimeZone

Hiermee geeft u de tijdzone van de virtuele machine. bijvoorbeeld "Pacific Standard Time".
Mogelijke waarden kunnen worden TimeZoneInfo.Id waarde uit tijdzones die worden geretourneerd door TimeZoneInfo.GetSystemTimeZones.

Type:String
Position:7
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-VirtualMachineScaleSet

Hiermee geeft u het VMSS-object. U kunt de cmdlet New-AzVmssConfig gebruiken om het object te maken.

Type:PSVirtualMachineScaleSet
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-WhatIf

Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.

Type:SwitchParameter
Aliassen:wi
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-WindowsConfigurationEnableAutomaticUpdate

Geeft aan of de virtuele machines in de VMSS zijn ingeschakeld voor automatische updates.

Type:Nullable<T>[Boolean]
Position:6
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-WindowsConfigurationPatchMode

Hiermee geeft u de modus van VM-gastpatching naar virtuele IaaS-machine of virtuele machines die zijn gekoppeld aan virtuele-machineschaalset met OrchestrationMode als Flexibel.

Mogelijke waarden zijn:

Handmatig: u beheert de toepassing van patches op een virtuele machine. U doet dit door patches handmatig toe te passen in de VIRTUELE machine. In deze modus worden automatische updates uitgeschakeld; de eigenschap WindowsConfiguration.enableAutomaticUpdates moet onwaar zijn

AutomaticByOS : de virtuele machine wordt automatisch bijgewerkt door het besturingssysteem. De eigenschap WindowsConfiguration.enableAutomaticUpdates moet waar zijn.

AutomaticByPlatform : de virtuele machine wordt automatisch bijgewerkt door het platform. De eigenschappen provisionVMAgent en WindowsConfiguration.enableAutomaticUpdates moeten waar zijn

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-WindowsConfigurationProvisionVMAgent

Hiermee wordt aangegeven of de virtuele-machineagent moet worden ingericht op de virtuele machines in de VMSS.

Type:Nullable<T>[Boolean]
Position:5
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

Invoerwaarden

PSVirtualMachineScaleSet

String

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

AdditionalUnattendContent[]

WinRMListener[]

SshPublicKey[]

VaultSecretGroup[]

Uitvoerwaarden

PSVirtualMachineScaleSet