Set-SCHardwareProfile

更改 VMM 中使用的硬件配置文件的属性。

语法

Set-SCHardwareProfile
   [-HardwareProfile] <HardwareProfile>
   [-HighlyAvailable <Boolean>]
   [-HAVMPriority <UInt32>]
   [-DRProtectionRequired <Boolean>]
   [-ReplicationGroup <ReplicationGroup>]
   [-SecureBootEnabled <Boolean>]
   [-NumLock <Boolean>]
   [-CPULimitFunctionality <Boolean>]
   [-CPULimitForMigration <Boolean>]
   [-Name <String>]
   [-RemoveCapabilityProfile]
   [-Owner <String>]
   [-UserRole <UserRole>]
   [-JobGroup <Guid>]
   [-CapabilityProfile <CapabilityProfile>]
   [-Description <String>]
   [-MemoryMB <Int32>]
   [-DynamicMemoryEnabled <Boolean>]
   [-DynamicMemoryMaximumMB <Int32>]
   [-DynamicMemoryBufferPercentage <Int32>]
   [-MemoryWeight <Int32>]
   [-VirtualVideoAdapterEnabled <Boolean>]
   [-MonitorMaximumCount <Int32>]
   [-MonitorMaximumResolution <String>]
   [-RecoveryPointObjective <Int32>]
   [-ProtectionProvider <ProtectionProvider>]
   [-BootOrder <BootDevice[]>]
   [-FirstBootDevice <String>]
   [-SecureBootTemplate <String>]
   [-CPUCount <Byte>]
   [-CPUType <ProcessorType>]
   [-CPUExpectedUtilizationPercent <Int32>]
   [-DiskIops <Int32>]
   [-NetworkUtilizationMbps <Int32>]
   [-CPURelativeWeight <Int32>]
   [-CPUReserve <Int32>]
   [-CPUMaximumPercent <Int32>]
   [-CPUPerVirtualNumaNodeMaximum <Byte>]
   [-MemoryPerVirtualNumaNodeMaximumMB <Int32>]
   [-VirtualNumaNodesPerSocketMaximum <Byte>]
   [-DynamicMemoryMinimumMB <Int32>]
   [-NumaIsolationRequired <Boolean>]
   [-AutomaticCriticalErrorAction <UInt16>]
   [-AutomaticCriticalErrorActionTimeout <Int32>]
   [-CheckpointType <CheckpointType>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [<CommonParameters>]

说明

Set-SCHardwareProfile cmdlet 更改 Virtual Machine Manager (VMM) 环境中使用的硬件配置文件对象的一个或多个属性。 可以更改的属性包括启动顺序的设置、CPU 设置、分配给虚拟机的主机上的内存量和其他选项。

若要更改虚拟软盘、虚拟 DVD 驱动器、虚拟 COM 端口、虚拟网络适配器或与特定硬件配置文件关联的虚拟 SCSI 适配器的属性, 分别使用 Set-SCVirtualFloppyDriveSet-SCVirtualDVDDriveSet-SCVirtualCOMPortSet-SCVirtualNetworkAdapterSet-SCVirtualScsiAdapter cmdlet。

对硬件配置文件所做的更改仅影响硬件配置文件本身。 这些更改不会影响使用此配置文件创建的任何现有虚拟机。

示例

示例 1:指定现有硬件配置文件的内存量

PS C:\> $HWProfile = Get-SCHardwareProfile | where { $_.Name -eq "NewHWProfile01" }
PS C:\> Set-SCHardwareProfile -HardwareProfile $HWProfile -MemoryMB 1024

第一个命令获取名为 NewHWProfile01 的硬件配置文件对象,并将对象存储在$HWProfile变量中。

第二个命令将 NewHWProfile01 的内存值更改为 1024 MB。

示例 2:为多个硬件配置文件指定新的所有者

PS C:\> $HWProfiles = Get-SCHardwareProfile | where {$_.Name -match "Profile"}
PS C:\> ForEach ($HWProfile in $HWProfiles) {Set-SCHardwareProfile -HardwareProfile $HWProfile -Owner "Contoso\Cesar"}

第一个命令获取与搜索条件匹配的硬件配置文件对象,并将对象存储在$HWProfiles对象数组中。

第二个命令使用 ForEach 语句为数组中的每个配置文件指定新的所有者。

有关标准 PowerShell ForEach 循环语句的详细信息,请键入 Get-Help about_ForEach

示例 3:为多个硬件配置文件指定新的启动顺序

PS C:\> $HWProfiles = @(Get-SCHardwareProfile | where {$_.Name -match "HWProfile"})
PS C:\> ForEach ($HWProfile in $HWProfiles) {Set-SCHardwareProfile -HardwareProfile $HWProfile -BootOrder PXEBoot,CD,IDEHardDrive,Floppy}

第一个命令获取与搜索条件匹配的库(配置文件名称包含字符串“HWProfile”)的所有硬件配置文件对象,并将硬件配置文件对象存储在$HWProfiles对象数组中。 使用 @ 符号和括号可确保命令将结果存储在数组中,以防命令返回单个对象或$Null值。

第二个命令使用 ForEach 语句为$HWProfiles数组中的每个硬件配置文件对象指定新的启动顺序。

示例 4:搜索具有特定配置的硬件配置文件,并将文本追加到说明字段

PS C:\> $HWProfiles = @(Get-SCHardwareProfile | where {$_.CPUCount -eq 4})
PS C:\> ForEach ($HWProfile in $HWProfiles) {$Text = $HWProfile.Description; Set-SCHardwareProfile -HardwareProfile $HWProfile -Description $Text" (Contains four Processors)"}

第一个命令获取与搜索条件(CPU 计数等于 4)匹配的所有硬件配置文件对象,并将硬件配置文件对象存储在$HWProfiles对象数组中。

第二个命令使用 ForEach 语句循环访问$HWProfiles数组中的每个配置文件对象。 对于每个配置文件,说明文本将存储到变量($Text),然后 Set-SCHardwareProfile cmdlet 使用 Description 参数将“(包含四个处理器)”追加到$Text的每个实例的内容。

示例 5:为现有硬件配置文件启用动态内存

PS C:\> $HWProfile = Get-SCHardwareProfile | where { $_.Name -eq "NewHWProfile05" }
PS C:\> Set-SCHardwareProfile -HardwareProfile $HWProfile -DynamicMemoryEnabled $True -MemoryMB 1024 -DynamicMemoryMaximumMB 2048

第一个命令获取名为 NewProfile5 的硬件配置文件对象,并将该对象存储在$HWProfile变量中。

第二个命令为 NewHWProfile05 启用动态内存,将启动内存值更改为 1024 MB,并将最大内存值设置为 2048 MB。

参数

-AutomaticCriticalErrorAction

指定 VM 遇到严重错误时要执行的操作,并超出 AutomaticCriticalErrorActionTimeout 参数指定的超时持续时间。 此参数的可接受值为:Pause 和 None。

类型:UInt16
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-AutomaticCriticalErrorActionTimeout

指定在关闭虚拟机之前在关键暂停中等待的时间量(以分钟为单位)。

类型:Int32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-BootOrder

将 Hyper-V 主机上虚拟机用于启动的设备的顺序指定为数组。 有效值为:

  • CD
  • IDEHardDrive
  • PXEBoot
  • 软盘

示例格式:-BootOrder PXEBoot,IDEHardDrive,CD,Floppy

类型:BootDevice[]
接受的值:Floppy, CD, IdeHardDrive, PxeBoot, Unknown
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CapabilityProfile

指定功能配置文件对象。

类型:CapabilityProfile
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CheckpointType

指定检查点类型。 此参数的可接受值为:

  • 禁用
  • 生产
  • ProductionOnly
  • 标准
类型:CheckpointType
接受的值:Disabled, Production, ProductionOnly, Standard
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CPUCount

指定虚拟机、硬件配置文件或模板上的 CPU 数。

主机类型支持以下数量的 CPU:

  • Hyper-V。 每个虚拟机最多四个 CPU,具体取决于来宾操作系统。
  • VMware ESX。 每个虚拟机最多四个 CPU,但运行 Windows NT 4.0 的虚拟机上只有一个 CPU。
  • Citrix XenServer。 每个虚拟机最多 8 个 CPU,具体取决于来宾操作系统。
类型:Byte
别名:ProcessorCount
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CPUExpectedUtilizationPercent

指定你希望此虚拟机使用的主机上的 CPU 百分比。 仅当 VMM 确定适合虚拟机的主机时,才使用此值。

类型:Int32
别名:ExpectedCPUUtilization
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CPULimitForMigration

指示是否限制指定虚拟机的处理器功能,以便迁移到与源计算机具有相同版本的处理器的物理计算机。 VMM 不支持在不同制造商具有处理器的物理计算机之间迁移虚拟机。

类型:Boolean
别名:LimitCPUForMigration
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CPULimitFunctionality

指示是通过为虚拟机提供有限的 CPU 功能,在部署在 Hyper-V 主机上或 VMware ESX 主机上的虚拟机上启用运行较旧的操作系统(例如 Windows NT 4.0)。

类型:Boolean
别名:LimitCPUFunctionality
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CPUMaximumPercent

指定主机上单个 CPU 的总资源的最大百分比,该资源可在任何给定时间由特定虚拟机使用。

示例:-CPUMaximumPercent 80(指定 80%)

类型:Int32
别名:CPUMax
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CPUPerVirtualNumaNodeMaximum

指定每个虚拟 NUMA 节点允许的最大 CPU 数。

类型:Byte
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CPURelativeWeight

指定此虚拟机相对于同一主机上其他虚拟机可以使用的主机上的 CPU 资源量。 具有较高权重值的虚拟机分配的 CPU 资源比权重值较低的虚拟机分配的 CPU 资源更多。 这些值的 VMware 术语是共享。

主机类型支持以下相对值:

  • Hyper-V。 1 到 10000。

  • VMware ESX。 高。

  • VMware ESX。 高于普通。
  • VMware ESX。 普通(默认值)。 1000.

  • VMware ESX。 正常情况下。

  • VMware ESX。 低。
  • VMware ESX。 自定义 1 到 1000000。

  • Citrix XenServer。 1 到 65536,正常值为 256。

类型:Int32
别名:RelativeWeight
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CPUReserve

指定要分配给虚拟机的主机上单个 CPU 的资源的最小百分比。 虚拟机可用的 CPU 容量百分比永远不会小于此百分比。

类型:Int32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CPUType

指定虚拟机的 CPU 类型。 若要检索可用于 VMM 环境中的虚拟机的所有 CPU 类型的列表,请键入 Get-SCCPUType

类型:ProcessorType
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Description

声明指定对象的说明。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DiskIops

指定主机上的每秒磁盘输入/输出操作数(IOPS),该操作可由特定虚拟机使用。

示例:-DiskIO 1500(指定 1500 IOPS)

类型:Int32
别名:DiskIO
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DRProtectionRequired

此参数保留供将来使用。

类型:Boolean
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DynamicMemoryBufferPercentage

指定虚拟机当前内存分配上方的内存百分比,主机应尝试将其保留为缓冲区。 默认值为 20。

示例格式:-DynamicMemoryTargetBufferPercentage 20

类型:Int32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DynamicMemoryEnabled

指示是否为虚拟机启用动态内存。 可以直接在虚拟机上启用动态内存,也可以在将用于创建虚拟机的模板或硬件配置文件上启用动态内存。 默认值为$False。

必需:仅当虚拟机部署在运行 Windows Server 2008 SP1 或更高版本的主机上,或者虚拟机存储在处于停止状态的库中(仅当虚拟机没有快照时,才能为虚拟机启用动态内存)。 在存储在库中的虚拟机上启用动态内存会将该计算机的位置限制为运行 Windows Server 2008 SP1 或更高版本的主机。

示例格式:-DynamicMemoryEnabled $True

类型:Boolean
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DynamicMemoryMaximumMB

指定启用动态内存时可以分配给虚拟机的最大内存量。 默认值为 65536。

必需:仅当虚拟机部署在运行 Windows Server 2008 R2 SP1 或更高版本的主机上,或者虚拟机存储在处于停止状态的库中时,才能为虚拟机启用动态内存(仅当虚拟机没有快照时,才能对存储的虚拟机进行硬件更改)。 在存储在库中的虚拟机上启用动态内存会将该计算机的位置限制为运行 Windows Server 2008 R2 SP1 或更高版本的主机。

示例格式:-DynamicMemoryMaximumMB 1024

类型:Int32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DynamicMemoryMinimumMB

指定启用动态内存时可以分配给虚拟机的最小内存量。 默认值为 65536。

必需:仅当虚拟机部署在运行 Windows Server 2008 R2 SP1 或更高版本的主机上,或者虚拟机存储在处于停止状态的库中时,才能为虚拟机启用动态内存(仅当虚拟机没有快照时,才能对存储的虚拟机进行硬件更改)。 在存储在库中的虚拟机上启用动态内存会将该计算机的位置限制为运行 Windows Server 2008 R2 SP1 或更高版本的主机。

示例格式:-DynamicMemoryMinimumMB 1024

类型:Int32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-FirstBootDevice

指定首次尝试启动的设备。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-HardwareProfile

指定硬件配置文件对象。

类型:HardwareProfile
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-HAVMPriority

指定虚拟机优先级。 虚拟机按优先级顺序开始,达到主机群集节点的限制。 此参数的有效输入是优先级的数字表示形式:

  • 高。 3000
  • 中等。 2000
  • 低。 1000

如果指定值为零(0),则虚拟机不会自动重启。

类型:UInt32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-HighlyAvailable

指示是否将虚拟机放置在属于主机群集的 Hyper-V 主机上。 在虚拟机或用于创建虚拟机的模板或硬件配置文件上配置此设置。

类型:Boolean
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-JobGroup

指定一系列命令的标识符,该命令将在包含相同作业组标识符的最终命令运行之前作为集运行。

类型:Guid
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-JobVariable

指定在此参数命名的变量中跟踪和存储作业进度。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-MemoryMB

指定此 cmdlet 分配给转换后的虚拟机的主机上的随机访问内存(RAM),以兆字节(MB 为单位)。 默认值为 512 MB。 对于在运行 Windows Server 2008 R2 SP1 或更高版本的主机上启用动态内存的虚拟机,请指定启动内存值。

主机类型具有以下可分配给虚拟机的最大内存:

  • Hyper-V。 每个虚拟机最多 65536 MB RAM。
  • VMware ESX Server 3.0.x。 每个虚拟机最多 16384 MB RAM。
  • VMware ESX Server 3.5.x。 每个虚拟机最多 65532 MB RAM。
  • Citrix XenServer。 每个虚拟机最多 32265 MB RAM。
类型:Int32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-MemoryPerVirtualNumaNodeMaximumMB

指定允许每个虚拟 NUMA 节点的最大内存量(以 MB 为单位)。

类型:Int32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-MemoryWeight

指示将内存分配给虚拟机的优先级,相对于同一主机上的其他虚拟机。 具有较高设置的虚拟机分配的内存资源比具有较低设置的虚拟机分配的内存资源更多。

对于运行 Windows Server 2008 R2 SP1 或更高版本的主机:

  • 5000 - 正常
  • 10000 - 高
  • 0 - 低
  • 1 到 10000 - 自定义
类型:Int32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-MonitorMaximumCount

指定虚拟视频适配器支持的最大监视器数。

类型:Int32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-MonitorMaximumResolution

将值指定为字符串,该值表示虚拟视频适配器的最大可能的监视器分辨率。 此参数的可接受值为:

  • 1024x768
  • 1280x1024
  • 1600x1200
  • 1920x1200

默认值为 1280x1024。

示例格式:-MonitorResolutionMaximum "1600x1200"

类型:String
别名:MonitorResolutionMaximum
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Name

指定 VMM 对象的名称。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-NetworkUtilizationMbps

指定,以兆位/秒为单位(Mbps),特定虚拟机可以使用的主机网络上的带宽量。

示例格式:-NetworkUtilization 10

类型:Int32
别名:NetworkUtilization
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-NumaIsolationRequired

指示是否需要 NUMA 隔离。

类型:Boolean
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-NumLock

指示是否在用于在 Hyper-V 主机上创建虚拟机的硬件配置文件上为 NumLock 启用 BIOS 值。 此参数不适用于 VMware ESX 主机上或 Citrix XenServer 主机上的虚拟机。

类型:Boolean
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Owner

以有效的域用户帐户的形式指定 VMM 对象的所有者。

  • 示例格式:-Owner "Contoso\PattiFuller"
  • 示例格式:-Owner "PattiFuller@Contoso"
类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ProtectionProvider

指定保护提供程序。

类型:ProtectionProvider
接受的值:None, HVR8, HVRBlue, HVRAzure, DiskReplication, SANReplication
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-PROTipID

指定触发此操作的性能和资源优化提示(PRO 提示)的 ID。 此参数允许你审核 PRO 提示。

类型:Guid
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-RecoveryPointObjective

指定由于重大事件而无法容忍从 IT 服务丢失数据的最大时间段。

类型:Int32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-RemoveCapabilityProfile

删除一个或多个指定的功能配置文件对象。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ReplicationGroup

指定 ReplicationGroup 对象。

类型:ReplicationGroup
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-RunAsynchronously

指示作业以异步方式运行,以便控件立即返回到命令行界面。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SecureBootEnabled

指示是否启用了安全启动。

类型:Boolean
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SecureBootTemplate

指定安全启动模板。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-UserRole

指定用户角色对象。

类型:UserRole
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-VirtualNumaNodesPerSocketMaximum

指定每个套接字允许的最大 NUMA 节点数。

类型:Byte
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-VirtualVideoAdapterEnabled

指示是否为虚拟机启用Microsoft合成 3D 虚拟视频适配器。 可以直接在虚拟机上启用虚拟视频适配器,也可以在将用于创建虚拟机的模板或硬件配置文件上启用虚拟视频适配器。

必需:仅当虚拟机部署在运行 Windows Server 2008 R2 SP1 的主机上(安装了远程桌面服务角色和远程桌面虚拟图形角色服务)或更高版本,或者虚拟机存储在处于停止状态的库中(仅当存储的虚拟机的硬件更改时,才能启用虚拟机的Microsoft合成 3D 虚拟视频适配器计算机没有快照。 在库中存储的虚拟机上启用Microsoft合成 3D 虚拟视频适配器会将该计算机的位置限制为运行 Windows Server 2008 R2 SP1 的主机(安装了远程桌面服务角色和远程桌面虚拟图形角色服务)或更高版本。

示例格式:-VirtualVideoAdapterEnabled $True

类型:Boolean
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输出

HardwareProfile

此 cmdlet 返回 HardwareProfile 对象。