Function: vCenter Virtual Machine Clone

by Simon Sparks · 5 January 2026

To use this function add it to the class library file named vCenterServerService.ts

GitHub Repository: https://github.com/SimonSparksUK/Orchestrator

Filename: vCenterServerService.ts

public VcVirtualMachineClone(objVcVirtualMachine: VcVirtualMachine, strCloneName: string, objVcFolder: VcFolder): void {

    let objVcVirtualMachineRuntimeInfo: VcVirtualMachineRuntimeInfo = objVcVirtualMachine.runtime;

    let arrVcDatastore: VcDatastore[] = objVcVirtualMachine.datastore;

    let objVcVirtualMachineRelocateSpec: VcVirtualMachineRelocateSpec = new VcVirtualMachineRelocateSpec();
    objVcVirtualMachineRelocateSpec.transform = VcVirtualMachineRelocateTransformation["sparse"];
    objVcVirtualMachineRelocateSpec.pool = objVcVirtualMachine.resourcePool;
    objVcVirtualMachineRelocateSpec.host = objVcVirtualMachineRuntimeInfo.host;
    objVcVirtualMachineRelocateSpec.datastore = arrVcDatastore[0];

    let objVcVirtualMachineCloneSpec: VcVirtualMachineCloneSpec = new VcVirtualMachineCloneSpec();
    objVcVirtualMachineCloneSpec.powerOn = false;
    objVcVirtualMachineCloneSpec.memory = false;
    objVcVirtualMachineCloneSpec.template = false;
    objVcVirtualMachineCloneSpec.location = objVcVirtualMachineRelocateSpec;

    let objVcTask: VcTask = objVcVirtualMachine.cloneVM_Task(objVcFolder, strCloneName, objVcVirtualMachineCloneSpec);

    this.WaitForVcTaskEnd(objVcTask, 2);

    this.objLogger.info("Cloning task started for: " + strCloneName);
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like