Set-AzVmssOsProfile

VMSS オペレーティング システム プロファイルのプロパティを設定します。

構文

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

説明

Set-AzVmssOsProfile コマンドレットは、仮想マシン スケール セットのオペレーティング システム プロファイル プロパティを設定します。

例 1: 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

このコマンドは、$vmss オブジェクトのオペレーティング システム プロファイルプロパティを設定します。 このコマンドは、VMSS 内のすべての仮想マシン インスタンスのコンピューター名プレフィックスをテストに設定し、管理者のユーザー名とパスワードを指定します。

例 2: ホットパッチが有効になっているフレキシブル モードで Vmss のオペレーティング システム プロファイルプロパティを設定します。

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

パラメーター

-AdditionalUnattendContent

無人コンテンツ オブジェクトを指定します。 Add-AzVMAdditionalUnattendContentを使用してオブジェクトを作成できます。

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

VMSS 内のすべての仮想マシン インスタンスに使用する管理者パスワードを指定します。

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

VMSS 内のすべての仮想マシン インスタンスに使用する管理者アカウント名を指定します。
Windows のみの制限: "." で終わることはできません。
許可されていない値: "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"。
最小長 (Linux): 1 文字
最大長 (Linux): 64 文字
最大長 (Windows): 20 文字

  • このフィールドで使用すべきでない Linux 上の組み込みシステム ユーザーの一覧については、「Azure 上の Linux のユーザー名の選択」 を参照してください。https://docs.microsoft.com/azure/devops/organizations/settings/naming-restrictions).
    Type:String
    Position:2
    Default value:None
    Accept pipeline input:True
    Accept wildcard characters:False
  • -ComputerNamePrefix

    VMSS 内のすべての仮想マシン インスタンスのコンピューター名プレフィックスを指定します。 コンピューター名は、1 ~ 15 文字で指定する必要があります。

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

    コマンドレットの実行前に確認を求めるメッセージが表示されます。

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

    カスタム データの Base 64 エンコード文字列を指定します。 これは、仮想マシン上のファイルとして保存されるバイナリ配列にデコードされます。 バイナリ配列の長さは最大 65535 バイトです。
    VM に cloud-init を使用する場合は、「 cloud-init を使用して作成時に Linux VM をカスタマイズする」を参照してください。

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

    Azure との通信に使用される資格情報、アカウント、テナント、サブスクリプション。

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

    お客様は、再起動を必要とせずに Azure Vms にパッチを適用できます。 enableHotpatching の場合、'provisionVMAgent' を true に設定し、'patchMode' を 'AutomaticByPlatform' に設定する必要があります。

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

    このコマンドレットがパスワード認証を無効にすることを示します。

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

    OrchestrationMode をフレキシブルとして使用して、IaaS 仮想マシンまたは仮想マシン スケール セットに関連付けられている仮想マシンに対する VM ゲスト パッチの適用モードを指定します。

    次のいずれかの値になります。

    ImageDefault - 仮想マシンの既定の修正プログラムの構成が使用されます。

    AutomaticByPlatform - 仮想マシンはプラットフォームによって自動的に更新されます。 プロパティ provisionVMAgent は true である必要があります

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

    仮想マシン上に仮想マシン エージェントをプロビジョニングするかどうかを示します。

    このプロパティが要求本文で指定されていない場合、既定の動作では true に設定されます。 これにより、VM エージェントが VM にインストールされ、拡張機能を後で VM に追加できるようになります。

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

    Windows リモート管理 (WinRM) リスナーを指定します。 これによって、リモートの Windows PowerShell が有効になります。 Add-AzVmssWinRMListener コマンドレットを使用してリスナーを作成できます。

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

    Secure Shell (SSH) 公開キー オブジェクトを指定します。 Add-AzVMSshPublicKey コマンドレットを使用して、オブジェクトを作成できます。

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

    仮想マシンに配置する証明書参照を含むシークレット オブジェクトを指定します。 Add-AzVmssSecret コマンドレットを使用して、シークレット オブジェクトを作成できます。

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

    仮想マシンのタイム ゾーンを指定します。 例: "Pacific Standard Time"。
    指定できる値は、TimeZoneInfo.GetSystemTimeZones によって返されるタイム ゾーンから値を TimeZoneInfo.Id できます。

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

    VMSS オブジェクトを指定します。 New-AzVmssConfig コマンドレットを使用して、オブジェクトを作成できます。

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

    コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

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

    VMSS 内の仮想マシンが自動更新に対して有効になっているかどうかを示します。

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

    OrchestrationMode をフレキシブルとして使用して、IaaS 仮想マシンまたは仮想マシン スケール セットに関連付けられている仮想マシンに対する VM ゲスト パッチの適用モードを指定します。

    次のいずれかの値になります。

    手動 - 仮想マシンへのパッチの適用を制御します。 これを行うには、VM 内でパッチを手動で適用します。 このモードでは、自動更新は無効になります。プロパティ WindowsConfiguration.enableAutomaticUpdates は false にする必要があります

    AutomaticByOS - 仮想マシンは OS によって自動的に更新されます。 WindowsConfiguration.enableAutomaticUpdates プロパティは true である必要があります。

    AutomaticByPlatform - 仮想マシンはプラットフォームによって自動的に更新されます。 provisionVMAgent プロパティと WindowsConfiguration.enableAutomaticUpdates プロパティは true である必要があります

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

    VMSS 内の仮想マシンに仮想マシン エージェントをプロビジョニングする必要があるかどうかを示します。

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

    入力

    PSVirtualMachineScaleSet

    String

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

    AdditionalUnattendContent[]

    WinRMListener[]

    SshPublicKey[]

    VaultSecretGroup[]

    出力

    PSVirtualMachineScaleSet