Se você puder mover a reinicialização para o final do script do VMware, poderá usar o parâmetro -NoRebootOnCompletion:$true
e reinicializar no final.
Senão, você pode verificar o arquivo de log usando o parâmetro -LogPath <String>
para verificar quando terminar.
Não há uma maneira confiável de saber quando o sistema está na tela de login. A melhor maneira é verificar a disponibilidade de serviços. Eu uso isso para verificar se os sistemas estão prontos:
While (!(Test-WSMan -Computername <computername> -ErrorAction SilentlyContinue)) {"Waiting for winrm...";sleep 1}