你当前正在访问 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。 还必须使用 WindowsLinux 参数来告知 Azure 平台 VHD 上的操作系统类型。 VhdUri 参数足以告知 Azure 平台要附加的磁盘的位置。
  • FromImage。 指定此选项可从平台映像或通用用户映像创建虚拟机。 对于通用用户映像,还需要指定 SourceImageUri 参数和 WindowsLinux 参数,以告知 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

输入

PSVirtualMachine

参数:VM (ByValue)

输出

PSVirtualMachine