Depois de ler sua pergunta, pode ser útil se você discutir o contexto? Você trabalha para uma empresa que publica software de servidor que está "ligado" a um computador como parte do processo de licença e que está preocupado com a conformidade da licença em máquinas virtuais? Ou você é um sysadmin 'novo para a virtualização' que está tentando entender certos conceitos?
De qualquer forma, não acho que exista uma maneira 100% confiável de detectar que uma máquina virtual foi movida para um novo host, não. Em geral, os convidados não se importam com o que correm, dentro de alguns parâmetros amplos.
Parte da operação de virtualização é que abstrai partes da camada de hardware do sistema operacional convidado.
Quanto à mudança de um sistema para outro, mesmo que você tenha decidido medir algo como, digamos, tipo de processador e velocidade, muitos locais que configuram vários hosts virtuais tendem a comprar grupos de máquinas idênticas ou similares para construir servidores virtuais 'farms'.