How best to apply a baseline to hundreds of VM's yet exclude a handful of specific VM's


I am using esxi 6.0 and have around 300 VM's running across multiple hosts in our cluster.

I am looking into automating the upgrade of VMWare Tools/VM versions of each of the VM's and think that using update manager with baselines is probably my best bet for this, paired with scheduled tasks.

I have a handful of VM's which are appliances (vcsa and a citrix netscaler for example) that I do not want to upgrade the tools or VM versions on because they are closely tied to the appliances version/upgrades and should not be updated outside of this or things could break/not be supported.

Basically my question is - how do I attach the baseline to 300ish VM's but not attach it to these handful of VM's... and likewise with the scheduled task for scan/remediation of the updates, without having to sit and click each VM separately.

I can't see an option on the baseline itself to add/remove vm's... if I select the cluster/host/VM folder to apply the baseline there doesn't appear to be a way to exclude specific VM's... neither can I select the specific VM, look at attached baselines and remove it there either, it just gives me the cluster/host/VM folder to remove as a whole.

If I change the view to show all VMs and select all, then ctrl click the specific vm's off my right-click option of update manager only has the option to update the VMtools option to install on reboot, the option to attach a baseline is gone. This method would work if all I needed to do was Tools, but I need VM versions as well.

Same question really for scheduling tasks and remediation of the updates... although if I could selectively target the baselines the schedules aren't too much of a problem as they wont find any updates to process.

Lastly - my VM folder structure is tied to our backup/replication software so I can't just juggle the VM's into folders and apply the baselines this way easily, it would require some redesign in backup/replication.

Any help/opinions welcome, I feel like this is a simple question and i'm just missing an obvious solution?

Tags (2)
0 Kudos
1 Reply
Hot Shot
Hot Shot

you can attach baseline to all the VM's, and run below script to detach baselines from specific ones.

connect-viserver <vcenter>

$vms = get-content c:\temp\vms.txt

$baseline = <baseline name>

Foreach($vm in $vms)


Get-VM -Name $vm | Detach-Baseline -Baseline $baseline


0 Kudos