Сложно оспорить то, что вы спрашиваете здесь, и я не думаю, что есть простой ответ, на который вы надеялись. Вам придется использовать разные методы в разных обстоятельствах - в частности, используете ли вы Windows на своих виртуальных машинах, или конкретный дистрибутив Linux, или что-то еще, и, кроме того, вы используете XenServer или какую-либо версию дистрибутива Linux для Xen
Один из методов заключается в изменении образа файловой системы виртуальной машины перед ее загрузкой. Таким образом, вы можете вставить скрипт в init-скрипты виртуальной машины Linux, которые будут запускаться при загрузке; в Windows (с которой я менее знаком, извините) вы можете добавить раздел реестра и программу для запуска при запуске, если сможете найти инструменты для изменения файловой системы Windows из вашего Linux dom0. Немного сложно.
Другой способ - представить виртуальный образ CD-Rom виртуальной машине с помощью сценария автозапуска. Поскольку современные операционные системы уже не просто запускают то, что они обнаружили, вам, вероятно, придется заставить пользователя щелкнуть по нему, чтобы запустить его, но в зависимости от вашей ситуации это может быть нормально.