VKernel Move VM Action

VKernel.CapacityAnalyzer.PRO.PowerShellMoveVm (WriteActionModuleType)

Element properties:

TypeWriteActionModuleType
IsolationAny
AccessibilityInternal
RunAsDefault
InputTypeSystem.BaseData

Member Modules:

ID Module Type TypeId RunAs 
PSMoveVmAction WriteAction Microsoft.Windows.PowerShellPropertyBagWriteAction Default

Overrideable Parameters:

IDParameterTypeSelector
HostIdstring$Config/HostId$
VmmServerNamestring$Config/VmmServerName$
VmmIdstring$Config/VmmId$

Source Code:

<WriteActionModuleType ID="VKernel.CapacityAnalyzer.PRO.PowerShellMoveVm" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="VmmId" type="xsd:string"/>
<xsd:element minOccurs="1" name="VmmServerName" type="xsd:string"/>
<xsd:element minOccurs="1" name="HostId" type="xsd:string"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="VmmId" Selector="$Config/VmmId$" ParameterType="string"/>
<OverrideableParameter ID="VmmServerName" Selector="$Config/VmmServerName$" ParameterType="string"/>
<OverrideableParameter ID="HostId" Selector="$Config/HostId$" ParameterType="string"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<WriteAction ID="PSMoveVmAction" TypeID="Windows!Microsoft.Windows.PowerShellPropertyBagWriteAction">
<ScriptName>PowerShellMoveVm.ps1</ScriptName>
<ScriptBody><Script>
Param($VmmServerName, $VmmId, $HostId)
$oAPI = new-object -comObject "MOM.ScriptAPI";
$bag = $oAPI.CreatePropertyBag();

Import-Module VirtualMachineManager

trap [Exception] {
$oAPI.LogScriptEvent("MoveVm.ps1", 101, 1, $_.Exception.Message + " ServerName: " + $VmmServerName + " VmmId: " + $VmmId + "HostId:" + $HostId);
$bag.AddValue("Error", $_.Exception.Message);
}

Get-VMMServer -computername $VmmServerName;
$VMHost = Get-VMHost &#x2013;ID $HostId
$VM = Get-VM -ID $VmmId;
$VMPath = $VMHost.VMPaths[0]
Move-VM -VM $VM -VMHost $VMHost -Path $VMPath -ErrorAction:Stop
$bag
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>VmmServerName</Name>
<Value>$Config/VmmServerName$</Value>
</Parameter>
<Parameter>
<Name>VmmId</Name>
<Value>$Config/VmmId$</Value>
</Parameter>
<Parameter>
<Name>HostId</Name>
<Value>$Config/HostId$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>1800</TimeoutSeconds>
</WriteAction>
</MemberModules>
<Composition>
<Node ID="PSMoveVmAction"/>
</Composition>
</Composite>
</ModuleImplementation>
<InputType>System!System.BaseData</InputType>
</WriteActionModuleType>