你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Set-AzureRmVMOSDisk
设置虚拟机的操作系统磁盘属性。
警告
截至 2024 年 2 月 29 日,AzureRM PowerShell 模块已正式弃用。 为了确保持续获得支持和更新,建议用户从 AzureRM 迁移到 Az PowerShell 模块。
尽管 AzureRM 模块仍可能正常运行,但它不再维护或受支持,但会根据用户的自由裁量权和风险继续使用任何继续使用模块。 有关过渡到 Az 模块的指导,请参阅我们的迁移资源。
语法
Set-AzureRmVMOSDisk
[-VM] <PSVirtualMachine>
[[-Name] <String>]
[[-VhdUri] <String>]
[[-Caching] <CachingTypes>]
[[-SourceImageUri] <String>]
[[-CreateOption] <String>]
[-DiskSizeInGB <Int32>]
[-ManagedDiskId <String>]
[-StorageAccountType <String>]
[-WriteAccelerator]
[-DiffDiskSetting <String>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Set-AzureRmVMOSDisk
[-VM] <PSVirtualMachine>
[[-Name] <String>]
[[-VhdUri] <String>]
[[-Caching] <CachingTypes>]
[[-SourceImageUri] <String>]
[[-CreateOption] <String>]
[-Windows]
[-DiskSizeInGB <Int32>]
[-ManagedDiskId <String>]
[-StorageAccountType <String>]
[-WriteAccelerator]
[-DiffDiskSetting <String>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Set-AzureRmVMOSDisk
[-VM] <PSVirtualMachine>
[[-Name] <String>]
[[-VhdUri] <String>]
[[-Caching] <CachingTypes>]
[[-SourceImageUri] <String>]
[[-CreateOption] <String>]
[-Windows]
[-DiskEncryptionKeyUrl] <String>
[-DiskEncryptionKeyVaultId] <String>
[[-KeyEncryptionKeyUrl] <String>]
[[-KeyEncryptionKeyVaultId] <String>]
[-DiskSizeInGB <Int32>]
[-ManagedDiskId <String>]
[-StorageAccountType <String>]
[-WriteAccelerator]
[-DiffDiskSetting <String>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Set-AzureRmVMOSDisk
[-VM] <PSVirtualMachine>
[[-Name] <String>]
[[-VhdUri] <String>]
[[-Caching] <CachingTypes>]
[[-SourceImageUri] <String>]
[[-CreateOption] <String>]
[-Linux]
[-DiskSizeInGB <Int32>]
[-ManagedDiskId <String>]
[-StorageAccountType <String>]
[-WriteAccelerator]
[-DiffDiskSetting <String>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Set-AzureRmVMOSDisk
[-VM] <PSVirtualMachine>
[[-Name] <String>]
[[-VhdUri] <String>]
[[-Caching] <CachingTypes>]
[[-SourceImageUri] <String>]
[[-CreateOption] <String>]
[-Linux]
[-DiskEncryptionKeyUrl] <String>
[-DiskEncryptionKeyVaultId] <String>
[[-KeyEncryptionKeyUrl] <String>]
[[-KeyEncryptionKeyVaultId] <String>]
[-DiskSizeInGB <Int32>]
[-ManagedDiskId <String>]
[-StorageAccountType <String>]
[-WriteAccelerator]
[-DiffDiskSetting <String>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
说明
Set-AzureRmVMOSDisk cmdlet 在虚拟机上设置操作系统磁盘属性。
示例
示例 1:从平台映像设置虚拟机上的属性
PS C:\> $AvailabilitySet = Get-AzureRmAvailabilitySet -ResourceGroupName "ResourceGroup11" -Name "AvailabilitySet13"
PS C:\> $VirtualMachine = New-AzureRmVMConfig -VMName "VirtualMachine17" -VMSize "Standard_A1" -AvailabilitySetID $AvailabilitySet.Id
PS C:\> Set-AzureRmVMOSDisk -VM $VirtualMachine -Name "OsDisk12" -VhdUri "os.vhd" -Caching ReadWrite
PS C:\> $VirtualMachine = Set-AzureRmVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName "MainComputer" -Credential (Get-Credential)
PS C:\> $VirtualMachine = Set-AzureRmVMSourceImage -VM $VirtualMachine -PublisherName "Canonical" -Offer "UbuntuServer" -Skus "15.10" -Version "latest" -Caching ReadWrite
PS C:\> $VirtualMachine = Set-AzureRmVMOSDisk -VM $VirtualMachine -Name "osDisk.vhd" -VhdUri "https://mystorageaccount.blob.core.windows.net/disks/" -CreateOption FromImage
PS C:> New-AzureRmVM -VM $VirtualMachine -ResouceGroupName "ResourceGroup11"
第一个命令在名为 ResourceGroup11 的资源组中获取名为 AvailablitySet13 的可用性集,然后将该对象存储在$AvailabilitySet变量中。 第二个命令创建虚拟机对象,然后将其存储在$VirtualMachine变量中。 该命令将名称和大小分配给虚拟机。 虚拟机属于存储在$AvailabilitySet的可用性集。 最终命令在 $VirtualMachine 中设置虚拟机上的属性。
示例 2:从通用用户映像设置虚拟机上的属性
PS C:\> $AvailabilitySet = Get-AzureRmAvailabilitySet -ResourceGroupName "ResourceGroup11" -Name "AvailabilitySet13"
PS C:\> $VirtualMachine = New-AzureRmVMConfig -VMName "VirtualMachine17" -VMSize "Standard_A1"
PS C:\> $VirtualMachine = Set-AzureRmVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName "MainComputer" -Credential (Get-Credential)
PS C:\> $VirtualMachine = Set-AzureRmVMOSDisk -VM $VirtualMachine -Name "osDisk.vhd" -SourceImageUri "https://mystorageaccount.blob.core.windows.net/vhds/myOSImage.vhd" -VhdUri "https://mystorageaccount.blob.core.windows.net/disks/" -CreateOption fromImage -Linux
PS C:> New-AzureRmVM -VM $VirtualMachine -ResouceGroupName "ResourceGroup11"
第一个命令获取名为 ResourceGroup11 的资源组中名为 AvailablitySet13 的可用性集,并将该对象存储在$AvailabilitySet变量中。 第二个命令创建虚拟机对象并将其存储在$VirtualMachine变量中。 该命令将名称和大小分配给虚拟机。 虚拟机属于存储在$AvailabilitySet的可用性集。 最终命令在 $VirtualMachine 中设置虚拟机上的属性。
示例 3:从专用用户映像设置虚拟机上的属性
PS C:\> $AvailabilitySet = Get-AzureRmAvailabilitySet -ResourceGroupName "ResourceGroup11" -Name "AvailabilitySet13"
PS C:\> $VirtualMachine = New-AzureRmVMConfig -VMName "VirtualMachine17" -VMSize "Standard_A1"
PS C:\> $VirtualMachine = Set-AzureRmVMOSDisk -VM $VirtualMachine -Name "osDisk.vhd" -VhdUri "https://mystorageaccount.blob.core.windows.net/disks/" -CreateOption Attach -Linux
PS C:> New-AzureRmVM -VM $VirtualMachine -ResouceGroupName "ResourceGroup11"
第一个命令获取名为 ResourceGroup11 的资源组中名为 AvailablitySet13 的可用性集,并将该对象存储在$AvailabilitySet变量中。 第二个命令创建虚拟机对象并将其存储在$VirtualMachine变量中。 该命令将名称和大小分配给虚拟机。 虚拟机属于存储在$AvailabilitySet的可用性集。 最终命令在 $VirtualMachine 中设置虚拟机上的属性。
示例 4:在虚拟机操作系统磁盘上设置磁盘加密设置
PS C:\> $VirtualMachine = New-AzureRmVMConfig -VMName "VirtualMachine17" -VMSize "Standard_A1"
PS C:> $VirtualMachine = Set-AzureRmVMOSDisk -VM $VirtualMachine -Name "OsDisk12" -VhdUri "os.vhd" -Caching ReadWrite -Windows -CreateOption "Attach" -DiskEncryptionKeyUrl "https://mytestvault.vault.azure.net/secrets/Test1/514ceb769c984379a7e0230bddaaaaaa" -DiskEncryptionKeyVaultId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.KeyVault/vaults/mytestvault"
PS C:> New-AzureRmVM -VM $VirtualMachine -ResouceGroupName " ResourceGroup11"
本示例设置虚拟机操作系统磁盘上的磁盘加密设置。
参数
-Caching
指定操作系统磁盘的缓存模式。 有效值为:
- ReadOnly
- ReadWrite 默认值为 ReadWrite。 更改缓存值会导致虚拟机重启。 此设置会影响磁盘的性能。
类型: | Nullable<T>[CachingTypes] |
接受的值: | None, ReadOnly, ReadWrite |
Position: | 3 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-CreateOption
指定此 cmdlet 是从平台或用户映像在虚拟机中创建磁盘,还是附加现有磁盘。 有效值为:
- 附加。 指定此选项以从专用磁盘创建虚拟机。 指定此选项时,请不要指定 SourceImageUri 参数。 请改用 Set-AzureRmVMSourceImage cmdlet。 还必须使用 Windows 或 Linux 参数来告知 Azure 平台 VHD 上的操作系统类型。 VhdUri 参数足以告知 Azure 平台要附加的磁盘的位置。
- FromImage。 指定此选项可从平台映像或通用用户映像创建虚拟机。 对于通用用户映像,还需要指定 SourceImageUri 参数和 Windows 或 Linux 参数,以告知 Azure 平台操作系统磁盘 VHD 的位置和类型,而不是使用 Set-AzureRmVMSourceImage cmdlet。 对于平台映像, VhdUri 参数已足够。
- 空白。
类型: | String |
Position: | 5 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DefaultProfile
用于与 Azure 通信的凭据、帐户、租户和订阅。
类型: | IAzureContextContainer |
别名: | AzureRmContext, AzureCredential |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DiffDiskSetting
指定操作系统磁盘的不同磁盘设置。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-DiskEncryptionKeyUrl
指定磁盘加密密钥的位置。
类型: | String |
Position: | 7 |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-DiskEncryptionKeyVaultId
指定包含磁盘加密密钥的密钥库的资源 ID。
类型: | String |
Position: | 8 |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-DiskSizeInGB
指定操作系统磁盘的大小(以 GB 为单位)。
类型: | Nullable<T>[Int32] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-KeyEncryptionKeyUrl
指定密钥加密密钥的位置。
类型: | String |
Position: | 9 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-KeyEncryptionKeyVaultId
指定包含密钥加密密钥的密钥库的资源 ID。
类型: | String |
Position: | 10 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Linux
指示用户映像上的操作系统为 Linux。 为基于用户映像的虚拟机部署指定此参数。
类型: | SwitchParameter |
Position: | 6 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ManagedDiskId
指定托管磁盘的 ID。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Name
指定操作系统磁盘的名称。
类型: | String |
别名: | OSDiskName, DiskName |
Position: | 1 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-SourceImageUri
为用户映像方案指定 VHD 的 URI。
类型: | String |
别名: | SourceImage |
Position: | 4 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-StorageAccountType
指定托管磁盘的存储帐户类型。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-VhdUri
指定虚拟硬盘(VHD)的统一资源标识符(URI)。 对于基于映像的虚拟机,此参数指定要在指定平台映像或用户映像时创建的 VHD 文件。 这是从中复制映像二进制大型对象(BLOB)以启动虚拟机的位置。 对于基于磁盘的虚拟机启动方案,此参数指定虚拟机直接用于启动的 VHD 文件。
类型: | String |
别名: | OSDiskVhdUri, DiskVhdUri |
Position: | 2 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-VM
指定要在其中设置操作系统磁盘属性的本地虚拟机对象。 若要获取虚拟机对象,请使用 Get-AzureRmVM cmdlet。
类型: | PSVirtualMachine |
别名: | VMProfile |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-Windows
指示用户映像上的操作系统是 Windows。
类型: | SwitchParameter |
Position: | 6 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WriteAccelerator
指定是否应在 OS 磁盘上启用或禁用 WriteAccelerator。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
参数:VM (ByValue)