See also http://www.bvanleeuwen.nl/faq/?p=1236
Create vm list
$targets = Get-VM | Select Name, @{N="CBT";E={(Get-View $_).Config.ChangeTrackingEnabled}} | WHERE {$_.CBT -like "False"}
Enable CBT
ForEach ($target in $targets) { $vm = $target.Name $vmView = Get-vm $vm | get-view $vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec $vmConfigSpec.changeTrackingEnabled = $true $vmView.reconfigVM($vmConfigSpec) }
Create/Remove snapshot to enable CBT
ForEach ($target in $targets) { $vm = $target.Name Get-VM $vm | Get-Snapshot | Remove-Snapshot -confirm:$false New-Snapshot -VM (Get-VM $vm ) -Name "CBTSnap" Get-VM $vm | Get-Snapshot -Name "CBTSnap" | Remove-Snapshot -confirm:$false }