Veja como eu faço isso:
Eu crio VMs com um script do PowerShell como parte do script que copio um VHDX existente com um SO sysprep'ed.
Eu, então, montei o VHDX e criei um arquivo unattend.xml
, bem como \Windows\Setup\Scripts\SetupComplete.cmd
, ambos específicos da nova VM.
Após desmontar o VHDX, posso iniciar a VM e tudo o mais é automático.