Function: Get All vCenter Virtual Machine Config Files on All Datastores

by Simon Sparks · 27 January 2026

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

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

Filename: PluginVCDatastoreService.ts

Function VcVmConfigFileGetAll

Description: Orchestrator Function to get all the vCenter Virtual Machine config files on all datastores.

public VcVmConfigFileGetAll(strVCenterName: string): Properties {
    let objProperties: Properties = new Properties();

    let arrVcSdkConnection: VcSdkConnection[] = VcPlugin.allSdkConnections;

    let objVcSdkConnection: VcSdkConnection = arrVcSdkConnection.find((objVcSdkConnection: VcSdkConnection) => {
        return objVcSdkConnection.name === strVCenterName;
    });

    let objVcVmConfigFileQuery: VcVmConfigFileQuery = new VcVmConfigFileQuery();

    let arrVcFileQuery: VcFileQuery[] = [];
    arrVcFileQuery.push(objVcVmConfigFileQuery);

    let objVcHostDatastoreBrowserSearchSpec: VcHostDatastoreBrowserSearchSpec = new VcHostDatastoreBrowserSearchSpec();
    objVcHostDatastoreBrowserSearchSpec.query = arrVcFileQuery;

    let arrVcHostSystem: VcHostSystem[] = objVcSdkConnection.getAllHostSystems(null, "");

    arrVcHostSystem.forEach((objVcHostSystem: VcHostSystem): void => {
        let arrVcDatastore: VcDatastore[] = objVcHostSystem.datastore;

        arrVcDatastore.forEach((objVcDatastore: VcDatastore): void => {
            this.objLogger.info(`Data Store: ${objVcDatastore.info.name}.`);

            let objVcHostDatastoreBrowser: VcHostDatastoreBrowser = objVcDatastore.browser;

            let objVcTask: VcTask = objVcHostDatastoreBrowser.searchDatastoreSubFolders_Task("[" + objVcDatastore.name + "]", objVcHostDatastoreBrowserSearchSpec);

            let arrVcHostDatastoreBrowserSearchResults: VcHostDatastoreBrowserSearchResults[] = this.WaitForVcTaskEnd(objVcTask, 1);

            arrVcHostDatastoreBrowserSearchResults.forEach((objVcHostDatastoreBrowserSearchResults: VcHostDatastoreBrowserSearchResults): void => {
                this.objLogger.info(`Data Store: ${objVcDatastore.info.name} - Folder Path: ${objVcHostDatastoreBrowserSearchResults.folderPath}.`);

                let arrVcFileInfo: VcFileInfo[] = objVcHostDatastoreBrowserSearchResults.file;

                arrVcFileInfo.forEach((objVcFileInfo: VcFileInfo): void => {
                    objProperties.put(objVcFileInfo.path.substring(0, objVcFileInfo.path.length - 4), objVcHostDatastoreBrowserSearchResults.folderPath + objVcFileInfo.path);
                });

            });

        });

    });

    return objProperties;
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like