Bagikan melalui


Set-AzVmssOsProfile

Mengatur properti profil sistem operasi VMSS.

Sintaks

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

Deskripsi

Cmdlet Set-AzVmssOsProfile mengatur properti profil sistem operasi Set Skala Komputer Virtual.

Contoh

Contoh 1: Mengatur properti profil sistem operasi untuk 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

Perintah ini mengatur properti profil sistem operasi untuk objek $vmss. Perintah mengatur awalan nama komputer untuk semua instans komputer virtual di VMSS untuk Menguji dan menyediakan nama pengguna dan kata sandi administrator.

Contoh 2: Atur properti profil sistem operasi untuk Vm dalam mode Fleksibel dengan Hotpatching diaktifkan.

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

Atur properti profil sistem operasi untuk Vm dalam mode Fleksibel dengan Hotpatching diaktifkan

Parameter

-AdditionalUnattendContent

Menentukan objek isi yang tidak dijaga. Anda dapat menggunakan Add-AzVMAdditionalUnattendContent untuk membuat objek.

Jenis:AdditionalUnattendContent[]
Position:8
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-AdminPassword

Menentukan kata sandi administrator yang akan digunakan untuk semua instans komputer virtual di VMSS.

Jenis:String
Position:3
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-AdminUsername

Menentukan nama akun administrator yang akan digunakan untuk semua instans komputer virtual di VMSS.
Pembatasan:
Windows: Tidak boleh berisi karakter khusus /""[]:|<>+=;,?*@& atau berakhiran "."
Linux: Nama pengguna hanya boleh berisi huruf, angka, tanda hubung, dan garis bawah dan tidak boleh dimulai dengan tanda hubung atau angka.
Nilai yang tidak diizinkan: "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".
Panjang minimum: 1 karakter
Panjang maksimum: 20 karakter untuk Windows, 64 karakter untuk Linux
Untuk daftar pengguna sistem bawaan di Linux yang tidak boleh digunakan di bidang ini, lihat Memilih Nama Pengguna untuk Linux di Azure.

Jenis:String
Position:2
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-ComputerNamePrefix

Menentukan awalan nama komputer untuk semua instans komputer virtual di VMSS. Panjang nama komputer harus 1 hingga 15 karakter.

Jenis:String
Position:1
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-Confirm

Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.

Jenis:SwitchParameter
Alias:cf
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-CustomData

Menentukan string data kustom yang dikodekan base-64. Ini didekodekan ke array biner yang disimpan sebagai file pada komputer virtual. Panjang maksimum array biner adalah 65535 byte.
Untuk menggunakan cloud-init untuk VM Anda, lihat Menggunakan cloud-init untuk menyesuaikan VM Linux selama pembuatan.

Jenis:String
Position:4
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-DefaultProfile

Kredensial, akun, penyewa, dan langganan yang digunakan untuk komunikasi dengan azure.

Jenis:IAzureContextContainer
Alias:AzContext, AzureRmContext, AzureCredential
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-EnableHotpatching

Memungkinkan pelanggan untuk menambal Azure Vmss mereka tanpa memerlukan boot ulang. Untuk enableHotpatching, 'provisionVMAgent' harus diatur ke true dan 'patchMode' harus diatur ke 'AutomaticByPlatform'.

Jenis:SwitchParameter
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-LinuxConfigurationDisablePasswordAuthentication

Menunjukkan bahwa cmdlet ini menonaktifkan autentikasi kata sandi.

Jenis:Nullable<T>[Boolean]
Position:10
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-LinuxConfigurationPatchMode

Menentukan mode Patching Tamu VM ke komputer virtual IaaS atau komputer virtual yang terkait dengan set skala komputer virtual dengan OrchestrationMode sebagai Fleksibel.

Kemungkinan nilai adalah:

ImageDefault - Konfigurasi patching default komputer virtual digunakan.

AutomaticByPlatform - Komputer virtual akan diperbarui secara otomatis oleh platform. Properti provisionVMAgent harus benar

Jenis:String
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-LinuxConfigurationProvisionVMAgent

Menunjukkan apakah agen komputer virtual harus disediakan pada komputer virtual.

Ketika properti ini tidak ditentukan dalam isi permintaan, perilaku default adalah mengaturnya ke true. Ini akan memastikan bahwa Agen VM diinstal pada VM sehingga ekstensi dapat ditambahkan ke VM nanti

Jenis:Nullable<T>[Boolean]
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-Listener

Menentukan pendengar Windows Remote Management (WinRM). Ini memungkinkan Windows PowerShell jarak jauh. Anda dapat menggunakan cmdlet Add-AzVmssWinRMListener untuk membuat pendengar.

Jenis:WinRMListener[]
Position:9
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-PublicKey

Menentukan objek kunci publik Secure Shell (SSH). Anda dapat menggunakan cmdlet Add-AzVMSshPublicKey untuk membuat objek.

Jenis:SshPublicKey[]
Position:11
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-Secret

Menentukan objek rahasia yang berisi referensi sertifikat untuk ditempatkan pada komputer virtual. Anda dapat menggunakan cmdlet Add-AzVmssSecret untuk membuat objek rahasia.

Jenis:VaultSecretGroup[]
Position:12
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-TimeZone

Menentukan zona waktu komputer virtual. misalnya "Waktu Standar Pasifik".
Nilai yang mungkin dapat TimeZoneInfo.Id nilai dari zona waktu yang dikembalikan oleh TimeZoneInfo.GetSystemTimeZones.

Jenis:String
Position:7
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-VirtualMachineScaleSet

Menentukan objek VMSS. Anda dapat menggunakan cmdlet New-AzVmssConfig untuk membuat objek.

Jenis:PSVirtualMachineScaleSet
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-WhatIf

Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.

Jenis:SwitchParameter
Alias:wi
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-WindowsConfigurationEnableAutomaticUpdate

Menunjukkan apakah komputer virtual di VMSS diaktifkan untuk pembaruan otomatis.

Jenis:Nullable<T>[Boolean]
Position:6
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-WindowsConfigurationPatchMode

Menentukan mode Patching Tamu VM ke komputer virtual IaaS atau komputer virtual yang terkait dengan set skala komputer virtual dengan OrchestrationMode sebagai Fleksibel.

Kemungkinan nilai adalah:

Manual - Anda mengontrol aplikasi patch ke komputer virtual. Anda melakukan ini dengan menerapkan patch secara manual di dalam VM. Dalam mode ini, pembaruan otomatis dinonaktifkan; properti WindowsConfiguration.enableAutomaticUpdates harus false

AutomaticByOS - Komputer virtual akan diperbarui secara otomatis oleh OS. Properti WindowsConfiguration.enableAutomaticUpdates harus benar.

AutomaticByPlatform - komputer virtual akan diperbarui secara otomatis oleh platform. Properti provisionVMAgent dan WindowsConfiguration.enableAutomaticUpdates harus benar

Jenis:String
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-WindowsConfigurationProvisionVMAgent

Menunjukkan apakah agen komputer virtual harus disediakan pada komputer virtual di VMSS.

Jenis:Nullable<T>[Boolean]
Position:5
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

Input

PSVirtualMachineScaleSet

String

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

AdditionalUnattendContent[]

WinRMListener[]

SshPublicKey[]

VaultSecretGroup[]

Output

PSVirtualMachineScaleSet