PowerShell Cmdlets for Disaster Recovery

Cluster/General Cmdlets:

Connect-HXCluster Cmdlet

Syntax

Connect-HXCluster [-ClusterIP] <string> [[-Username] <string>] [[-Password] <string>] [-Credential <PSCredential>] [<CommonParameters>]

Description

Connects to the HyperFlex Cluster.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Cluster <string>

Position?

0

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

-Credential <PSCredential>

Specify the user credentials for the HyperFlex cluster.

Aliases

-cred <PSCredential>

Position?

Named

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Username <string>

Specify the username for the HyperFlex cluster.

Aliases

-user <string>

Position?

1

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Password <string>

Specify the password for the HyperFlex cluster.

Aliases

-pwd <string>

Position?

2

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Common Parameters

This cmdlet supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable. For more information, see About Common Parameters in the Microsoft PowerShell Core Guide.

Example

Input
Connect-HXCluster -ClusterIP 10.198.14.227 -Username root -Password abc
Output
10.198.14.227 is connected.

Get-HXCluster Cmdlet

Syntax

Get-HXCluster [<CommonParameters>]

Description

Gets the list of connected HyperFlex clusters.

Example

Input
Get-HXCluster
Output
10.198.14.229
10.198.14.227

Start-HXVM Cmdlet

Syntax

Start-HXVM [-ServerIP] <ipaddress> [-VM] <Object[]> [[-Delay] <int>] [<CommonParameters>]

Description

Start the HX VM(s).

Required Parameters

-ServerIP <ipaddress>

Specify the IP address of the server that the HX VM is located.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VM <Object[]>

Specify the VM(s) to be started.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

-Delay <int>

Specify the time delay, in seconds between when a device first powers on and when it starts responding to commands sent to the VMs.

Aliases

-RPID <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Common Parameters

The Get-HXJsonConfig cmdlet supports the following common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable

For more information, see About CommonParameters.

Disconnect-HXCluster Cmdlet

Syntax

Disconnect-HXCluster [-ClusterIP] <string> [<CommonParameters>]

Description

Disconnects from the HyperFlex cluster.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Cluster <string>

Position?

0

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Common Parameters

This cmdlet supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable. For more information, see About Common Parameters in the Microsoft PowerShell Core Guide.

Example

Input
Disconnect-HXCluster -ClusterIP 10.198.14.2
Output

10.198.14.227 is disconnected.

Protection Cmdlets:

Get-HXProtectedVM Cmdlet

Syntax

Get-HXProtectedVM -ClusterIP <string> [-Brief <SwitchParameter>] [-Direction <string>] [-State <string>] [-VMID <string>] [<CommonParameters>]

Get-HXProtectedVM -ClusterIP <string> [-Brief <SwitchParameter>] [-Direction <string>] [-State <string>] [-VMName <string>] [<CommonParameters>]

Description

Retrieves the virtual machines in the HyperFlex cluster.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

-VMID <string>

Specify the virtual machine ID for which the jobs have to be displayed.

Aliases

-id <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMName <string>

Specify the name of the virtual machine for which the jobs have to be displayed.

Aliases

-name <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Direction <string>

Specify the type of VM to limit the search. The valid values are All, Incoming, Outgoing.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-State <string>

Specify the state of VM to limit the search. The valid values are Active, CreationInProgress, CreationFailed, FailoverStarted, FailoverFailed, FailoverCompleted, PrepareFailoverStarted, PrepareFailoverFailed, PrepareFailoverCompleted, PrepareReverseProtectStarted, PrepareReverseProtectFailed, PrepareReverseProtectCompleted, ReverseProtectStarted, ReverseProtectFailed.

Aliases

-VMState <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Brief <SwitchParameter>

Indicates that the command will return the brief formatted output.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Example 1

Input
Get-HXProtectedVM -ClusterIP 10.198.14.227 -Brief
Output
    VM Name: DemoVM1
    VM ProtectionStatus: ACTIVE
    VM ID: 421ffa79-7380-4b72-7bd8-6651b11def58
    Source Cluster: skmsrc_711
    Target Cluster: skmtgt_711
    Replication Interval(in Minutes) : 5
    Bios Uuid: 421ffa79-7380-4b72-7bd8-6651b11def58
    Instance Uuid: 501ffa05-293f-0480-b4d3-3de146cb5d30
    Start Time: 7/15/2018 12:33:58 PM
    End Time: 7/15/2018 12:33:58 PM
    BytesReplicated: 2446

Example 2

Input
Get-HXProtectedVM -ClusterIP 10.198.16.16 -VMName ash2 -Brief
Output
    VM Name: ash2    
    VM ProtectionStatus: PREPAREFAILOVERCOMPLETED 
    VM ID: 422a9cb5-0fef-b30f-ad2d-1004755c50b4
    Source Cluster: Sample-source
    Target Cluster: Sample-target
    Replication Interval(in Minutes) : 5
    Bios Uuid: 422a9cb5-0fef-b30f-ad2d-1004755c50b4
    Instance Uuid: 502a615b-36db-d624-fc97-4de6dbe30daa
    Start Time: 7/15/2018 12:33:58 PM
    End Time: 7/15/2018 12:33:58 PM

Example 3

Input
Get-HXProtectedVM -ClusterIP 10.198.16.16 -VMName ash* -Brief
Output
    VM Name: ash1
    VM ProtectionStatus: PREPAREFAILOVERCOMPLETED
    VM ID: 422a9cb5-0fef-b30f-ad2d-1004755c50b4
    Source Cluster: Sample-source
    Target Cluster: Sample-target
    Replication Interval(in Minutes) : 5
    Bios Uuid: 422a9cb5-0fef-b30f-ad2d-1004755c50b4
    Instance Uuid: 502a615b-36db-d624-fc97-4de6dbe30daa
    Start Time: 7/15/2018 12:33:58 PM
    End Time: 7/15/2018 12:33:58 PM
    BytesReplicated: 2539
    =====================================================================
    VM Name: ash2
    VM ProtectionStatus: ACTIVE
    VM ID: 422a1745-5dc3-d1de-00f0-b50851bb970d
    Source Cluster: Sample-source
    Target Cluster: Sample-target
    Replication Interval(in Minutes) : 5
    Bios Uuid: 422a9cb5-0fef-b30f-ad2d-1004755c50b4
    Instance Uuid: 502a615b-36db-d624-fc97-4de6dbe30daa
    Start Time: 7/15/2018 12:33:58 PM
    End Time: 7/15/2018 12:33:58 PM
    BytesReplicated: 2539

Protect-HXVM Cmdlet

Syntax

Protect-HXVM -ClusterIP <string> -Interval <string> -VMName <string[]> [-QuiesceUsingTools <SwitchParameter>] [-StartTime <string>] [<CommonParameters>]

Protect-HXVM -ClusterIP <string> -GroupName <string> -VMName <string[]> [<CommonParameters>]

Protect-HXVM -ClusterIP <string> -GroupId <string> -VMName <string[]> [<CommonParameters>]

Protect-HXVM -ClusterIP <string> -Interval <string> -VMId <string[]> [-QuiesceUsingTools <SwitchParameter>] [-StartTime <string>] [<CommonParameters>]

Protect-HXVM -ClusterIP <string> -GroupName <string> -VMId <string[]> [<CommonParameters>]

Protect-HXVM -ClusterIP <string> -GroupId <string> -VMId <string[]> [<CommonParameters>]

Description

Protects an independent virtual machine or a list of virtual machines by adding it to the protection group.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMName <string[]>

Specify the VM Name to protect an independent VM or a list of VM Names to protect a group of VMs by adding them to a protection group.

Aliases

-Name <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMID <string>

Specify the virtual machine ID on which Reverse Protect has to be performed.

Aliases

-Id <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-GroupName <string>

Specify the exisitng protection group name to which the list of virtual machines has to be added.

Aliases

-GrpName <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-GroupId <string>

Specify the group ID on which you want to perform prepare group recovery.

Aliases

-GrpId <string>

Position?

Named

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Interval <string>

Specify the Interval after which the VM will be replicated. Valid values are "5 min", "15 min", "30 min", "1 hr", "90 min", "2 hr", "4 hr", "8 hr", "12 hr", and "24 hr".

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

-QuiesceUsingTools <SwitchParameter>

Specify the flag if the Quiesce has to be done using tools.

Aliases

Position?

Named

Default Value

False

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-StartTime <string>

Specify the Start Time after which the virtual machine will be protected. Valid format is M/d/yyyy HH:mm.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Example 1

Input
Protect-HXVM -ClusterIP 10.198.14.227 -VMName DemoVM2 -Interval '12 hr'
Output
VM has been protected.

Example 2

Input
Protect-HXVM -ClusterIP 10.198.14.227 -VMId 421f0f84-0b3f-fe3a-311c-763f409b3665 -Interval '5 min'
Output
VM has been protected.

Example 3

Input
Protect-HXVM -ClusterIP 10.198.14.227 -VMId 421f0f84-0b3f-fe3a-311c-763f409b3665 -Interval '5 min' -QuiesceUsingTools -StartTime '08/07/2018 13:40'
Output
VM has been protected.

Example 4

Input
Protect-HXVM -ClusterIP 10.198.16.56 -VMName testvm3,testvm4 -GroupName Grp1
Output
VM has been protected.

Unprotect-HXVM Cmdlet

Syntax

Unprotect-HXVM -ClusterIP <string> -VMName <string> [<CommonParameters>]

Unprotect-HXVM -ClusterIP <string> -VMID <string> [<CommonParameters>]

Description

Removes a standalone Protected virtual machine and makes it unprotected.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMName <string>

Specify the name of the virtual machine which has to be removed or unprotected from the protection group.

Aliases

-Name <string]>

Position?

Named

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMID <string>

Specify the name of the virtual machine which has to be removed or unprotected from the protection group.

Aliases

-Id <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Example 1

Input
Unprotect-HXVM -ClusterIP 10.198.14.229 -VMName DemoVM1
Output
VM :DemoVM1 has been unprotected.

Example 2

Input
Unprotect-HXVM -ClusterIP 10.198.14.227 -VMID 421f57c4-ebbd-a64e-a32b-426a251f9f43
Output
VM :DemoVM2 has been unprotected.

Group Cmdlets:

Get-HXProtectionGroup Cmdlet

Syntax

Get-HXProtectionGroup -ClusterIP <string> [-Brief <SwitchParameter>] [-GroupID <string>] [<CommonParameters>]

Get-HXProtectionGroup -ClusterIP <string> [-Brief <SwitchParameter>] [-GroupName <string>] [<CommonParameters>]

Description

Retrieves the protection groups in the HyperFlex cluster.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

-GroupID <string>

Specify the ID of specific protection group you want to retrieve.

Aliases

-Grpid <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-GroupName <string>

Specify the specific protection group name you want to retrieve.

Aliases

-GrpName <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Brief <SwitchParameter>

Indicates that the command will return the brief formatted output.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Example

Input
Get-HXProtectionGroup -ClusterIP 10.198.14.227 -GroupName ABC -Brief
Output
    Group Name: Group1
    Group ID: 6ed3920a-7fc4-4f92-8da5-814f98f05f5c
    Group ProtectionStatus: ACTIVE
    Group Members:
    VM Name: vm1
    VM ProtectionStatus: ACTIVE
    VM ID: 421f57c4-ebbd-a64e-a32b-426a251f9f43
    Source Cluster: skmsrc_711
    Start Time: 7/15/2018 1:11:05 PM
    End Time: 7/15/2018 1:11:06 PM
    BytesReplicated: 2426
    -------------------------------------------
    Source Cluster: skmsrc_711
    Target Cluster: skmtgt_711
    Replication Interval(in Minutes): 5

Example 2

Input
Get-HXProtectionGroup -ClusterIP 10.198.14.227 -Brief
Output
    This example provides all the protection groups in the the cluster.
    ----------------------------------------------
    Group Name: ABC
    Group ID: 6ed3920a-7fc4-4f92-8da5-814f98f05f5c
    Group ProtectionStatus: ACTIVE
    Group Members:
    VM Name: vm1
    VM ProtectionStatus: ACTIVE
    VM ID: 421f57c4-ebbd-a64e-a32b-426a251f9f43
    Source Cluster: skmsrc_711
    Start Time: 7/15/2018 1:11:05 PM
    End Time: 7/15/2018 1:11:06 PM
    BytesReplicated: 2426
    -------------------------------------------
    Source Cluster: skmsrc_711
    Target Cluster: skmtgt_711
    Replication Interval(in Minutes): 5
    =====================================================================
    Group Name: Group1
    Group ID: c2d26ade-7674-44ab-982e-3bc044292738
    Group ProtectionStatus: ACTIVE
    Group Members:
    VM Name: shaz
    VM ProtectionStatus: ACTIVE
    VM ID: 421f57c4-ebbd-a64e-a32b-426a251f9f43
    Source Cluster: skmsrc_711
    Start Time: 7/15/2018 1:11:05 PM
    End Time: 7/15/2018 1:11:06 PM
    BytesReplicated: 2426
    -------------------------------------------
    Source Cluster: skmsrc_711
    Target Cluster: skmtgt_711
    Replication Interval(in Minutes): 5

New-HXProtectionGroup Cmdlet

Syntax

New-ProtectionGroup -ClusterIP <string> -GroupName <string> -Interval <string> [-QuiesceUsingTools <SwitchParameter>] [-StartTime <string>] [<CommonParameters>]

Description

Creates the new HyperFlex protection group with a schedule.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-GroupName <string>

Specify the group name for the protection group to be created. The group name parameter must not contain special characters.

Aliases

-GrpName <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Interval <string>

Specify the Interval after which the VM will be replicated. Valid values are "5 min", "15 min", "30 min", "1 hr", "90 min", "2 hr", "4 hr", "8 hr", "12 hr", and "24 hr".

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

-QuiesceUsingTools <SwitchParameter>

Specify the flag if the Quiesce has to be done using tools.

Aliases

Position?

Named

Default Value

False

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-StartTime <string>

Specify the Start Time after which the virtual machine will be protected. Valid format is M/d/yyyy HH:mm.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Example 1

Input
New-HXProtectionGroup -ClusterIP 10.198.14.227 -GroupName DemoGroup1 -Interval '1 hr'
Output
Protection Group has been created.

Example 2

Input
New-HXProtectionGroup -ClusterIP 10.198.14.114 -GroupName mittu1 -Interval '5 min' -StartTime "08/05/2018 23:53
Output
Protection Group has been created.

Add-HXProtectedVMToGroup Cmdlet

Syntax

Add-HXProtectedVMToGroup -ClusterIP <string> -GroupId <string> -VMId <string[]> [-Brief <SwitchParameter>] [<CommonParameters>]

Add-HXProtectedVMToGroup -ClusterIP <string> -GroupName <string> -VMName <string[]> [-Brief <SwitchParameter>] [<CommonParameters>]

Add-HXProtectedVMToGroup -ClusterIP <string> -GroupName <string> -VMId <string[]> [-Brief <SwitchParameter>] [<CommonParameters>]

Add-HXProtectedVMToGroup -ClusterIP <string> -GroupId <string> -VMName <string[]> [-Brief <SwitchParameter>] [<CommonParameters>]

Description

Adds HyperFlex protected virtual machines to a specified group.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-GroupId <string>

Specify the existing protection group ID to which you want to add the virtual machines.

Aliases

-Group <string>

Position?

Named

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-GroupName <string>

Specify the existing protection group name to which you want to add the virtual machines.

Aliases

Position?

Named

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMName <string[]>

Specify the list of virtual machine names you want to add to the protected group.

Aliases

-Name <string[ ]>

Position?

Named

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMID <string>

Specify the list of virtual machine ID you want to add to the protected group.

Aliases

-Id <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

-Brief <SwitchParameter>

Indicates that the command will return the brief formatted output.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Example 1

Input
Add-HXProtectedVMToGroup -ClusterIP 10.198.14.227 -GroupId cc4d1fb0-ce87-4550-a32f-2ed28ead4dad -VMId 421f008c-ee7a-b74a-559c-ad481c119b72 -Brief
Output
    Group Name: DemoGroup
    Group ID: cc4d1fb0-ce87-4550-a32f-2ed28ead4dad
    Group ProtectionStatus: ACTIVE
    Group Members:
    VM Name: 11
    VM ProtectionStatus: ACTIVE
    VM ID: 421fa002-e68b-a95c-9dbe-ae721b7b2112
    Source Cluster: skmsrc_711
    Start Time: 7/15/2018 7:11:54 PM
    End Time: 7/15/2018 7:11:54 PM
    BytesReplicated: 2421
    --------------------------------------------
    VM Name: 22
    VM ProtectionStatus: ACTIVE
    VM ID: 421f008c-ee7a-b74a-559c-ad481c119b72
    Source Cluster: skmsrc_711
    Start Time: 7/15/2018 7:11:54 PM
    End Time: 7/15/2018 7:11:54 PM
    BytesReplicated: 2505
    --------------------------------------------
    Source Cluster: skmsrc_711
    Target Cluster: skmtgt_711
    Replication Interval(in Minutes): 5
    ===================================================
    BytesReplicated: 2446

Example 2

Input
Add-HXProtectedVMToGroup -ClusterIP 10.198.5.221 -GroupName grp1 -VMName newvm1
Output
VM is added to the Group provided.

Invoke-HXPrepareGroupMigrate Cmdlet

Syntax

Invoke-HXPrepareGroupMigrate -ClusterIP <string> -GroupId <string> [<CommonParameters>]

Invoke-HXPrepareGroupMigrate -ClusterIP <string> -GroupName <string> [<CommonParameters>]

Invoke-HXPrepareGroupMigrate [[-InputObject] <ProtectionGroupInfo>] -ClusterIP <string> [<CommonParameters>]

Description

Prepares the protection group for migration.

Since the ProtectionGroup does not have a migrate functionality, it will first move the protection group out the VMs and then performing the PrepareGroupMigrate actions on the individual protected VMs.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-GroupID <string>

Specify the Group ID that you want to prepare for migration.

Aliases

-Id <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-GroupName <string>

Specify the group name that you want to prepare for migration.

Aliases

-Name <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

InputObject <ProtectionGroupInfo>

Specifies process object-ProtectionGroupInfo. Enter a variable that contains the ProtectionGroupInfo object, or type a command or expression that gets the ProtectionGroupInfo object.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Example 1

Input
 Invoke-HXPrepareGroupMigrate -ClusterIP 10.198.18.14 -GroupName Gr
OutputProtectionStatus : ACTIVE
    
    ProtectionStatusV2 : FAILOVERCOMPLETED
    
    Er : class EntityRef {
    
    Name: Gr
    
    Type: DPVMGROUP
    
    Id: 6f989156-606e-4444-b306-671467770d9e
    
    Idtype:
    
    Confignum: 0
    
    }
    
    
    Description :
    
    PrimaryEr : class EntityRef {
    
    Name: source
    
    Type: CLUSTER
    
    Id: 11125698743286105:6544070822059896282
    
    Idtype:
    
    Confignum: 0
    
    }
    
    
    Members : {}
    
    Schedule : {class ReplicationClusterErToSchedule {
    
    TargetClusterEr: class EntityRef {
    
    Name: target
    
    Type: CLUSTER
    
    Id: 6213976327835006658:4775923387153986355
    
    Idtype:
    
    Confignum: 0
    
    }
    
    
    Schedule: class ReplicationSchedule {
    
    Enabled: True
    
    IntervalInMinutes: 5
    
    StartTime: 1537516954345
    
    QuiesceType: NONE
    }
    
    
    }
    
    Ex :
    
REMARKS
    To see the examples, type: "get-help Invoke-HXPrepareGroupMigrate -examples".
    For more information, type: "get-help Invoke-HXPrepareGroupMigrate -detailed".
    For technical information, type: "get-help Invoke-HXPrepareGroupMigrate -full".
    For online help, type: "get-help Invoke-HXPrepareGroupMigrate -online"

Invoke-HXPrepareGroupRecovery Cmdlet

Syntax

Invoke-HXPrepareGroupRecovery -ClusterIP <string> -GroupId <string> [<CommonParameters>]

Invoke-HXPrepareGroupRecovery -ClusterIP <string> -GroupName <string> [<CommonParameters>]

Description

Prepares the protection group for recovery.

As the ProtectionGroup does not have a failover functionality, it first moves out the VMs from the protection group and then performs prepare group recovery on the individual protected VMs.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-GroupId <string>

Specify the group ID on which you want to perform prepare group recovery.

Aliases

-Id <string>

Position?

Named

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-GroupName <string>

Specify the group name on which you want to perform prepare group recovery.

Aliases

-Name <string>

Position?

Named

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Example

Input
Invoke-HXPrepareGroupRecovery -ClusterIP 10.198.14.229 -GroupId 6ed3920a-7fc4-4f92-8da5-814f98f05f5c
Output
    ProtectionStatusV2 : FAILOVERCOMPLETED
    Er : class EntityRef {
    Name: Group1
    Type: DPVMGROUP
    Id: 6ed3920a-7fc4-4f92-8da5-814f98f05f5c
    Idtype:
    Confignum: 0
    }
    Description :
    PrimaryEr : class EntityRef {
    Name: skmsrc_711
    Type: CLUSTER
    Id: 316711787155901742:8013209598152688184
    Idtype:
    Confignum: 0
    }
    Members : {}
    Schedule : {class ReplicationClusterErToSchedule {
    TargetClusterEr: class EntityRef {
    Name: skmtgt_711
    Type: CLUSTER
    Id: 196170859791797843:6439004119086246008
    Idtype:
    Confignum: 0
    }
    Schedule: class ReplicationSchedule {
    Enabled: True
    IntervalInMinutes: 5
    StartTime: 1531297344621
    QuiesceType: NONE
    }
    }
    }

Remove-HXProtectedVMFromGroup Cmdlet

Syntax

Remove-ProtectedVMFromGroup -ClusterIP <string> -GroupName <string> -VMName <string[]> [-Brief <SwitchParameter>] [<CommonParameters>]

Remove-ProtectedVMFromGroup -All <SwitchParameter> -ClusterIP <string> -GroupName <string> [-Brief <SwitchParameter>] [<CommonParameters>]

Remove-ProtectedVMFromGroup -ClusterIP <string> -GroupName <string> -VMId <string[]> [-Brief <SwitchParameter>] [<CommonParameters>]

Remove-ProtectedVMFromGroup -ClusterIP <string> -GroupId <string> -VMId <string[]> [-Brief <SwitchParameter>] [<CommonParameters>]

Remove-ProtectedVMFromGroup -All <SwitchParameter> -ClusterIP <string> -GroupId <string> [-Brief <SwitchParameter>] [<CommonParameters>]

Remove-ProtectedVMFromGroup -ClusterIP <string> -GroupId <string> -VMName <string[]> [-Brief <SwitchParameter>] [<CommonParameters>]

Description

Removes HyperFlex protected virtual machines from a specified group.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-GroupId <string>

Specify the existing protection group ID to which you want to add the virtual machines.

Aliases

-Group <string>

Position?

Named

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-GroupName <string>

Specify the existing protection group name to which you want to add the virtual machines.

Aliases

Position?

Named

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMName <string[]>

Specify the list of virtual machine names you want to add to the protected group.

Aliases

-Name <string[ ]>

Position?

Named

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMID <string>

Specify the list of virtual machine ID you want to add to the protected group.

Aliases

-Id <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-All <SwitchParameter>

Indicates that the command will remove all the VMs that exist in the protection group.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

-Brief <SwitchParameter>

Indicates that the command will return the brief formatted output.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Example

Input
Remove-HXProtectedVMFromGroup -ClusterIP 10.198.14.227 -GroupName Group1 -All
Output
    ProtectionStatus : ACTIVE
    ProtectionStatusV2 : ACTIVE
    Er : class EntityRef {
    Name: Group1
    Type: DPVMGROUP
    Id: 6ed3920a-7fc4-4f92-8da5-814f98f05f5c
    Idtype:
    Confignum: 0    
    }
    Description :
    PrimaryEr : class EntityRef {
    Name: skmsrc_711
    Type: CLUSTER
    Id: 316711787155901742:8013209598152688184
    Idtype:
    Confignum: 0
    }
    Members : {}
    Schedule : {class ReplicationClusterErToSchedule {
    TargetClusterEr: class EntityRef {
    Name: skmtgt_711
    Type: CLUSTER
    Id: 196170859791797843:6439004119086246008
    Idtype:
    Confignum: 0
    }
    Schedule: class ReplicationSchedule {
    Enabled: True
    IntervalInMinutes: 5
    StartTime: 1531297344621
    QuiesceType: NONE
    }
    }
    }

Remove-HXProtectionGroup Cmdlet

Syntax

Remove-HXProtectionGroup -ClusterIP <string> -GroupID <string> [<CommonParameters>]

Remove-HXProtectionGroup -ClusterIP <string> -GroupName <string> [<CommonParameters>]

Description

Removes the protection group by deleting it. All the member virtual machines become unprotected.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-GroupID <string>

Specify the existing protection group ID to which you want to add the virtual machines.

Aliases

-Grpid <string>

Position?

Named

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-GroupName <string>

Specify the existing protection group name to which you want to add the virtual machines.

Aliases

-GrpName <string>

Position?

Named

Default Value
Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Example 1

Input
Remove-HXProtectionGroup -ClusterIP 10.198.14.227 -GroupName DemoGroup1
Output
This command deletes the Group and the member VMs are unprotected.

Example 2

Input
Remove-HXProtectionGroup -ClusterIP 10.198.14.227 -GroupID 421f57c4-ebbd-a64e-a32b-426a251f9f43
Output
This command deletes the Group and the member VMs are unprotected.

Recovery Cmdlets:

Invoke-HXPrepareFailover Cmdlet

Syntax

Invoke-HXPrepareFailover -ClusterIP <string> -VMName <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Invoke-HXPrepareFailover -ClusterIP <string> -VMId <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Invoke-HXPrepareFailover [[-InputObject] <ProtectedVMInfo>] -ClusterIP <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Description

Prepares the protected VM for the failover on the protected site.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMID <string>

Specify the virtual machine ID for which the jobs have to be displayed.

Aliases

-VM <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMName <string>

Specify the name of the virtual machine for which the jobs have to be displayed.

Aliases

-name <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Async <SwitchParameter>

Indicates that the command returns immediately without waiting for the task to complete. In this mode, the output of the cmdlet is a Job ID. To get the status of job, refer to the Get-HXTaskStatus cmdlet.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Brief <SwitchParameter>

Indicates that the command will return the brief formatted output.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ValidateRecovery <SwitchParameter>

Validates whether VM already recovered and returns a warning message.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Example 1

Input
Invoke-HXPrepareFailover -ClusterIP 10.198.14.227 -VMID 421fcaff-8592-428a-61a7-0181bf0314a3 -Async
Output
{"taskId":"99a18c1d-23e8-4cf9-aedf-845dc9c832fb"}

Example 2

Input
Invoke-HXPrepareFailover -ClusterIP 10.198.14.227 -VMID 421f8bbb-540f-11e1-038a-4e66c2ebcc70 -Brief
Output
    State: COMPLETED
    Summary Step State: NOTSTARTED
    Job ID: 2d6c7d49-1ac9-4bc1-9bb7-8a0efa112d1c
    Method Name: prepareFailoverVm
    Time Submitted: 7/15/2018 7:02:47 PM
    Time Started: 7/15/2018 7:02:47 PM
    Time Elapsed: 7/15/2018 7:02:53 PM
    Message: Successfully completed prepareFailover for VMID %s

Invoke-HXFailover Cmdlet

Syntax

Invoke-HXFailover -ClusterIP <string> -VMId <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-FolderID <string>] [-FolderName <string>] [-NetworkMap <string[]>] [-PowerOn <SwitchParameter>] [-ResourcePoolID <string>] [-ResourcePoolName <string>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Invoke-HXFailover -ClusterIP <string> -VMName <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-FolderID <string>] [-FolderName <string>] [-NetworkMap <string[]>] [-PowerOn <SwitchParameter>] [-ResourcePoolID <string>] [-ResourcePoolName <string>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Invoke-HXFailover [[-InputObject] <ProtectedVMInfo>] -ClusterIP <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-FolderID <string>] [-FolderName <string>] [-NetworkMap <string[]>] [-PowerOn <SwitchParameter>] [-ResourcePoolID <string>] [-ResourcePoolName <string>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Description

Performs test failover of the protected virtual machine.

  • Mutually exclusive optional parameters are ResourcePoolName/ResourcePoolId, FolderName/FolderId, and TestNetwork/Networkmap.

  • If the source network map is invalid, the VM will failover to default network map setting(s).

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMID <string>

Specify the virtual machine ID for which the jobs have to be displayed.

Aliases

-VM <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMName <string>

Specify the name of the virtual machine for which the jobs have to be displayed.

Aliases

-name <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

-ResourcePoolName <string>

Specify the name of the resource pool.

Aliases

-RPName <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ResourcePoolID <string>

Specify the ID of the resource pool.

Aliases

-RPID <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-FolderName <string>

Specify the folder name.

Aliases

-FName <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-FolderID <string>

Specify the folder ID.

Aliases

-FID <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-NetworkMap <string[]>

Specify the network mapping.

Format is SourceNetwork1:TargetNetwork1, SourceNetwork2:TargetNetwork2.

Aliases

-NwMap <string[]>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-PowerOn <SwitchParameter>

Indicates if the VM will be powered On or Off after Test failover.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Async <SwitchParameter>

Indicates that the command returns immediately without waiting for the task to complete. In this mode, the output of the cmdlet is a Job ID. To get the status of job, refer to the Get-HXTaskStatus cmdlet.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Brief <SwitchParameter>

Indicates that the command will return the brief formatted output.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ValidateRecovery <SwitchParameter>

Validates whether VM already recovered and returns a warning message.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Example 1

Input
Invoke-HXFailover -VMID 421ffa79-7380-4b72-7bd8-6651b11def58 -PowerOn -ClusterIP 10.198.14.229 -FolderName DemoFolder -NetworkMap "Storage Controller Data Network:VM Network" -Async
Output
{"taskId":"d92559c6-2396-4757-a500-96ad11820bbd"}

Example 2

Input
Invoke-HXFailover -VMName DemoVM3 -ClusterIP 10.198.14.229 -Brief
Output
    Failover of VM Completed
    State: COMPLETED
    Summary Step State: NOTSTARTED
    Job ID: 2c611807-260d-45cf-9294-4f93a84204a1
    Method Name: failoverVm
    Time Submitted: 7/15/2018 5:44:00 PM
    Time Started: 7/15/2018 5:44:00 PM
    Time Elapsed: 7/15/2018 5:44:05 PM
    Message: Successfully completed %s recovery for VM %s

Example 3

Input
Invoke-HXFailover -ClusterIP 10.198.5.221 -VMName testvm2 -ResourcePoolName RPName -PowerOn
Output
 Failover of VM Completed in the Resource Pool provided.

Invoke-HXPrepareReverseProtect Cmdlet

Syntax

Invoke-HXPrepareReverseProtect -ClusterIP <string> -VMName <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Invoke-HXPrepareReverseProtect -ClusterIP <string> -VMId <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Invoke-HXPrepareReverseProtect [[-InputObject] <ProtectedVMInfo>] -ClusterIP <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Description

Prepares virtual machines for reverse protect on the primary site.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMName <string>

Specify the name of the virtual machine on which Prepare Reverse Protect has to be performed.

Aliases

-name <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMID <string>

Specify the virtual machine ID on which Prepare Reverse Protect has to be performed.

Aliases

-vm <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

-Async <SwitchParameter>

Indicates that the command returns immediately without waiting for the task to complete. In this mode, the output of the cmdlet is a Job Id. To get the status of job, refer to Get-HXTaskStatus.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Brief <SwitchParameter>

Indicates that the command will return the brief formatted output.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ValidateRecovery <SwitchParameter>

Validates whether VM already recovered and returns a warning message.

Aliases

-vm <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Example 1

Input
Invoke-HXPrepareReverseProtect -ClusterIP 10.198.14.227 -VMID 421f0f84-0b3f-fe3a-311c-763f409b3665 -Async
Output
{"taskId":"99a18c1d-23e8-4cf9-aedf-845dc9c832fb"}

Example 2

Input
Invoke-HXPrepareReverseProtect -ClusterIP 10.198.14.227 -VMName DemoVM2 -Brief
Output
    Method Name: prepareReverseProtectVm
    Time Submitted: 7/15/2018 5:52:27 PM
    Time Started: 7/15/2018 5:52:27 PM
    Time Elapsed: 7/15/2018 5:52:28 PM
    Message: Successfully completed prepareReverseProtect for vm: %s

Invoke-HXReverseProtect Cmdlet

Syntax

Invoke-HXReverseProtect -ClusterIP <string> -VMName <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-SecondaryOnly <SwitchParameter>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Invoke-HXReverseProtect -ClusterIP <string> -VMId <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-SecondaryOnly <SwitchParameter>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Invoke-HXReverseProtect [[-InputObject] <ProtectedVMInfo>] -ClusterIP <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-SecondaryOnly <SwitchParameter>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Description

Reverse protects the virtual machines on the recovery site after the failover is complete.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMName <string>

Specify the name of the virtual machine on which Reverse Protect has to be performed.

Aliases

-name <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMID <string>

Specify the virtual machine ID on which Reverse Protect has to be performed.

Aliases

-id <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

-Async <SwitchParameter>

Indicates that the command returns immediately without waiting for the task to complete. In this mode, the output of the cmdlet is a Job ID. To get the status of job, refer to Get-HXTaskStatus.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Brief <SwitchParameter>

Indicates that the command will return the brief formatted output.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ValidateRecovery <SwitchParameter>

Validates whether VM already recovered and returns a warning message.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Example 1

Input
Invoke-HXReverseProtect -ClusterIP 10.198.14.229 -VMID 421f0f84-0b3f-fe3a-311c-763f409b3665 -Async
Output
{"taskId":"8d26dfba-ed64-4768-9960-62d40865e51e"}

Example 2

Input
Invoke-HXReverseProtect -ClusterIP 10.198.14.229 -VMName DemoVM1 -Brief
Output
    Reverse Protect of VM Completed
    State: COMPLETED
    Summary Step State: NOTSTARTED
    Job ID: 5d154cf0-ff85-482a-ae7c-252c0ca324b8
    Method Name: reverseProtectVm
    Time Submitted: 7/15/2018 5:57:49 PM
    Time Started: 7/15/2018 5:57:49 PM
    Time Elapsed: 7/15/2018 5:57:49 PM
    Message: Successfully completed reverseProtect for vm: %s

Invoke-HXTestFailover Cmdlet

Syntax

Invoke-HXTestFailover -ClusterIP <string> -VMName <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-FolderID <string>] [-FolderName <string>] [-NetworkMap <string[]>] [-NewName <string>] [-PowerOn <SwitchParameter>] [-ResourcePoolID <string>] [-ResourcePoolName <string>] [-TestNetwork <string>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Invoke-HXTestFailover -ClusterIP <string> -VMId <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-FolderID <string>] [-FolderName <string>] [-NetworkMap <string[]>] [-NewName <string>] [-PowerOn <SwitchParameter>] [-ResourcePoolID <string>] [-ResourcePoolName <string>] [-TestNetwork <string>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Invoke-HXTestFailover [[-InputObject] <ProtectedVMInfo>] -ClusterIP <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-FolderID <string>] [-FolderName <string>] [-NetworkMap <string[]>] [-NewName <string>] [-PowerOn <SwitchParameter>] [-ResourcePoolID <string>] [-ResourcePoolName <string>] [-TestNetwork <string>] [-ValidateRecovery <SwitchParameter>] <CommonParameters>]

Description

Performs test failover of the protected virtual machine.

  • Mutually exclusive optional parameters are ResourcePoolName/ResourcePoolId, FolderName/FolderId, and TestNetwork/Networkmap.

  • If the source network map is invalid, the VM will failover to default network map setting(s).

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMID <string>

Specify the virtual machine ID for which the jobs have to be displayed.

Aliases

-VM <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMName <string>

Specify the name of the virtual machine for which the jobs have to be displayed.

Aliases

-Name <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

-ResourcePoolName <string>

Specify the name of the resource pool.

Aliases

-RPName <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ResourcePoolId <string>

Specify the ID of the resource pool.

Aliases

-RPId <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-FolderName <string>

Specify the folder name.

Aliases

-FName <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-FolderID <string>

Specify the folder ID.

Aliases

-FId <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-TestNetwork <string>

Specify the network to test.

Aliases

-TestNw <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-NetworkMap <string[]>

Specify the network mapping.

Aliases

-NwMap <string[]>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-NewName <string>

To change the name of the virtual machine after failover is successful, specify a new name for the VM.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-PowerOn <SwitchParameter>

Indicates if the VM will be powered On or Off after Test failover.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Async <SwitchParameter>

Indicates that the command returns immediately without waiting for the task to complete. In this mode, the output of the cmdlet is a Job ID. To get the status of job, refer to the Get-HXTaskStatus.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Brief <SwitchParameter>

Indicates that the command will return the brief formatted output.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ValidateRecovery <SwitchParameter>

Validates whether VM already recovered and returns a warning message.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Example 1

Input
Invoke-HXTestFailover -VMName DemoVM2 -ClusterIP 10.198.14.229 -ResourcePoolName DemoRP -Brief
Output
    Test Failover of VM Completed
    State: COMPLETED
    Summary Step State: NOTSTARTED
    Job ID: 5b1cdaf6-bca9-42a3-b6a8-b1f7d16e7d29
    Method Name: failoverVm
    Time Submitted: 7/15/2018 5:39:08 PM
    Time Started: 7/15/2018 5:39:09 PM
    Time Elapsed: 7/15/2018 5:39:23 PM
    Message: Successfully completed %s recovery for VM %s

Example 2

Input
Invoke-HXTestFailover -VMName DemoVM2 -ClusterIP 10.198.14.229 -FolderName DemoFLDR -Async
Output
{"taskId":"d92559c6-2396-4757-a500-96ad11820bbd"}

Invoke-HXMigrate Cmdlet

Syntax

Invoke-HXMigrate -ClusterIP <string> -VMId <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-FolderID <string>] [-FolderName <string>] [-NetworkMap <string[]>] [-PowerOn <SwitchParameter>] [-ResourcePoolID <string>] [-ResourcePoolName <string>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Invoke-HXMigrate -ClusterIP <string> -VMName <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-FolderID <string>] [-FolderName <string>] [-NetworkMap <string[]>] [-PowerOn <SwitchParameter>] [-ResourcePoolID <string>] [-ResourcePoolName <string>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Invoke-HXMigrate [[-InputObject] <ProtectedVMInfo>] -ClusterIP <string> [-Async <SwitchParameter>] [-Brief <SwitchParameter>] [-FolderID <string>] [-FolderName <string>] [-NetworkMap <string[]>] [-PowerOn <SwitchParameter>] [-ResourcePoolID <string>] [-ResourcePoolName <string>] [-ValidateRecovery <SwitchParameter>] [<CommonParameters>]

Description

Performs the migrate action of the protected virtual machine to the recovery site.

  • Mutually exclusive optional parameters are ResourcePoolName/ResourcePoolId, and FolderName/FolderId.

  • If the source network map is invalid, the VM will failover to default network map setting(s).

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMID <string>

Specify the virtual machine ID for which the jobs have to be displayed.

Aliases

-VM <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-VMName <string>

Specify the name of the virtual machine for which the jobs have to be displayed.

Aliases

-name <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

-Async <SwitchParameter>

Indicates that the command returns immediately without waiting for the task to complete. In this mode, the output of the cmdlet is a Job ID. To get the status of job, refer to the Get-HXTaskStatus cmdlet.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Brief <SwitchParameter>

Indicates that the command will return the brief formatted output.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ValidateRecovery <SwitchParameter>

Validates whether VM already recovered and returns a warning message.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-InputObject <ProtectedVMInfo>

Specifies the that the named object-ProtectedVMInfo.Enter object be filtered.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ResourcePoolName <string>

Specify the name of the resource pool.

Aliases

-RPName <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ResourcePoolID <string>

Specify the ID of the resource pool.

Aliases

-RPID <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-FolderName <string>

Specify the folder name.

Aliases

-FName <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-FolderID <string>

Specify the folder ID.

Aliases

-FID <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-NetworkMap <string[]>

Specify the network mapping.

Format is SourceNetwork1:TargetNetwork1, SourceNetwork2:TargetNetwork2.

Aliases

-NwMap <string[]>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-PowerOn <SwitchParameter>

Indicates if the VM will be powered On or Off after Test failover.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

The Invoke-HXMigrate cmdlet supports the following common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable

For more information, see About CommonParameters.

Example 1

Input
Invoke-HXMigrate -VMId 423f2a33-2255-ca1e-62ec-4adf21dc884a -PowerOn -ClusterIP 10.198.18.14 -FolderName 
    DemoFolder -NetworkMap "Storage Controller Data Network:VM Network" -Async
Output
{"taskId":"48337705-1e29-494d-aec2-0b23797f3f09"}

Example 2

Input
Invoke-HXMigrate -ClusterIP 10.198.18.14 -VMName NewVM1 -Brief
Output
    Migrate of VM Completed
    
    State: COMPLETED
    
    Summary Step State: SUCCEEDED
    
    Job ID: 3d28616f-61d4-4067-971d-e5ab85711d6b
    
    Method Name: Migrate
    
    Time Submitted: 9/24/2018 5:16:15 AM
    
    Time Started: 9/24/2018 5:16:15 AM
    
    Time Elapsed: 9/24/2018 5:17:39 AM
    
    Message: Successfully completed migrate for VM: %s

Example 3

Input
Invoke-HXMigrate -ClusterIP 10.198.18.14 -VMName NewVM4 -ResourcePoolName RPName -PowerOn -Async
Output
 {"taskId":"4536296e-4420-47f2-823f-efccac25a9e0"}
REMARKS
    To see the examples, type: "get-help Invoke-HXMigrate -examples".
    For more information, type: "get-help Invoke-HXMigrate -detailed".
    For technical information, type: "get-help Invoke-HXMigrate -full".
    For online help, type: "get-help Invoke-HXMigrate -online"

Task Cmdlets:

Get-HXTaskStatus Cmdlet

Syntax

Get-HXTaskStatus -ClusterIP <string> -TaskId <string> [-Brief <SwitchParameter>] [-TaskState <string>] [-TaskType <string>] [<CommonParameters>]

Get-HXTaskStatus -ClusterIP <string> -TaskName <string> [-Brief <SwitchParameter>] [-TaskState <string>] [-TaskType <string>] [<CommonParameters>]

Get-HXTaskStatus -ClusterIP <string> [-Brief <SwitchParameter>] [-TaskState <string>] [-TaskType <string>] [<CommonParameters>]

Description

Gets the task status of a HyperFlex cluster.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

-TaskName <string>

Indicates the task name.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-TaskID <string>

Indicates the task ID.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-TaskType <string>

Indicates the task type. Accepted values are All, CLUSTER, NODE_MAINTENANCE_MODE, CLUSTER_EXPANSION, CLUSTER_UPGRADE, VM_SNAPSHOT, VM_CLONE, SED, DR_NETWORK, DR_REPLICATION_NETWORK_CHECK, DR_REPLICATION_PAIR_NETWORK_CHECK, DR_DATASTORE_MAP, VOLUME, DR_UPGRADE_MTU_INVENTORY, RECOVERY, SYNC.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-TaskState <string>

Indicates the task state. Accepted values are All, NEW, RUNNING, SUCCEEDED, FAILED.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-Brief <SwitchParameter>

Indicates that the command will return the brief formatted output.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Common Parameters

The Get-HXTaskStatus cmdlet supports the following common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable

For more information, see About CommonParameters.

Example 1

Input
Get-HXTaskStatus -ClusterIP 10.198.14.227 -TaskName task4
Output
This command uses the TaskName parameter to get the task status for a specific task in the cluster.

Example 2

Input
Get-HXTaskStatus -ClusterIP 10.198.14.227 -Brief
Output
This command displays all the tasks that have been created in the cluster.

Wait-HXTask Cmdlet

Syntax

Wait-HXTask -ClusterIP <string> -Task <JobIdentity[]> [<CommonParameters>]

Wait-HXTask -ClusterIP <string> -TaskId <string[]> [<CommonParameters>]

Wait-HXTask -ClusterIP <string> [-InputObject <HxTaskDT>] [<CommonParameters>]

Description

Waits for the completion of the specified tasks.

Required Parameters

-ClusterIP <string>

Specify the IP address of the HyperFlex cluster.

Aliases

-Server <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

- Task <JobIdentity[]>

Indicates the task object of TaskIdentity task.

Aliases

-TaskID <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-TaskId <string[]>

Indicates the task ID.

Aliases

ID

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-InputObject <HxTaskDT>

Specifies the HxTaskDT object that is returned from the Get-HXClusterTasks cmdlet. Enter a variable that contains the HxTaskDT object, or type a command, or enter an expression that gets the HxTaskDT object.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Common Parameters

The Wait-HXTask cmdlet supports the following common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable.

For more information, see About CommonParameters.

Example

Input
Wait-HXTask -ClusterIP 10.198.14.229 -TaskId 5b1cdaf6-bca9-42a3-b6a8-b1f7d16e7d29
Output
    -----------------------------
    Step Status
    -------------------------------------------    
    Name:TestFailover    
    Description:Test Failover completed for VM vmC4    
    State:SUCCEEDED    
    -------------------------------------------    
    Step Status    
    -------------------------------------------    
    Name:Step1    
    Description:Summary Step    
    State:SUCCEEDED    
    -------------------------------------------

Runbook Cmdlets:

New-HXRunbook Cmdlet

Syntax

Syntax to generate Runbook for a specific recovery mode to run in parallel, by passing all the mandatory and optional parameters.

New-HXRunbook -RecoveryMode <String> -ProtectedSiteClusterIP <IPAddress> -ProtectedSiteClusterCreds <PSObject[]> -RecoverySiteClusterIP <IPAddress> -RecoverySiteClusterCreds <PSObject[]> -ProtectedSiteVCenterIP <IPAddress> -ProtectedSiteVCenterCreds <PSObject[]> -RecoverySiteVCenterIP <IPAddress> -RecoverySiteVCenterCreds <PSObject[]> [-ParallelRecoveryLimit <Int32>] [-DelayBetweenRecovery <Int32>] [-DelayInPowerOn <Int32>] [-RunbookFolder <String>] [-ResourcePoolName <String>] [-FolderName <String>] [-TestNetwork <String>] [-TestVmPrefix <String>] [-NetworkMap <PSObject[]>] [-ProtectionGroup <PSObject[]>] [-persistConnection] <CommonParameters>

Syntax to generate Runbook for a specific recovery mode to run in parallel, by letting the system to get credentials while executing the command.

New-HXRunbook -RecoveryMode <String> -ProtectedSiteClusterIP <IPAddress> -RecoverySiteClusterIP <IPAddress> -ProtectedSiteVCenterIP <IPAddress> -RecoverySiteVCenterIP <IPAddress> [-ParallelRecoveryLimit <Int32>] [-DelayBetweenRecovery <Int32>] [-DelayInPowerOn <Int32>] [-RunbookFolder <String>] [-ResourcePoolName <String>] [-FolderName <String>] [-TestNetwork <String>] [-TestVmPrefix <String>] [-NetworkMap <PSObject[]>] [-ProtectionGroup <PSObject[]>] [-persistConnection] <CommonParameters>

Syntax to generate Runbook for a specific recovery mode to run in sequential order, by passing all the mandatory and optional parameters.

New-HXRunbook -RecoveryMode <String> -ProtectedSiteClusterIP <IPAddress> -ProtectedSiteClusterCreds <PSObject[]> -RecoverySiteClusterIP <IPAddress> -RecoverySiteClusterCreds <PSObject[]> -ProtectedSiteVCenterIP <IPAddress> -ProtectedSiteVCenterCreds <PSObject[]> -RecoverySiteVCenterIP <IPAddress> -RecoverySiteVCenterCreds <PSObject[]> -SequentialRecovery [-DelayBetweenRecovery <Int32] [-DelayInPowerOn <Int32>] [-RunbookFolder <String>] [-ResourcePoolName <String>] [-FolderName <String>] [-TestNetwork <String>] [-TestVmPrefix <String>] [-NetworkMap <PSObject[]>] [-persistConnection] <CommonParameters>

Syntax to generate Runbook for a specific recovery mode to run in sequential order, by letting the system to get credentials while executing the command.

New-HXRunbook -RecoveryMode <String> -ProtectedSiteClusterIP <IPAddress> -RecoverySiteClusterIP <IPAddress> -ProtectedSiteVCenterIP <IPAddress> -RecoverySiteVCenterIP <IPAddress> -SequentialRecovery [-DelayBetweenRecovery <Int32>] [-DelayInPowerOn <Int32>][-RunbookFolder <String>] [-ResourcePoolName <String>] [-FolderName <String>] [-TestNetwork <String>] [-TestVmPrefix <String>] [-NetworkMap <PSObject[]>] [-persistConnection] <CommonParameters>

Syntax to regenerate Runbook for a specific recovery mode by passing parameters through JSON file.

New-HXRunbook [-JsonInputFile <String>] [-ProtectedSiteClusterCreds <PSObject[]>] [-RecoverySiteClusterCreds <PSObject[]>] [-ProtectedSiteVCenterCreds <PSObject[]>] [-RecoverySiteVCenterCreds <PSObject[]>] [-RunbookFolder <String>] [-persistConnection] [<CommonParameters>]

Syntax to regenerate Runbook for a specific recovery mode by passing JSON configuration variable.

New-HXRunbook [-JsonConfigVariable <PSObject>] [-ProtectedSiteClusterCreds <PSObject[]>] [-RecoverySiteClusterCreds <PSObject[]>] [-ProtectedSiteVCenterCreds <PSObject[]>] [-RecoverySiteVCenterCreds <PSObject[]>] [-RunbookFolder <String>] [-persistConnection] [<CommonParameters>]

Description

Generates runbook for various recovery scenarios. The New-HXRunbook cmdlet supports the following workflows: Test Recovery, Planned Migration, and Disaster Recovery.

Required Parameters

-RecoveryMode <String>

Specify the recovery mode for which the runbook has to be generated. The valid recovery modes are: 'TestRecovery','DisasterRecovery', and 'PlannedMigration'.

Aliases

Mode

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ProtectedSiteClusterIP <IPAddress>

Specify the IP address of the protected site cluster.

Aliases

PriCluIP

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ProtectedSiteClusterCreds <PSObject[]>

Specify the credentials of the protected site cluster.

Aliases

PriCluCred

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-RecoverySiteClusterIP <IPAddress>

Specify the IP address of the recovery site cluster.

Aliases

SecCluIP

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-RecoverySiteClusterCreds <PSObject[]>

Specify the credentials of the recovery site cluster.

Aliases

SecCluCred

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ProtectedSiteVCenterIP <IPAddress>

Specify the IP address of the protected site vCenter server.

Aliases

PriVCIP

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ProtectedSiteVCenterCreds <PSObject[]>

Specify the credentials of the protected site vCenter server.

Aliases

PriVCCred

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-RecoverySiteVCenterIP <IPAddress>

Specify the IP address of the recovery site vCenter server.

Aliases

SecVCIP

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-RecoverySiteVCenterCreds <PSObject[]>

Specify the credentials of the recovery site vCenter server

Aliases

SecVCCred

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-JsonInputFile <String>

If you want to regenerate a runbook with some updates to the variables in the JSON file of the generated runbook, do required updates in the JSON file and specify path of the customized JSON input file to regenerate the runbook.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-JsonConfigVariable <PSObject>

If you want to regenerate a runbook with some updates to the variables in the JSON file of the generated runbook, specify JSON config variable ($HXJsonConfig) to regenerate the runbook.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Optional Parameters

-ParallelRecoveryLimit <Int32>

Specify the maximum limit for executing multiple recovery jobs in parallel at once. The default value is 10. The passed value must be lesser than or equal to 10.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-DelayInPowerOn <Int32>

Specify the time delay, in seconds between when a device first powers on and when it starts responding to commands sent to the VMs.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-SequentialRecovery [<SwitchParameter>]

Switch to enable recovery of VMs in a sequential order.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-DelayBetweenRecovery <Int32>

Specify the duration in seconds to delay the recovery operation of subsequent VMs when recovery operation is run in parallel or sequential order.

Aliases

Position?

Named

Default Value

0

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-RunbookFolder <String>

Specify the path of a new output folder in which the generated runbook files have to be saved. The default path is C:\Runbooks.

Aliases

Position?

Named

Default Value

"C:\Runbooks"

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ResourcePoolName <String>

Specify the target resource pool name where all the VMs have to be recovered or migrated. This pool name is applicable for all the protected VMs.

Aliases

RPool

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-FolderName <String>

Specify the folder name where all the VMs have to be recovered or migrated. This folder name is applicable for all the protected VMs.

Aliases

FName

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-TestNetwork <String>

Specify the test network for test recovery.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-TestVmPrefix <String>

Specify the prefix name that needs to be added to VM after test recovery.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-NetworkMap <PSObject[]>

Specify the network mapping in the following format:

"SourceNetwork1:TargetNetwork1","SourceNetwork2:TargetNetwork2"

Aliases

NMap

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ProtectionGroup <PSObject[]>

Specify one or more protection groups.

Aliases

Group

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

PersistConnection [<SwitchParameter>]

Switch to persist cluster connection even after runbook generation.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Common Parameters

The New-HXRunbook cmdlet supports the following common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable.

For more information, see About CommonParameters.

Example 1

Generate a runbook for all the protected VMs for the Test Recovery scenario.

Input 
New-HXRunbook -RecoveryMode 'TestRecovery' -ProtectedSiteClusterIP "10.10.10.0" 
-ProtectedSiteClusterCreds "user","password" -RecoverySiteClusterIP "10.10.10.1" 
-RecoverySiteClusterCreds "user","password" -ProtectedSiteVCenterIP "10.10.10.11" 
-ProtectedSiteVCenterCreds "user","password" -RecoverySiteVCenterIP "10.10.10.12" 
-RecoverySiteVCenterCreds "user","password"
Output
INFO: Generating 'TestRecovery' runbook.
INFO: Runbook has been successfully generated.
INFO: Target Folder:'C:\Runbooks\Runbook-TestRecovery-Parallel_(13-Feb-2019_15-32)'
INFO: Runbook file:'Runbook-TestRecovery-(13-Feb-2019_15-32).ps1'
INFO: Json file:'Json-TestRecovery-(13-Feb-2019_15-32).json'
INFO: Json Configuration Variable:$HXJsonConfig
INFO: Cleanup file:'CleanupScript-TestRecovery-(13-Feb-2019_15-32).ps1'

Note

The Cleanup file is generated only for the test recovery mode. The Cleanup file is used to cleanup the secondary site.


Example 2

Generate a runbook for all the protected VMs for the Disaster Recovery scenario.

Input 
New-HXRunbook -RecoveryMode 'DisasterRecovery' -ProtectedSiteClusterIP "10.10.10.0" 
-ProtectedSiteClusterCreds "user","password" -RecoverySiteClusterIP "10.10.10.1" 
-RecoverySiteClusterCreds "user","password" -ProtectedSiteVCenterIP "10.10.10.11" 
-ProtectedSiteVCenterCreds "user","password" -RecoverySiteVCenterIP "10.10.10.12" 
-RecoverySiteVCenterCreds "user","password"
Output
INFO: Generating 'DisasterRecovery' runbook.
INFO: Runbook has been successfully generated.
INFO: Target Folder:     'C:\Runbooks\Runbook-DisasterRecovery-Parallel_(13-Feb-2019_15-32)'
INFO: Runbook file:      'Runbook-DisasterRecovery-(13-Feb-2019_15-32).ps1'
INFO: Json file:         'Json-DisasterRecovery-(13-Feb-2019_15-32).json'
INFO: Json Configuration Variable:       $HXJsonConfig
INFO: ReverseProtect file:       'ReverseProtect_Script_(13-Feb-2019_15-32).ps1'

Note

The ReverseProtect file is generated only for the disaster recovery mode. The ReverseProtect file is used to recover the secondary site after disaster.


Example 3

Generate a runbook for all the protected VMs for the Planned Migration scenario.

Input 
New-HXRunbook -RecoveryMode 'PlannedMigration' -ProtectedSiteClusterIP "10.10.10.0" 
-ProtectedSiteClusterCreds "user","password" -RecoverySiteClusterIP "10.10.10.1" 
-RecoverySiteClusterCreds "user","password" -ProtectedSiteVCenterIP "10.10.10.11" 
-ProtectedSiteVCenterCreds "user","password" -RecoverySiteVCenterIP "10.10.10.12" 
-RecoverySiteVCenterCreds "user","password"
Output
INFO: Generating 'PlannedMigration' runbook.
INFO: Runbook has been successfully generated.
INFO: Target Folder:'C:\Runbooks\Runbook-PlannedMigration-Parallel_(13-Feb-2019_15-31)'
INFO: Runbook file:'Runbook-PlannedMigration-(13-Feb-2019_15-31).ps1'
INFO: Json file:'Json-PlannedMigration-(13-Feb-2019_15-31).json'
INFO: Json Configuration Variable: $HXJsonConfig

Example 4

Generate a runbook for all the protected VMs for the Planned Migration scenario by passing addtional parameters such as FolderName and NetworkMap.

Input 
New-HXRunbook -RecoveryMode 'PlannedMigration' -ProtectedSiteClusterIP "10.10.10.0" 
-ProtectedSiteClusterCreds "user","password" -RecoverySiteClusterIP "10.10.10.1" 
-RecoverySiteClusterCreds "user","password" -ProtectedSiteVCenterIP "10.10.10.11" 
-ProtectedSiteVCenterCreds "user","password" -RecoverySiteVCenterIP "10.10.10.12" 
-RecoverySiteVCenterCreds "user","password" -NetworkMap "SourceNetwork1:TargetNetwork1",
"SourceNetwork2:TargetNetwork2" -FolderName "Recovery_Folder"
Output
INFO: Generating 'PlannedMigration' runbook.
INFO: Runbook has been successfully generated.
INFO: Target Folder:'C:\Runbooks\Runbook-PlannedMigration-Parallel_(13-Feb-2019_15-31)'
INFO: Runbook file:'Runbook-PlannedMigration-(13-Feb-2019_15-31).ps1'
INFO: Json file:'Json-PlannedMigration-(13-Feb-2019_15-31).json'
INFO: Json Configuration Variable: $HXJsonConfig

Example 5

Generate a runbook by passing the modified JSON file with customized VM details.

Input 
New-HXRunbook -JsonInputFile "C:\Runbooks\Runbook-TestRecovery-Parallel_(08-Nov-2018_13-28)
\Json-TestRecovery-Parallel_(08-Nov-2018_13-28).json"
Output
INFO: Generating 'TestRecovery' runbook.
INFO: Runbook has been successfully generated.
INFO: Target Folder:'C:\Runbooks\Runbook-TestRecovery-Parallel_(13-Feb-2019_15-32)'
INFO: Runbook file:'Runbook-TestRecovery-(13-Feb-2019_15-32).ps1'
INFO: Json file:'Json-TestRecovery-(13-Feb-2019_15-32).json'
INFO: Json Configuration Variable:$HXJsonConfig
INFO: Cleanup file:'CleanupScript-TestRecovery-(13-Feb-2019_15-32).ps1'

Example 6

Generate a runbook for a specific protection group for the Test Recovery scenario.

Input
New-HXRunbook -RecoveryMode 'TestRecovery' -ProtectedSiteClusterIP "10.10.10.0" -ProtectedSiteClusterCreds 
"user","password" -RecoverySiteClusterIP "10.10.10.1" -RecoverySiteClusterCreds "user","password" 
-ProtectedSiteVCenterIP "10.10.10.11" -ProtectedSiteVCenterCreds "user","password" -RecoverySiteVCenterIP "10.10.10.12" 
-RecoverySiteVCenterCreds "user","password" -ProtectionGroup "group1"
Output
INFO: Generating 'TestRecovery' runbook.
INFO: Runbook has been successfully generated.
INFO: Target Folder:'C:\Runbooks\Runbook-TestRecovery-Parallel_(12-Jun-2019_15-32)'
INFO: Runbook file:'Runbook-TestRecovery-(12-Jun-2019_15-32).ps1'
INFO: Json file:'Json-TestRecovery-(12-Jun-2019_15-32).json'
INFO: Json Configuration Variable:$HXJsonConfig
INFO: Cleanup file:'CleanupScript-TestRecovery-(12-Jun-2019_15-32).ps1'

Invoke-HXRunbook Cmdlet

Syntax

Invoke-HXRunbook [-RecoveryMode <String>] [-ProtectedSiteClusterIP <IPAddress>] [-ProtectedSiteClusterCreds <PSObject[]>] [-RecoverySiteClusterIP <IPAddress>] [-RecoverySiteClusterCreds <PSObject[]>] [-ProtectedSiteVCenterIP <IPAddress>] [-ProtectedSiteVCenterCreds <PSObject[]>] [-RecoverySiteVCenterIP <IPAddress>] [-RecoverySiteVCenterCreds <PSObject[]>] [-SequentialRecovery] [-DelayBetweenRecovery <Int32>] [-DelayInPowerOn <Int32>] [-RunbookFolder <String>] [-ResourcePoolName <String>] [-FolderName <String>] [-TestNetwork <String>] [-TestVmPrefix <String>] [-NetworkMap <PSObject[]>] [-ProtectionGroup <PSObject[]>] [-PersistConnection] [<CommonParameters>]

Invoke-HXRunbook [-JsonInputFile <String>] [-ProtectedSiteClusterCreds <PSObject[]>] [-RecoverySiteClusterCreds <PSObject[]>] [-ProtectedSiteVCenterCreds <PSObject[]>] [-RecoverySiteVCenterCreds <PSObject[]>] [-RunbookFolder <String>] [-PersistConnection] [<CommonParameters>]

Invoke-HXRunbook [-JsonConfigVariable <PSObject>] [-ProtectedSiteClusterCreds <PSObject[]>] [-RecoverySiteClusterCreds<PSObject[]>] [-ProtectedSiteVCenterCreds <PSObject[]>] [-RecoverySiteVCenterCreds <PSObject[]>] [-RunbookFolder <String>] [-PersistConnection] [<CommonParameters>]

Invoke-HXRunbook [-RecoveryMode <String>] [-ProtectedSiteClusterIP <IPAddress>] [-RecoverySiteClusterIP <IPAddress>] [-ProtectedSiteVCenterIP <IPAddress>] [-RecoverySiteVCenterIP <IPAddress>] [-ParallelRecoveryLimit <Int32>] [-DelayBetweenRecovery <Int32>] [-DelayInPowerOn <Int32>] [-RunbookFolder <String>] [-ResourcePoolName <String>] [-FolderName <String>] [-TestNetwork <String>] [-TestVmPrefix <String>] [-NetworkMap <PSObject[]>] [-ProtectionGroup <PSObject[]>] [-PersistConnection] [<CommonParameters>]

Invoke-HXRunbook [-RecoveryMode <String>] [-ProtectedSiteClusterIP <IPAddress>] [-ProtectedSiteClusterCreds<PSObject[]>] [-RecoverySiteClusterIP <IPAddress>] [-RecoverySiteClusterCreds <PSObject[]>] [-ProtectedSiteVCenterIP <IPAddress>] [-ProtectedSiteVCenterCreds <PSObject[]>] [-RecoverySiteVCenterIP <IPAddress>] [-RecoverySiteVCenterCreds <PSObject[]>] [-ParallelRecoveryLimit <Int32>] [-DelayBetweenRecovery <Int32>] [-DelayInPowerOn <Int32>] [-RunbookFolder <String>] [-ResourcePoolName <String>] [-FolderName <String>] [-TestNetwork <String>] [-TestVmPrefix <String>] [-NetworkMap <PSObject[]>] [-ProtectionGroup <PSObject[]>] [-PersistConnection] [<CommonParameters>]

Invoke-HXRunbook [-RecoveryMode <String>] [-ProtectedSiteClusterIP <IPAddress>] [-RecoverySiteClusterIP <IPAddress>] [-ProtectedSiteVCenterIP <IPAddress>] [-RecoverySiteVCenterIP <IPAddress>] [-SequentialRecovery] [-DelayBetweenRecovery <Int32>] [-DelayInPowerOn <Int32>] [-RunbookFolder <String>] [-ResourcePoolName <String>] [-FolderName <String>] [-TestNetwork <String>] [-TestVmPrefix <String>] [-NetworkMap <PSObject[]>] [-ProtectionGroup <PSObject[]>] [-PersistConnection] [<CommonParameters>]

I

Description

Generates and executes runbook for various recovery scenarios. Supported workflows: Test Recovery and Planned Migration.

Optional Parameters

JsonInputFile <String>

If you want to regenerate a runbook with some updates to the variables in the JSON file of the generated runbook, do required updates in the JSON file and specify path of the customized JSON input file to regenerate the runbook.

Aliases

-RPName <string>

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-JsonConfigVariable <PSObject>

If you want to regenerate a runbook with some updates to the variables in the JSON file of the generated runbook, specify JSON config variable ($HXJsonConfig) to regenerate the runbook.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-RecoveryMode <String>

Specify the recovery mode for which the runbook has to be generated. The valid recovery modes are: 'TestRecovery' and 'PlannedMigration'.

Aliases

Mode

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ProtectedSiteClusterIP <IPAddress>

Specify the IP address of the protected site cluster.

Aliases

PriCluIP

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ProtectedSiteClusterCreds <PSObject[]>

Specify the credentials of the protected site cluster.

Aliases

PriCluCred

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-RecoverySiteClusterIP <IPAddress>

Specify the IP address of the recovery site cluster.

Aliases

SecCluIP

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-RecoverySiteClusterCreds <PSObject[]>

Specify the credentials of the recovery site cluster.

Aliases

SecCluCred

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ProtectedSiteVCenterIP <IPAddress>

Specify the IP address of the protected site vCenter server.

Aliases

PriVCIP

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ProtectedSiteVCenterCreds <PSObject[]>

Specify the credentials of the protected site vCenter server.

Aliases

PriVCCred

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-RecoverySiteVCenterIP <IPAddress>

Specify the IP address of the recovery site vCenter server.

Aliases

SecVCIP

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-RecoverySiteVCenterCreds <PSObject[]>

Specify the credentials of the recovery site vCenter server

Aliases

SecVCCred

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ParallelRecoveryLimit <Int32>

Specify the maximum limit for executing multiple recovery jobs in parallel at once. The default value is 10. The passed value must be lesser than or equal to 10.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-SequentialRecovery [<SwitchParameter>]

Switch to enable recovery of VMs in a sequential order.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-DelayBetweenRecovery <Int32>

Specify the duration in seconds to delay the recovery operation of subsequent VMs when recovery operation is run in parallel or sequential order.

Aliases

Position?

Named

Default Value

0

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-DelayInPowerOn <Int32>

Specify the time delay, in seconds between when a device first powers on and when it starts responding to commands sent to the VMs.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-RunbookFolder <String>

Specify the path of a new output folder in which the generated runbook files have to be saved. The default path is C:\Runbooks.

Aliases

Position?

Named

Default Value

"C:\Runbooks"

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-ResourcePoolName <String>

Specify the target resource pool name where all the VMs have to be recovered or migrated. This pool name is applicable for all the protected VMs.

Aliases

RPool

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-FolderName <String>

Specify the folder name where all the VMs have to be recovered or migrated. This folder name is applicable for all the protected VMs.

Aliases

FName

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-TestNetwork <String>

Specify the test network for test recovery.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

-NetworkMap <PSObject[]>

Specify the network mapping in the following format:

"SourceNetwork1:TargetNetwork1","SourceNetwork2:TargetNetwork2"

Aliases

NMap

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

PersistConnection [<SwitchParameter>]

Switch to persist cluster connection even after runbook generation.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Common Parameters

The New-HXRunbook cmdlet supports the following common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable.

For more information, see About CommonParameters.

Example 1

Generate and execute a runbook for all protected VMs for 'Test Recovery' Scenario.

Input
Invoke-HXRunbook -RecoveryMode 'TestRecovery' -ProtectedSiteClusterIP "10.10.10.0" -ProtectedSiteClusterCreds 
    "user","password" -RecoverySiteClusterIP "10.10.10.1" -RecoverySiteClusterCreds "user","password" 
    -ProtectedSiteVCenterIP "10.10.10.11" -ProtectedSiteVCenterCreds "user","password" -RecoverySiteVCenterIP "10.10.10.12" 
    -RecoverySiteVCenterCreds "user","password"

Example 2

Generate and execute a runbook for all protected VMs for 'Planned Migration' Scenario.

Input
Invoke-HXRunbook -RecoveryMode 'PlannedMigration' -ProtectedSiteClusterIP "10.10.10.0" -ProtectedSiteClusterCreds 
    "user","password" -RecoverySiteClusterIP "10.10.10.1" -RecoverySiteClusterCreds "user","password" 
    -ProtectedSiteVCenterIP "10.10.10.11" -ProtectedSiteVCenterCreds "user","password" -RecoverySiteVCenterIP "10.10.10.12" 
    -RecoverySiteVCenterCreds "user","password"

Example 3

Generate and execute a runbook for all protected VMs passing addtional parameters FolderName,NetworkMap.

Input
Invoke-HXRunbook -RecoveryMode 'PlannedMigration' -ProtectedSiteClusterIP "10.10.10.0" -ProtectedSiteClusterCreds 
    "user","password" -RecoverySiteClusterIP "10.10.10.1" -RecoverySiteClusterCreds "user","password" 
    -ProtectedSiteVCenterIP "10.10.10.11" -ProtectedSiteVCenterCreds "user","password" -RecoverySiteVCenterIP "10.10.10.12" 
    -RecoverySiteVCenterCreds "user","password" -NetworkMap "SourceNetwork1:TargetNetwork1","SourceNetwork2:TargetNetwork2" 
    -FolderName "Recovery_Folder"

Example 4

Generate and execute a runbook for all protected VMs for 'Test Recovery' Scenario without cluster or vCenter login credentials.

Input
Invoke-HXRunbook -RecoveryMode 'TestRecovery' -ProtectedSiteClusterIP "10.10.10.0" -RecoverySiteClusterIP "10.10.10.1" 
    -ProtectedSiteVCenterIP "10.10.10.11" -RecoverySiteVCenterIP "10.10.10.12"

Example 5

Generate and execute a runbook for a specific protection group for 'Test Recovery' Scenario

Input
Invoke-HXRunbook -RecoveryMode 'TestRecovery' -ProtectedSiteClusterIP "10.10.10.0" -ProtectedSiteClusterCreds 
    "user","password" -RecoverySiteClusterIP "10.10.10.1" -RecoverySiteClusterCreds "user","password" 
    -ProtectedSiteVCenterIP "10.10.10.11" -ProtectedSiteVCenterCreds "user","password" -RecoverySiteVCenterIP "10.10.10.12" 
    -RecoverySiteVCenterCreds "user","password" -ProtectionGroup "group1"

Example 6

Generate and execute a runbook for multiple protection group for 'Test Recovery' Scenario.

Input
Invoke-HXRunbook -RecoveryMode 'TestRecovery' -ProtectedSiteClusterIP "10.10.10.0" -ProtectedSiteClusterCreds 
    "user","password" -RecoverySiteClusterIP "10.10.10.1" -RecoverySiteClusterCreds "user","password" 
    -ProtectedSiteVCenterIP "10.10.10.11" -ProtectedSiteVCenterCreds "user","password" -RecoverySiteVCenterIP "10.10.10.12" 
    -RecoverySiteVCenterCreds "user","password" -ProtectionGroup "group1","group2","group3"

Example 7

Generate and execute a runbook by passing modified JSON file with Global/VM level parameter customization..

Input
Invoke-HXRunbook -JsonInputFile 
    "C:\Runbooks\Runbook-TestRecovery-Parallel_(08-Feb-2019_13-28)\Json-TestRecovery-Parallel_(08-Feb-2019_13-28).json"

Example 8

Generate and execute a runbook by passing customized $HXJsonConfig (ie.JSON configuration variable).

Input
Invoke-HXRunbook -JsonConfigVariable $HXJsonConfig
REMARKS
    To see the examples, type: "get-help Invoke-HXRunbook -examples".
    For more information, type: "get-help Invoke-HXRunbook -detailed".
    For technical information, type: "get-help Invoke-HXRunbook -full".

Get-HXJsonConfig Cmdlet

Syntax

Get-HXJsonConfig [-JsonInputFile] <string> [<CommonParameters>]

Description

Customize the JSON file of runbook through PowerShell.

Required Parameters

-JsonInputFile <String>

If you want to regenerate a runbook by updateing the variables in the JSON file of the generated runbook through powershell, specify path of the JSON input file of the runbook.

Aliases

Position?

Named

Default Value

Accept Pipeline Input?

False

Accept Wildcard Characters?

False

Common Parameters

The Get-HXJsonConfig cmdlet supports the following common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable

For more information, see About CommonParameters.

Example 1

Update the JSON variable using the Get-HXJsonConfig cmdlet.

Input Get-HXJsonConfig -JsonInputFile 'C:\Runbooks\Runbook-DisasterRecovery-
Parallel_(13-Feb-2019_15-25)\Json-DisasterRecovery-Parallel_(13-Feb-2019_1
5-25).json'
Output
Imported Json File :     'C:\Runbooks\Runbook-DisasterRecovery-Parallel_(13-Feb-2019_15-25)\
Json-DisasterRecovery-Parallel_(13-Feb-2019_15-25).json'
Json Configuration Variable :    $HXJsonConfig
Steps to follow:
  (1) Update properties of the variable :  $HXJsonConfig
  (2) Run following cmdlet to generate new Runbook :  New-HXRunbook -JsonConfigVariable $HXJsonConfig

Run the following code to see the content of the JSON file.

Input
$HXJsonConfig
Output
JsonVersion            : 1.0
RecoveryMode           : DisasterRecovery
RecoveryExecutionMode  : Parallel
ProtectedSiteClusterIP : 10.198.15.9
ProtectedSiteVCenterIP : 10.198.11.158
RecoverySiteClusterIP  : 10.198.15.11
RecoverySiteVCenterIP  : 10.198.12.17
ResourcePoolName       :
FolderName             :
NetworkMap             :
DelayBetweenRecovery   : 0
ParallelRecoveryLimit  : 10
BootOrderGroup1        : {tgtVM2, tgtVm1, srcVmW1, srcVM1...}
BootOrderGroup2        : {srcVm2}
VMParams               : @{WinvVM2=; srcVmW1=; srcVm2=; tgtVm1=; tgtVM2=; srcVM1=}

Run the following command to update the recovery mode.

Input
$HXJsonConfig.RecoveryMode = "PlannedMigration"
$HXJsonConfig
Output
JsonVersion            : 1.0
RecoveryMode           : PlannedMigration
RecoveryExecutionMode  : Parallel
ProtectedSiteClusterIP : 10.198.15.9
ProtectedSiteVCenterIP : 10.198.11.158
RecoverySiteClusterIP  : 10.198.15.11
RecoverySiteVCenterIP  : 10.198.12.17
ResourcePoolName       :
FolderName             :
NetworkMap             :
DelayBetweenRecovery   : 0
ParallelRecoveryLimit  : 10
BootOrderGroup1        : {tgtVM2, tgtVm1, srcVmW1, srcVM1...}
BootOrderGroup2        : {srcVm2}
VMParams               : @{WinvVM2=; srcVmW1=; srcVm2=; tgtVm1=; tgtVM2=; srcVM1=}