Add-ClusterVirtualMachineRole

Creates a clustered virtual machine, that is, a virtual machine that can be failed over if necessary to a different server in the failover cluster.

Syntax

Add-ClusterVirtualMachineRole
   [-Name <String>]
   [[-VMName] <String>]
   [-VirtualMachine <String>]
   [-VMId <Guid>]
   [-InputObject <PSObject>]
   [-Cluster <String>]
   [<CommonParameters>]

Description

The Add-ClusterVirtualMachineRole cmdlet creates a clustered virtual machine, that is, a virtual machine that can be failed over if necessary to a different server in the failover cluster.

By creating clustered virtual machines, you can consolidate multiple servers on one physical server without causing that server to become a single point of failure. Instead, if that server, or cluster node, fails or requires scheduled maintenance, then another node begins to run the virtual machines instead through a process known as failover. The virtual hard disk (VHD) file for the clustered virtual machine must be on the clustered disk used by that virtual machine.

Note: This cmdlet cannot be run remotely without Credential Security Service Provider (CredSSP) authentication on the server computer.

Note: This cmdlet generates a .TMP file under the user temp folder, and you can't have more than 65535 .TMP files generated by this cmdlet, otherwise you will receive an exception "The File Exist". For more information, please go to: https://techcommunity.microsoft.com/t5/ITOps-Talk-Blog/TQA-Add-ClusterVirtualMachineRole-fails-with-the-error-quot-The/ba-p/713344

Examples

Example 1

PS C:\>Add-ClusterVirtualMachineRole -VirtualMachine VM1
Name                       OwnerNode                            State 
----                       ---------                            ----- 
Virtual Machine            node1                              Offline

This example configures VM1 as a clustered virtual machine, and assigns a default name.

Example 2

PS C:\>Add-ClusterVirtualMachineRole -VirtualMachine VM1 -Name "MainServer1"
Name                       OwnerNode                            State 
----                       ---------                            ----- 
MainServer1                 node1                              Offline

This example configures VM1 as a clustered virtual machine, and assigns the name MainServer1.

Example 3

PS C:\>Get-VM -Name *print* | Add-ClusterVirtualMachineRole
Report file location: C:\Windows\cluster\Reports\Highly Available Virtual Machine 0ce88dce-eb6b-4c17-a512-d13bdbe5fcba on2011.11.28 At 15.37.33.mht 
 
Name                                    OwnerNode                               State 
----                                    ---------                               ----- 
print-VM1                               node1                                   Online

This example queries for virtual machines matching the wildcard characters print and configures them as clustered virtual machines.

Parameters

-Cluster

Specifies the name of the cluster on which to run this cmdlet. If the input for this parameter is . or it is omitted, then the cmdlet runs on the local cluster.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Specifies the cluster on which to create the highly available virtual machine.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

Specifies the name of the highly available virtual machine to create.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VirtualMachine

Specifies the name of the virtual machine to make highly available. Use either the VirtualMachine parameter or the VMName parameter to specify the name of the virtual machine.

Type:String
Aliases:VM
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VMId

Specifies the virtual machine identifier (ID).

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-VMName

Specifies the name of the virtual machine to make highly available. Use either the VirtualMachine parameter or the VMName parameter to specify the name of the virtual machine.

Type:String
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

Inputs

Microsoft.FailoverClusters.PowerShell.Cluster

Outputs

Microsoft.FailoverClusters.PowerShell.ClusterGroup