2017-10-19 15 views
0

La présence de l'hyperviseur peut être détectée via WMI comme ceci;Détection d'une machine physique, par opposition à la détection d'une machine virtuelle

select * from Win32_ComputerSystem 

A partir de ce, lisez HypervisorPresent et si cela est vrai, alors il est présent.

équivalent commande VMIC:

ComputerSystem get HypervisorPresent 

Cela donne "vrai" pour les systèmes fonctionnant sous VMWare et VirtualBox et Hyper-V. Le problème est qu'il donne également "vrai", lorsqu'il est exécuté sur des machines physiques lorsque Hyper-V est installé, c'est-à-dire en dehors d'un système virtualisé.

Alors, ma question est la suivante:

est-il en quelque sorte possible de détecter si le système est une machine physique, même lorsque Hyper-V est installé?

J'ai eu l'idée de vérifier également si le service/rôle Hyper-V est installé, mais ce n'est pas suffisant puisque vous pouvez faire de la virtualisation imbriquée avec Hyper-V.

Répondre

0

Cochez la case « HKLM \ SOFTWARE \ Microsoft \ Virtual Machine \ Auto » la plupart du temps tous les détails hôtes stockés dans cette clé à des clients

Utilisation HKLM \ SOFTWARE \ Microsoft \ Virtual Machine \ Guest \ Parameters vous obtenez plus d'informations à ce sujet

mais ne fonctionne que pour HyperV, vous devez valider deux fois une fois pour les autres hyperviseurs et une deuxième fois pour HyperV.

Il existe une classe check this pour partager les détails de la machine virtuelle et de l'hôte. Vous pouvez Check this pour plus d'informations utiles.