Orchestrator Function: vCenter Virtual Machine Set Boot Order

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

Function: VcVirtualMachineSetBootOrder

publicVcVirtualMachineSetBootOrder(objVcVirtualMachine:VcVirtualMachine,enumBootOrder:BootOrder):boolean{
this.objLogger.info(`setBootOrder on${objVcVirtualMachine.name}`);

letarrVcVirtualDevice:VcVirtualDevice[]=this.VcVirtualMachineGetAllVcVirtualDevices(objVcVirtualMachine);

letarrVcVirtualDisk:VcVirtualDisk[]=arrVcVirtualDevice.filter((objVcVirtualDevice:VcVirtualDevice)=>{returnobjVcVirtualDeviceinstanceofVcVirtualDisk;})asVcVirtualDisk[];

letarrVcVirtualDiskKey:number[]=arrVcVirtualDisk.map<number>((objVcVirtualDisk:VcVirtualDisk)=>{returnobjVcVirtualDisk.key;});

letarrVcVirtualVmxnet3:VcVirtualVmxnet3[]=arrVcVirtualDevice.filter((objVcVirtualDevice:VcVirtualDevice)=>{returnobjVcVirtualDeviceinstanceofVcVirtualVmxnet3;})asVcVirtualVmxnet3[];

letarrVcVirtualVmxnet3Key:number[]=arrVcVirtualVmxnet3.map<number>((objVcVirtualVmxnet3:VcVirtualVmxnet3)=>{returnobjVcVirtualVmxnet3.key;});

letobjVcVirtualMachineBootOptionsBootableEthernetDevice:VcVirtualMachineBootOptionsBootableEthernetDevice=newVcVirtualMachineBootOptionsBootableEthernetDevice();
objVcVirtualMachineBootOptionsBootableEthernetDevice.deviceKey=arrVcVirtualVmxnet3Key[0];

letobjVcVirtualMachineBootOptionsBootableDiskDevice:VcVirtualMachineBootOptionsBootableDiskDevice=newVcVirtualMachineBootOptionsBootableDiskDevice();
objVcVirtualMachineBootOptionsBootableDiskDevice.deviceKey=arrVcVirtualDiskKey[0];

letobjVcVirtualMachineBootOptionsBootableCdromDevice:VcVirtualMachineBootOptionsBootableCdromDevice=newVcVirtualMachineBootOptionsBootableCdromDevice();

letarrVcVirtualMachineBootOptionsBootableDevice:VcVirtualMachineBootOptionsBootableDevice[]= [];

switch (enumBootOrder){
caseBootOrder.HDD:{
arrVcVirtualMachineBootOptionsBootableDevice= [objVcVirtualMachineBootOptionsBootableDiskDevice,objVcVirtualMachineBootOptionsBootableCdromDevice,objVcVirtualMachineBootOptionsBootableEthernetDevice];
break;
}
caseBootOrder.ISO:{
arrVcVirtualMachineBootOptionsBootableDevice= [objVcVirtualMachineBootOptionsBootableCdromDevice,objVcVirtualMachineBootOptionsBootableDiskDevice,objVcVirtualMachineBootOptionsBootableEthernetDevice];
break;
}
caseBootOrder.NET:{
break;
}
}

this.objLogger.info(`Setting boot order to${enumBootOrder.toString()} first.`);

letobjVcVirtualMachineBootOptions:VcVirtualMachineBootOptions=newVcVirtualMachineBootOptions();
objVcVirtualMachineBootOptions.bootOrder=arrVcVirtualMachineBootOptionsBootableDevice;
objVcVirtualMachineBootOptions;

letobjVcVirtualMachineConfigSpec:VcVirtualMachineConfigSpec=newVcVirtualMachineConfigSpec();
objVcVirtualMachineConfigSpec.bootOptions=objVcVirtualMachineBootOptions;

letblnResult:boolean=this.VcVirtualMachineReconfigure(objVcVirtualMachine,objVcVirtualMachineConfigSpec);

returnblnResult;
}


Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like