Orchestrator Function: VcVirtualMachineAddNetwork

by Simon Sparks · January 17, 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: VcVirtualMachineAddNetwork

public VcVirtualMachineAddNetwork(objVcVirtualMachine: VcVirtualMachine, objVcNetwork?: VcNetwork, objVcDistributedVirtualPortgroup?: VcDistributedVirtualPortgroup): void {

    let objVcVirtualDeviceConnectInfo: VcVirtualDeviceConnectInfo = new VcVirtualDeviceConnectInfo();
    objVcVirtualDeviceConnectInfo.allowGuestControl = true;
    objVcVirtualDeviceConnectInfo.connected = true;
    objVcVirtualDeviceConnectInfo.startConnected = true;

    let objVcVirtualVmxnet3: VcVirtualVmxnet3 = new VcVirtualVmxnet3();
    objVcVirtualVmxnet3.unitNumber = 0;
    objVcVirtualVmxnet3.addressType = "Generated";
    objVcVirtualVmxnet3.wakeOnLanEnabled = true;
    objVcVirtualVmxnet3.connectable = objVcVirtualDeviceConnectInfo;

    if (objVcNetwork && objVcNetwork instanceof VcNetwork) {
        let objVcVirtualEthernetCardLegacyNetworkBackingInfo: VcVirtualEthernetCardLegacyNetworkBackingInfo = new VcVirtualEthernetCardLegacyNetworkBackingInfo();
        objVcVirtualEthernetCardLegacyNetworkBackingInfo.useAutoDetect = true;
        objVcVirtualEthernetCardLegacyNetworkBackingInfo.deviceName = objVcNetwork.name;

        objVcVirtualVmxnet3.backing = objVcVirtualEthernetCardLegacyNetworkBackingInfo;
    } else if (objVcDistributedVirtualPortgroup && objVcDistributedVirtualPortgroup instanceof VcDistributedVirtualPortgroup) {

        let objVcDVPortgroupConfigInfo: VcDVPortgroupConfigInfo = objVcDistributedVirtualPortgroup.config;

        let objVcDistributedVirtualSwitch: VcDistributedVirtualSwitch = objVcDVPortgroupConfigInfo.distributedVirtualSwitch;

        let objVcDistributedVirtualSwitchPortConnection: VcDistributedVirtualSwitchPortConnection = new VcDistributedVirtualSwitchPortConnection();
        objVcDistributedVirtualSwitchPortConnection.switchUuid = objVcDistributedVirtualSwitch.uuid;
        objVcDistributedVirtualSwitchPortConnection.portgroupKey = objVcDistributedVirtualPortgroup.key;

        let objVcVirtualEthernetCardDistributedVirtualPortBackingInfo: VcVirtualEthernetCardDistributedVirtualPortBackingInfo = new VcVirtualEthernetCardDistributedVirtualPortBackingInfo();
        objVcVirtualEthernetCardDistributedVirtualPortBackingInfo.port = objVcDistributedVirtualSwitchPortConnection;

        objVcVirtualVmxnet3.backing = objVcVirtualEthernetCardDistributedVirtualPortBackingInfo;
    }

    let objVcVirtualDeviceConfigSpec: VcVirtualDeviceConfigSpec = new VcVirtualDeviceConfigSpec();
    objVcVirtualDeviceConfigSpec.operation = VcVirtualDeviceConfigSpecOperation.add;
    objVcVirtualDeviceConfigSpec.device = objVcVirtualVmxnet3;

    this.VcVirtualMachineReconfigureDevice(objVcVirtualMachine, objVcVirtualDeviceConfigSpec);
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like