Set-SCVMHost

Changes properties of a virtual machine host.

Description

The Set-SCVMHost cmdlet changes one or more properties of a virtual machine host managed by System Center Virtual Machine Manager (VMM). Settings that you can modify with the Set-SCVMHost cmdlet are summarized as follows:

AVAILABILITY AS A HOST FOR VIRTUAL MACHINES
-------------------------------------------

You can specify whether a host is currently considered by the VMM placement process as a candidate on which to place virtual machines.

HOST RESERVE SETTINGS
---------------------
You can configure the following host reserve settings:

- Percentage of CPU usage to set aside for use by the host.
- Amount of disk space (MB) to set aside for use by the host.
- Maximum number of disk I/O operations per second (IOPS) to set asside for use by the host.
- Amount of memory (MB) to set asside for use by the host.
- Percentage of network capacity to set aside for use by the host.

The VMM placement process will not recommend placing a virtual machine on a host unless the resource requirements of the virtual machine can be met without using the host reserves. If you do not specify reserve settings, VMM uses default settings. 

VIRTUAL MACHINE PATHS
---------------------
You can specify, as a set of default paths, locations on a host where virtual machine files can be stored.

CREDENTIAL FOR MANAGING HOSTS IN A PERIMETER NETWORK OR NON-TRUSTED DOMAIN
--------------------------------------------------------------------------
You can specify the password for an account used to manage Hyper-V hosts that are located in a perimeter network or in a non-trusted domain.

REMOTE CONNECTION SETTINGS
--------------------------
You can configure remote connection settings for Hyper-V hosts (VMConnect) that enable users to connect to virtual machines remotely. This setting does not apply to virtual machines on VMware ESX hosts.

For more information about Set-SCVMHost, type: "Get-Help Set-SCVMHost -online".

Parameters

VMHost

Required? true
Accept Pipeline Input? true (ByValue)
Position? 0
Specifies a virtual machine host object. VMM supports Hyper-V hosts, VMware ESX hosts, and Citrix XenServer hosts. 

For more information about each type of host, type: "Get-Help Add-SCVMHost -detailed". See the examples for a specific cmdlet to determine how that cmdlet uses this parameter.

AvailableForPlacement

Required? false
Accept Pipeline Input? false
Position? named
Indicates whether the VMM placement process will consider this host or this volume on a host to be eligible as a possible location on which to deploy virtual machines. If this parameter is set to False, you can choose to deploy virtual machines on this host or volume anyway. The default value is True. This parameter does not apply to VMware ESX hosts.

When this parameter is used with network adapters, if set to $False, then placement will not consider the logical networks configured on this network adapter to determine if the host is suitable for connecting a virtual machine.

BMCAddress

Required? false
Accept Pipeline Input? false
Position? named
Specifies, or updates, the out-of-band baseboard management controller (BMC) address for a specific physical machine. This might be an IP address, the fully qualified domain name (FQDN), or the DNS prefix (which is usually the same name as the NetBIOS name). 

Typically, the BMC address and its connection to the network are separate from the IP address associated with a standard network adapter. Alternatively, some computers do use a standard network adapter to provide a single address for the BMC and for the network adapter. However, the BMC address has a unique port and is thus uniquely identifiable on the network. 

Example IPv4 format:	 -BMCAddress “10.0.0.21” 
Example Ipv6 format:	 -BMCAddress “2001:4898:2a:3:657b:9c7a:e1f0:6829” 
Example FQDN format:	 -BMCAddress “Computer01.Contoso.com”
Example NetBIOS format:	-BMCAddress “Computer01”

NOTE: By default, VMM uses an IP address or FQDN for the BMCAddress. However, it is also possible to create a Windows PowerShell module that enables you to specify other types of addresses as the BMC address.

BMCCustomConfigurationProvider

Required? false
Accept Pipeline Input? false
Position? named
Specifies, or updates, a configuration provider object for a baseboard management controller (BMC). A configuration provider is a plug-in to VMM that translates VMM PowerShell commands to API calls that are specific to a type of baseboard management controller. This parameter should be used with the Custom BMCProtocol.

BMCPort

Required? false
Accept Pipeline Input? false
Position? named
Specifies, or updates, the out-of-band baseboard management controller (BMC) port for a specific physical machine. A BMC port is also known as a service processor port. Example default ports are 623 for IPMI and 443 for SMASH over WS-Man.

Example format:  -BMCPort 80 

BMCProtocol

Required? false
Accept Pipeline Input? false
Position? named
Specifies, or updates, the protocol that VMM uses to communicate with the out-of-band baseboard management controller (BMC). Valid values are: IPMI, SMASH, iLO, Custom.

A BMC (also known as a service processor or management controller) is a specialized controller on the motherboard of a server that acts an interface between the hardware and system management software. If the motherboard of a physical machine includes a BMC, when the machine is plugged in (whether it is powered off or powered on, and whether or not an operating system is installed), information about system hardware and the state of that system hardware health is available.

Example format: -BMCProtocol “Custom”

NOTE: The Custom protocol requires using the BMCCustomCondigurationProvider.

BMCRunAsAccount

Required? false
Accept Pipeline Input? false
Position? named
Specifies the Run As account to use with the baseboard management controller (BMC) device.

Certificate

Required? false
Accept Pipeline Input? false
Position? named
Specifies a security certificate object.

CPUPercentageReserve

Required? false
Accept Pipeline Input? false
Position? named
Specifies the percentage of CPU to reserve for the use of the operating system on the physical host computer. If you do not use this parameter to specify the reserve, the default setting for the host group is used: 10 percent. The VMM placement process will not recommend that a virtual machine be placed on a host unless its resource requirements can be met without using host reserves. 

Credential

Required? false
Accept Pipeline Input? false
Position? named
Specifies a credential object or, for some cmdlets, a Run As account object that contains the user name and password of an account that has permission to perform this action. Or, in the case of Restart-SCJob, has permission to complete a restarted task. 

For more information about the PSCredential object, type: "Get-Help Get-Credential". 
For more information about Run As accounts, type: "Get-Help New-SCRunAsAccount".

Custom1

Required? false
Accept Pipeline Input? false
Position? named
Specifies a custom property on a VMM object.

Custom10

Required? false
Accept Pipeline Input? false
Position? named
Specifies a custom property on a VMM object.

Custom2

Required? false
Accept Pipeline Input? false
Position? named
Specifies a custom property on a VMM object.

Custom3

Required? false
Accept Pipeline Input? false
Position? named
Specifies a custom property on a VMM object.

Custom4

Required? false
Accept Pipeline Input? false
Position? named
Specifies a custom property on a VMM object.

Custom5

Required? false
Accept Pipeline Input? false
Position? named
Specifies a custom property on a VMM object.

Custom6

Required? false
Accept Pipeline Input? false
Position? named
Specifies a custom property on a VMM object.

Custom7

Required? false
Accept Pipeline Input? false
Position? named
Specifies a custom property on a VMM object.

Custom8

Required? false
Accept Pipeline Input? false
Position? named
Specifies a custom property on a VMM object.

Custom9

Required? false
Accept Pipeline Input? false
Position? named
Specifies a custom property on a VMM object.

Description

Required? false
Accept Pipeline Input? false
Position? named
States a description for the specified object.

DiskSpaceReserveMB

Required? false
Accept Pipeline Input? false
Position? named
Specifies, in megabytes (MB), the amount of disk space to reserve for the use of the operating system on the physical host computer. If you do not use this parameter to specify the reserve, the default setting for the host group is used: 100 MB. The VMM placement process will not recommend that a virtual machine be placed on a host unless its resource requirements can be met without using host reserves.

EnableSecureMode

Required? false
Accept Pipeline Input? false
Position? named
Indicates whether VMM communicates with VMware ESX hosts and Citrix XenServer hosts in secure mode. The default value is $True.

JobGroup

Required? false
Accept Pipeline Input? false
Position? named
Specifies an identifier for a series of commands that will run as a set just before the final command that includes the same job group identifier runs. 

JobVariable

Required? false
Accept Pipeline Input? false
Position? named
Specifies that job progress is tracked and stored in the variable named by this parameter. 

MaintenanceHost

Required? false
Accept Pipeline Input? false
Position? named
This parameter is obsolete. Use AvailableForPlacement instead.

ManagementAdapterMACAddress

Required? false
Accept Pipeline Input? false
Position? named
Specifies the MAC address of the physical network adapter on the computer that is to be used by the VMM server to communicate with this host.

MaxDiskIOReservation

Required? false
Accept Pipeline Input? false
Position? named
Specifies the maximum disk I/O per second (IOPS) on the physical host computer. If you do not use this parameter to specify the reserve, the default setting for the host group is used: 10000. The VMM placement process will not recommend that a virtual machine be placed on a host unless its resource requirements can be met without using host reserves.

MemoryReserveMB

Required? false
Accept Pipeline Input? false
Position? named
Specifies, in megabytes (MB), the amount of memory to reserve for the use of the host operating system on the physical host computer. If you do not use this parameter to specify the reserve, the default setting for the host group is used: 256 MB. The VMM placement process will not recommend that a virtual machine be placed on a host unless its resource requirements can be met without using host reserves.

NetworkPercentageReserve

Required? false
Accept Pipeline Input? false
Position? named
Specifies the percentage of network capacity to reserve for the use of the host operating system on the physical host computer. If you do not use this parameter to specify the reserve, the default setting for the host group is used: 10 percent. The VMM placement process will not recommend that a virtual machine be placed on a host unless its resource requirements can be met without using host reserves.

OverrideHostGroupReserves

Required? false
Accept Pipeline Input? false
Position? named
Indicates, when set to $True, that the host reserve settings from the parent host group will be overridden by the provided settings.

PROTipID

Required? false
Accept Pipeline Input? false
Position? named
Specifies the ID of the PRO tip that triggered this action. This allows for auditing of PRO tips.

RemoteConnectCertificatePath

Required? false
Accept Pipeline Input? false
Position? named
This parameter is obsolete.

RemoteConnectEnabled

Required? false
Accept Pipeline Input? false
Position? named
Enables, when set to $True, a connection on a host server that lets users connect to their virtual machines remotely. This parameter only applies to virtual machines on Hyper-V hosts. It is not applicable to virtual machines on VMware ESX hosts or Citrix XenServer hosts.

RemoteConnectPort

Required? false
Accept Pipeline Input? false
Position? named
Specifies a default value for the TCP port to use when a remote user connects to a virtual machine. Typically, the default port for a Hyper-V host is 2179. This parameter does not apply to VMware ESX hosts or Citrix XenServer hosts.

RemoveRemoteConnectCertificate

Required? false
Accept Pipeline Input? false
Position? named
This parameter is obsolete.

RunAsynchronously

Required? false
Accept Pipeline Input? false
Position? named
Indicates that the job runs asynchronously so that control returns to the command shell immediately. 

SecureRemoteConnectEnabled

Required? false
Accept Pipeline Input? false
Position? named
This parameter is obsolete.

SMBiosGuid

Required? false
Accept Pipeline Input? false
Position? named
Specifies the System Management BIOS globally unique identifier (SMBIOS GUID) for a physical computer that is associated with a record for that physical computer in VMM. SMBIOS defines data structures and access methods that enable a user or application to store and retrieve information about hardware on this computer, such as the name of the system, manufacturer, or the system BIOS version. Windows operating systems retrieve SMBIOS data at system startup and make that data available to programs.

TCPPort

Required? false
Accept Pipeline Input? false
Position? named
Specifies a numeric value that represents a TCP port. 

VMHostManagementCredential

Required? false
Accept Pipeline Input? false
Position? named
This parameter is obsolete.

VMPaths

Required? false
Accept Pipeline Input? false
Position? named
Specifies a set of default paths (as strings separated by the pipeline operator) on a host where virtual machine files can be stored.

Example format: -VMPaths "C:\Folder1|C:\Folder2|C:\Folder3"

Examples

1: Make a host available for placement.
PS C:\> $VMHost = Get-SCVMHost -ComputerName "VMHost01" 
PS C:\> Set-SCVMHost -VMHost $VMHost -AvailableForPlacement $True
The first command gets the host object named VMHost01 and stores the object in the $VMHost variable.

The second command makes VMHost01 available as a host for virtual machines. Setting the parameter AvailableForPlacement to True enables the VMM placement process to evaluate this host as a possible candidate on which to deploy virtual machines.
2: Enable remote connections on a Hyper-V host.
PS C:\> $VMHost = Get-SCVMHost -ComputerName "VMHost01" 
PS C:\> Set-SCVMHost -VMHost $VMHost -RemoteConnectEnabled $True -RemoteConnectPort 5900
The first command gets the host object named VMHost01 and stores the object in the $VMHost variable.

The second command enables remote connections on VMHost01 and sets the port used for remote connections to 5900.

Enabling remote connections on a Hyper-V host allows users to remotely access and manage their virtual machines on the host.
3. Update the virtual machine paths for a host.
PS C:\> $VMHost = Get-SCVMHost -ComputerName "VMHost01" 
PS C:\> Set-SCVMHost -VMHost $VMHost -VMPaths "C:\ProgramData\Microsoft\Windows\Hyper-V|D:\VirtualMachinePath"
The first command gets the host object named VMHost01 and stores the object in the $VMHost variable.

The second command updates the VMPaths property for the host stored in $VMHost by adding the path "D:\VirtualMachinePath" to the list of virtual machine paths on that host.
4: Update the resource reserves for a host.
PS C:\> $VMHost = Get-SCVMHost -ComputerName "VMHost01" 
PS C:\> Set-SCVMHost -VMHost $VMHost -CPUPercentageReserve 40 -DiskSpaceReserveMB 2048 -MaxDiskIOReservation 500 -MemoryReserveMB 1024 -NetworkPercentageReserve 40
The first command gets the host object named VMHost01 and stores the object in the $VMHost variable.

The second command updates the specified properties for VMHost01.
5: Update the bare-metal computer username and password for a specified physical host.
PS C:\> $VMHost = Get-SCVMHost -ComputerName “VMHost02”
PS C:\> $BMCRAA = Get-SCRunAsAccount -Name "BMCCreds"
PS C:\> Set-SCVMHost $VMHost -BMCRunAsAccount $BMCRAA
PS C:\> Read-SCVMHost -VMHost $VMHost -RefreshOutOfBandProperties
The first command gets the host object named VMHost02 and stores the object in the $VMHost variable.

The second command gets the Run As account object named BMCCreds and stores the object in the $BMCRAA variable.

The third command updates the host stored in $VMHost with the new Run As account stored in $BMCRAA.

The last command refreshes the host stored in $VMHost using its out-of-band interface, which updates the Run As account for the host.
6: Update the certificates for XenServer josts in a cluster.
PS C:\> $VMHost = Get-VMHost -ComputerName "XenHost01" 
PS C:\> $Cert = Get-SCCertificate -Computername $VMHost.Name 
PS C:\> Set-SCVMHost –VMHost $VMHost –Certificate $Cert –EnableSecureMode $True 
The first command gets the host object named XenHost01 and stores the object in the $VMhost variable.

The second gets the certificate object for XenHost01 and stores the object in the $Certificate variable.

The last command uses the certificate supplied in $Cert to enable VMM to communicate with XenHost01 in secure mode.

See Also