O Virtualbox não possui um comando "executar este programa host" que pode ser executado a partir do convidado. Mas o Virtualbox Guest Additions tem "guestproperties": um mecanismo de transferência de cadeia de texto de baixa largura de banda entre host e guest, que pode ser usado com scripts para executar um programa host quando o script convidado diz.
Este comando é executado no host:
"Vboxmanage.exe guestproperty get|set /customnameclass/custompropertyname"
e isso no convidado:
"Vboxcontrol.exe guestproperty get|set /customnameclass/custompropertyname"
Um script de host pode definir uma propriedade guest usando o comando Vboxmanage para um valor 'changed' e, em seguida, obter a propriedade guest em um loop, aguardando a alteração do valor. Quando o valor é alterado, o script pode continuar a executar outros comandos desejados.
No convidado, outro script pode aguardar a disponibilização de um serviço desejado e, em seguida, definir a propriedade guest usando o comando VboxControl para o valor que o script do host está aguardando. O script pode fazer loop, continuando a definir a propriedade guest enquanto o serviço existe e não definindo a propriedade guest quando o serviço está desativado. Assim, o anfitrião pode saber quando o serviço do hóspede está presente e utilizável.
/customnameclass
e /custompropertyname
são nomes que você deseja usar. Vários canais de comunicação podem ser configurados usando diferentes nomes de classes e propriedades.
Se você não quiser ou não puder usar adições de convidado, um conceito semelhante pode ser usado com arquivos de sinalização em uma pasta compartilhada. O script convidado cria o arquivo de sinalizador (um arquivo de texto simples com um nome conhecido) na pasta compartilhada; o script do host procura o arquivo de sinalizador e executa o programa desejado.
Se você tiver o Windows para host e guest, poderá usar o "PsExec" da Microsoft Sysinternals, que executa comandos entre PCs da Microsoft em rede sem exigir um script de pesquisa no PC host.