As all the virtual machines I create using Hyper-V have the same hardware I decided to investigate the PersistAllDeviceInstalls option for unattend.xml.
The PersistAllDeviceInstalls setting configures whether the Plug and Play devices are uninstalled during the generalize phase and then reinstalled during the specialize pass of the sysprep process. As all the virtual machines have the same hardware there’s no need to reinstall the Plug and Play devices and the result is a faster virtual machine deployment.
I created a fresh virtual server template with the PersistAllDeviceInstalls setting set to true and compared the setup time to the same template with PersistAllDeviceInstalls set to false.
With PersistAllDeviceInstalls set to false the setup time was 2:28. With PersistAllDeviceInstalls set to true the setup time was 1:54, a small, but 23% saving in setup time.
If you want to add the PersistAllDeviceInstalls setting to unattend.xml here’s my example.