Set-AzVMOperatingSystem
在建立新虛擬機器或更新虛擬機器期間設定作業系統內容。
語法
Windows (預設值)
Set-AzVMOperatingSystem
[-VM] <PSVirtualMachine>
[[-ComputerName] <String>]
[[-Credential] <PSCredential>]
[[-CustomData] <String>]
[[-TimeZone] <String>]
[-Windows]
[-ProvisionVMAgent]
[-EnableAutoUpdate]
[-WinRMHttp]
[-PatchMode <String>]
[-EnableHotpatching]
[-AssessmentMode <String>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
WindowsWinRmHttps
Set-AzVMOperatingSystem
[-VM] <PSVirtualMachine>
[[-ComputerName] <String>]
[[-Credential] <PSCredential>]
[[-CustomData] <String>]
[[-TimeZone] <String>]
[-WinRMCertificateUrl] <Uri>
[-Windows]
[-ProvisionVMAgent]
[-EnableAutoUpdate]
[-WinRMHttp]
[-WinRMHttps]
[-PatchMode <String>]
[-EnableHotpatching]
[-AssessmentMode <String>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
WindowsDisableVMAgent
Set-AzVMOperatingSystem
[-VM] <PSVirtualMachine>
[[-ComputerName] <String>]
[[-Credential] <PSCredential>]
[[-CustomData] <String>]
[[-TimeZone] <String>]
[-Windows]
[-DisableVMAgent]
[-EnableAutoUpdate]
[-WinRMHttp]
[-PatchMode <String>]
[-EnableHotpatching]
[-AssessmentMode <String>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
WindowsDisableVMAgentWinRmHttps
Set-AzVMOperatingSystem
[-VM] <PSVirtualMachine>
[[-ComputerName] <String>]
[[-Credential] <PSCredential>]
[[-CustomData] <String>]
[[-TimeZone] <String>]
[-WinRMCertificateUrl] <Uri>
[-Windows]
[-DisableVMAgent]
[-EnableAutoUpdate]
[-WinRMHttp]
[-WinRMHttps]
[-PatchMode <String>]
[-EnableHotpatching]
[-AssessmentMode <String>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Linux
Set-AzVMOperatingSystem
[-VM] <PSVirtualMachine>
[[-ComputerName] <String>]
[[-Credential] <PSCredential>]
[[-CustomData] <String>]
[-Linux]
[-PatchMode <String>]
[-DisablePasswordAuthentication]
[-AssessmentMode <String>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Description
Set-AzVMOperatingSystem Cmdlet 會在建立新虛擬機器期間設定作業系統屬性。
您可以指定登入認證、電腦名稱和作業系統類型。
範例
範例 1:設定新虛擬機器的作業系統內容
$SecurePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ("FullerP", $SecurePassword);
$AvailabilitySet = Get-AzAvailabilitySet -ResourceGroupName "ResourceGroup11" -Name "AvailabilitySet03"
$VirtualMachine = New-AzVMConfig -VMName "VirtualMachine07" -VMSize "Standard_A1" -AvailabilitySetID $AvailabilitySet.Id
$ComputerName = "ContosoVM122"
$WinRMCertUrl = "http://keyVaultName.vault.azure.net/secrets/secretName/secretVersion"
$TimeZone = "Pacific Standard Time"
$CustomData = "echo 'Hello World'"
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName -Credential $Credential -CustomData $CustomData -WinRMHttp -WinRMHttps -WinRMCertificateUrl $WinRMCertUrl -ProvisionVMAgent -EnableAutoUpdate -TimeZone $TimeZone -PatchMode "AutomaticByPlatform"
第一個指令會將密碼轉換成安全字串,然後將它儲存在$SecurePassword變數中。
如需詳細資訊,請鍵入 Get-Help ConvertTo-SecureString。
第二個指令會建立使用者 FullerP 的認證,以及儲存在$SecurePassword中的密碼,然後將認證儲存在 $Credential 變數中。
如需詳細資訊,請鍵入 Get-Help New-Object。
第三個命令會在名為 ResourceGroup11 的資源群組中取得名為 AvailabilitySet03 的可用性設定組,然後將該物件儲存在 $AvailabilitySet 變數中。
第四個命令會建立虛擬機器物件,然後將它儲存在$VirtualMachine變數中。
此命令會為虛擬機器指派名稱和大小。
虛擬機器屬於儲存在$AvailabilitySet中的可用性設定組。
接下來的四個命令會將值指派給變數,以在下列命令中使用。
因為您可以直接在 Set-AzVMOperatingSystem 命令中指定這些字串,所以此方法僅用於可讀性。
不過,您可以在指令碼中使用類似此的方法。
最後一個命令會設定儲存在$VirtualMachine中的虛擬機器的作業系統屬性。
此命令會使用儲存在$Credential中的認證。
此指令會針對某些參數使用先前指令中指派的變數。
範例 2:為已啟用熱修補的新虛擬機器設定作業系統內容
$SecurePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ("FullerP", $SecurePassword);
$AvailabilitySet = Get-AzAvailabilitySet -ResourceGroupName "ResourceGroup11" -Name "AvailabilitySet03"
$VirtualMachine = New-AzVMConfig -VMName "VirtualMachine07" -VMSize "Standard_A1" -AvailabilitySetID $AvailabilitySet.Id
$ComputerName = "ContosoVM122"
$WinRMCertUrl = "http://keyVaultName.vault.azure.net/secrets/secretName/secretVersion"
$TimeZone = "Pacific Standard Time"
$CustomData = "echo 'Hello World'"
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName -Credential $Credential -CustomData $CustomData -WinRMHttp -WinRMHttps -WinRMCertificateUrl $WinRMCertUrl -ProvisionVMAgent -EnableAutoUpdate -TimeZone $TimeZone -PatchMode "AutomaticByPlatform" -EnableHotPatching
第一個指令會將密碼轉換成安全字串,然後將它儲存在$SecurePassword變數中。
如需詳細資訊,請鍵入 Get-Help ConvertTo-SecureString。
第二個指令會建立使用者 FullerP 的認證,以及儲存在$SecurePassword中的密碼,然後將認證儲存在 $Credential 變數中。
如需詳細資訊,請鍵入 Get-Help New-Object。
第三個命令會在名為 ResourceGroup11 的資源群組中取得名為 AvailabilitySet03 的可用性設定組,然後將該物件儲存在 $AvailabilitySet 變數中。
第四個命令會建立虛擬機器物件,然後將它儲存在$VirtualMachine變數中。
此命令會為虛擬機器指派名稱和大小。
虛擬機器屬於儲存在$AvailabilitySet中的可用性設定組。
接下來的四個命令會將值指派給變數,以在下列命令中使用。
因為您可以直接在 Set-AzVMOperatingSystem 命令中指定這些字串,所以此方法僅用於可讀性。
不過,您可以在指令碼中使用類似此的方法。
最後一個命令會設定儲存在$VirtualMachine中的虛擬機器的作業系統屬性。
此命令會使用儲存在$Credential中的認證。
此指令會針對某些參數使用先前指令中指派的變數。
此命令會在虛擬機器上啟用熱修補。
範例 3:設定新 Linux 虛擬機器的作業系統屬性
$SecurePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ("FullerP", $SecurePassword);
$AvailabilitySet = Get-AzAvailabilitySet -ResourceGroupName "ResourceGroup11" -Name "AvailabilitySet03"
$VirtualMachine = New-AzVMConfig -VMName "VirtualMachine07" -VMSize "Standard_A1" -AvailabilitySetID $AvailabilitySet.Id
$ComputerName = "ContosoVM122"
$CustomData = "echo 'Hello World'"
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName $ComputerName -Credential $Credential -CustomData $CustomData -PatchMode "AutomaticByPlatform"
第一個指令會將密碼轉換成安全字串,然後將它儲存在$SecurePassword變數中。
如需詳細資訊,請鍵入 Get-Help ConvertTo-SecureString。
第二個指令會建立使用者 FullerP 的認證,以及儲存在$SecurePassword中的密碼,然後將認證儲存在 $Credential 變數中。
如需詳細資訊,請鍵入 Get-Help New-Object。
第三個命令會在名為 ResourceGroup11 的資源群組中取得名為 AvailabilitySet03 的可用性設定組,然後將該物件儲存在 $AvailabilitySet 變數中。
第四個命令會建立虛擬機器物件,然後將它儲存在$VirtualMachine變數中。
此命令會為虛擬機器指派名稱和大小。
虛擬機器屬於儲存在$AvailabilitySet中的可用性設定組。
接下來的兩個指令會將值指派給變數,以便在下列指令中使用。
最後一個命令會設定儲存在$VirtualMachine中的虛擬機器的作業系統屬性。
此命令會使用儲存在$Credential中的認證。
此指令會針對某些參數使用先前指令中指派的變數。
此命令會將虛擬機器上的修補程式模式值設定為「AutomaticByPlatform」。
範例 4:當 VM 沒有 OSProfile 時,使用 Credential 參數設定作業系統屬性。
$rgname = <Resource Group Name>;
$loc = <Azure Region>;
New-AzResourceGroup -Name $rgname -Location $loc -Force;
# create credential
$password = <Password>;
$securePassword = $password | ConvertTo-SecureString -AsPlainText -Force;
$user = <Username>;
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
# Setup parameters
$domainNameLabel = "d2" + $rgname;
$vmsize = 'Standard_D4s_v3';
$vmname = 'v' + $rgname;
$vnetname = "vn" + $rgname;
$vnetAddress = "10.0.0.0/16";
$subnetname = "slb" + $rgname;
$subnetAddress = "10.0.2.0/24";
$OSDiskName = $vmname + "d";
$NICName = $vmname+ "n";
$NSGName = $vmname + "nsg";
# Creating a VM using Default parameterset
$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetname -AddressPrefix $subnetAddress;
$vnet = New-AzVirtualNetwork -Name $vnetname -ResourceGroupName $rgname -Location $loc -AddressPrefix $vnetAddress -Subnet $frontendSubnet;
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name RDP -Protocol Tcp -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow;
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $rgname -Location $loc -Name $NSGName -SecurityRules $nsgRuleRDP;
$nic = New-AzNetworkInterface -Name $NICName -ResourceGroupName $rgname -Location $loc -SubnetId $vnet.Subnets[0].Id -NetworkSecurityGroupId $nsg.Id -EnableAcceleratedNetworking;
$vmConfig = New-AzVMConfig -VMName $vmname -VMSize $vmsize;
$vmConfig = Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmname -Credential $cred;
$vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id;
# Verify a VM is created.
New-AzVM -ResourceGroupName $rgname -Location $loc -VM $vmConfig;
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmname;
參數
-AssessmentMode
虛擬機器的自動評估模式值。 可能的值為 ImageDefault 和 AutomaticByPlatform。
參數屬性
| 類型: | String
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-ComputerName
指定電腦的名稱。
參數屬性
| 類型: | String
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | 2 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Credential
將虛擬機器的使用者名稱和密碼指定為 PSCredential 物件。
若要取得認證,請使用 Get-Credential Cmdlet。
如需詳細資訊,請鍵入 Get-Help Get-Credential。
參數屬性
參數集
(All)
| Position: | 3 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-CustomData
指定要傳遞至虛擬機器的字串。 如需詳細資訊,請參閱 Azure VM 上的自訂資料。
注意:不建議將敏感資訊儲存在自訂資料中。
參數屬性
| 類型: | String
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | 4 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-DefaultProfile
用於與 azure 通訊的認證、帳戶、租用戶和訂用帳戶。
參數屬性
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-DisablePasswordAuthentication
表示此 Cmdlet 會停用密碼驗證。
參數屬性
參數集
Linux
| Position: | 5 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-DisableVMAgent
停用佈建虛擬機器代理程式。
參數屬性
參數集
WindowsDisableVMAgent
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
WindowsDisableVMAgentWinRmHttps
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-EnableAutoUpdate
表示此 Cmdlet 會啟用自動更新。
參數屬性
參數集
Windows
| Position: | 6 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsWinRmHttps
| Position: | 6 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsDisableVMAgent
| Position: | 6 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsDisableVMAgentWinRmHttps
| Position: | 6 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-EnableHotpatching
可讓客戶修補其 Azure VM,而不需要重新啟動。 針對 enableHotpatching,'provisionVMAgent' 必須設定為 true,且 'patchMode' 必須設定為 'AutomaticByPlatform'。
參數屬性
參數集
Windows
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsWinRmHttps
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsDisableVMAgent
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsDisableVMAgentWinRmHttps
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Linux
表示作業系統的類型為Linux。
參數屬性
參數集
Linux
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-PatchMode
指定客體內修補至 IaaS 虛擬機的模式。
可能的值為:
AutomaticByPlatform - 虛擬機器的修補程式安裝將由 Azure 管理。 與 -Windows 或 -Linux 一起使用。 需要 -ProvisionVMAgent。 與 -Windows 一起使用時需要 -EnableAutoUpdate。
AutomaticByOS - 虛擬機器的修補程式安裝將由作業系統管理。 與 -Windows 一起使用。 需要 -ProvisionVMAgent 和 -EnableAutoUpdate。
手動 - 您可以控制將修補程式的應用程式套用至虛擬機。 與 -Windows 一起使用。 需要 -ProvisionVMAgent。
ImageDefault - 由 OS 映像上的預設設定管理的修補程式安裝。 與 -Linux 一起使用。
參數屬性
| 類型: | String
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-ProvisionVMAgent
表示設定要求在虛擬機器上安裝虛擬機器代理程式。
參數屬性
參數集
Windows
| Position: | 5 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsWinRmHttps
| Position: | 5 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-TimeZone
指定虛擬機的時區。 例如「太平洋標準時間」。
可能的值可以從 TimeZoneInfo.GetSystemTimeZones 所傳回的時區 TimeZoneInfo.Id 值。
參數屬性
| 類型: | String
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
Windows
| Position: | 7 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsWinRmHttps
| Position: | 7 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsDisableVMAgent
| Position: | 7 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsDisableVMAgentWinRmHttps
| Position: | 7 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-VM
指定要設定作業系統內容的本機虛擬機器物件。
若要取得虛擬機器物件,請使用 Get-AzVM Cmdlet。
使用 New-AzVMConfig Cmdlet 建立虛擬機器物件。
參數屬性
參數集
(All)
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Windows
表示作業系統類型為 Windows。
參數屬性
參數集
Windows
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsWinRmHttps
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsDisableVMAgent
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsDisableVMAgentWinRmHttps
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-WinRMCertificateUrl
指定 WinRM 憑證的 URI。
這需要儲存在金鑰保存庫中。
參數屬性
| 類型: | Uri
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
WindowsWinRmHttps
| Position: | 10 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsDisableVMAgentWinRmHttps
| Position: | 10 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-WinRMHttp
表示此作業系統使用 HTTP WinRM。
參數屬性
參數集
Windows
| Position: | 8 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsWinRmHttps
| Position: | 8 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsDisableVMAgent
| Position: | 8 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsDisableVMAgentWinRmHttps
| Position: | 8 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-WinRMHttps
表示此作業系統使用 HTTPS WinRM。
參數屬性
參數集
WindowsWinRmHttps
| Position: | 9 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
WindowsDisableVMAgentWinRmHttps
| Position: | 9 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
CommonParameters
此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。
輸出