Function: Get All vCenter Virtual Machine Files Orphaned

by Simon Sparks · 1 October 2025

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

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

Filename: PluginVCVirtualMachineService.ts

Description: Orchestrator Function to Get all orphan virtual machine files.

Function GetOrphaned

public GetOrphaned(objVcSdkConnection: VcSdkConnection): VcVirtualMachine[] {

    let arrVcVirtualMachineOrphaned: VcVirtualMachine[] = [];

    let arrVcVirtualMachine: VcVirtualMachine[] = objVcSdkConnection.getAllVirtualMachines(null, null);

    arrVcVirtualMachine.forEach((objVcVirtualMachine: VcVirtualMachine): void => {

        let objVcVirtualMachineConfigInfo: VcVirtualMachineConfigInfo = objVcVirtualMachine.config;

        let objVcVirtualMachineFileInfo: VcVirtualMachineFileInfo = objVcVirtualMachineConfigInfo.files;

        this.objLogger.info(`File: ${objVcVirtualMachineFileInfo.vmPathName}`);

        let objVcVirtualMachineSummary: VcVirtualMachineSummary = objVcVirtualMachine.summary;

        let objVcVirtualMachineRuntimeInfo: VcVirtualMachineRuntimeInfo = objVcVirtualMachineSummary.runtime;

        if (objVcVirtualMachineRuntimeInfo.connectionState === VcVirtualMachineConnectionState["orphaned"]) {
            arrVcVirtualMachineOrphaned.push(objVcVirtualMachine);
        }

        let arrVcVirtualDisk: VcVirtualDisk[] = this.GetAllVcVirtualDisk(objVcVirtualMachine);

        arrVcVirtualDisk.forEach((objVcVirtualDisk: VcVirtualDisk): void => {

            if (objVcVirtualDisk.backing instanceof VcVirtualDiskFlatVer2BackingInfo) {

                let objVcVirtualDiskFlatVer2BackingInfo: VcVirtualDiskFlatVer2BackingInfo = objVcVirtualDisk.backing as VcVirtualDiskFlatVer2BackingInfo;

                this.objLogger.info(`File: ${objVcVirtualDiskFlatVer2BackingInfo.fileName}.`);
            }
        });
    });

    return arrVcVirtualMachineOrphaned;
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like