per cmd erkennen ob virtuell oder physikalisch

easy.2ci

Commodore
Registriert
Mai 2006
Beiträge
4.388
Hallo,

wir schreiben hier einige Scripte um Dinge zu automatisieren. Die Scripte werden auf eine große Zahl Rechner losgelassen, manche der Rechner sind virtuell, manche normale Desktop PCs.

Im Script brauche ich nun eine Erkennung, ob das aktuelle System virtuell oder physikalisch ist. Meine bisheriger Ansatz über den Namen des Netzwerk oder Grafikkarten Adapters zu gehen klappt nicht. Diese kann ich zwar mittels wmic auslesen, aber wir haben mehrere Virtualisierungslösungen (VirtualBox, VMware, Hyper-V) und auch bei einem der Produkte können sich je nach Version die Bezeichnungen der Treiber ändern.

Hat einer ne Idee wie man das machen kann? Muss von der Kommandozeile aus klappen, kein Perl, Python etc.
 
Du kannst den Punkt Systemhersteller abfragen da steht der Hersteller der VM drinnen z.B.

Systemhersteller: VMware, Inc.
Systemmodell: VMware Virtual Platform

So steht es zumindest unter Systeminfo drinnen, mit wmic kann man das aber auch abfragen nur weis ich da gerade nicht das Command.
 
Zuletzt bearbeitet:
vielleicht kommst Du mit dem Befehl "systeminfo" weiter (also jetzt für Windows Server).
Wahrscheinlich wirst Du nicht drumherum kommen alle Möglichkeiten einzubeziehen - ein Flag "isVirtual" gibts afaik nicht.

Code:
systeminfo | findstr /C:"System Manufacturer"
Bei einem Server der in Vmware läuft bekomme ich dann sowas zurück:
Code:
System Manufacturer:       VMware, Inc.
 
Zuletzt bearbeitet:
Über den PC-Namen ? Unsere hier haben alle ein "VM" mitdrin, damit wir selbst noch durchblicken .
Trotzdem machen wir es in unserem Softwareverteilungssystem entweder über den Hersteller - oder über die MAC, speziell das mit der MAC funktioniert 100%.
 
Nutzen bei mir in der Firma mehrere Methoden:
- Getrennte IP Bereiche
- Eigens eingestellte MAC Adressen
- Eigene Bereiche für PC-Namen
- Eigene OUs im AD
Wenn du davon nichts hast, dann wirds sehr schwer.

Mfg Kae
 
Ich habe bei Debian 6.0 in VirtualBox angeschaut und Suse 12.1 als Host verglichen.
Unterschiede gibt es in /dev:

suse (host)
/dev/vboxdrv
/dev/vboxnetctl

debian
/dev/vboxguest
/dev/vboxuser

Dies wollte ich bei Fedora 16 als Gast überprüfen. Dort gab es das nicht, ich habe aber festgestellt, dass dort die vboxadditions nicht richtig installiert waren, weil die kernel-source nicht da waren. Auf der Suche nach den Sourcen, fand das Paket "virt-what-1.11-1.fc16".
virt-what ist ein script. Da kann man ja ein bischen abschreiben ;-)

edit:
Nach der Installation von vboxadditions gibt es auch in fedora /dev/vboxguest und /dev/vboxuser
 
Zuletzt bearbeitet:
Zurück
Oben