In the Hyper-V GUI, it is possible to create a collection of snapshots across multiple VMs by selecting multiple VMs, then clicking Snapshot.
In PowerShell on Windows Server 2012, you can request more than one at once by passing the list of VMs as
Checkpoint-VM -VMName @('server1', 'server2') (for example). But, that does them in series, not in parallel. This matters when you have machines that interact with each other.
Can you only do this by creating snapshots as jobs and letting the asynchronous job start get it very close? Is that was the GUI is doing? Or is there a "proper" way to do this?