Move-Host
VMware: Moves the specified host to another location
#Requires -Version 5.1
#Requires -Modules VMware.VimAutomation.Core
[CmdletBinding(DefaultParameterSetName = "byName")]
Param(
[Parameter(Mandatory = $true, ParameterSetName = "byID")]
[Parameter(Mandatory = $true, ParameterSetName = "byName")]
[string]$VIServer,
[Parameter(Mandatory = $true, ParameterSetName = "byID")]
[Parameter(Mandatory = $true, ParameterSetName = "byName")]
[pscredential]$VICredential,
[Parameter(Mandatory = $true, ParameterSetName = "byID")]
[string]$ID,
[Parameter(Mandatory = $true, ParameterSetName = "byName")]
[string]$Name,
[Parameter(Mandatory = $true, ParameterSetName = "byID")]
[Parameter(Mandatory = $true, ParameterSetName = "byName")]
[string]$DestinationName
)
Process {
$vmServer = $null
try {
[string[]]$Properties = @('Name', 'Id', 'PowerState', 'ConnectionState', 'IsStandalone', 'LicenseKey')
$vmServer = Connect-VIServer -Server $VIServer -Credential $VICredential -ErrorAction Stop
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
if ($PSCmdlet.ParameterSetName -eq "byID") {
$vmHost = Get-VMHost -Server $vmServer -ID $ID -ErrorAction Stop
}
else {
$vmHost = Get-VMHost -Server $vmServer -Name $Name -ErrorAction Stop
}
$destination = Get-Folder -Server $vmServer -Name $DestinationName -ErrorAction Stop
if ($null -eq $destination) {
throw "Destination $DestinationName not found"
}
$null = Move-VMHost -VMHost $vmHost -Destination $destination -Server $vmServer -Confirm:$false -ErrorAction Stop
$result = Get-VMHost -Server $vmServer -Name $vmHost.Name -NoRecursion:$true -ErrorAction Stop | Select-Object $Properties
foreach ($item in $result) {
$item | Add-Member -NotePropertyName 'Timestamp' -NotePropertyValue $timestamp -Force
Write-Output $item
}
}
catch { throw }
finally { if ($null -ne $vmServer) { Disconnect-VIServer -Server $vmServer -Force -Confirm:$false -ErrorAction SilentlyContinue } }
}IP address or DNS name of the vSphere server
PSCredential object for authenticating with the server
ID of the host to move
Name of the host to move
Destination folder name where to move the host