64Bit Versionen verschiedener Windows-Distributionen per Batch erkennen
Hi,
Ich hab ein bischen gegoogelt, aber so eine richtig zufriedenstellende Lösung habe ich noch nicht.. Ich müsste per Batch erkennen können ob es eine 64Bit Version ist oder nicht und das leider in allen OS von XP bis 7. Die WMIC fällt flach da die auf den verschiedensten Versionen z.B. Vista Home nicht dabei ist und es auch nicht mit wmic rüberkopieren getan ist. Bevor ich mir hier 3 virtuelle Maschinen installiere frage ich mal lieber hier ob jemand schon den passenden Schnipsel in seinem Fundus hat, der mir da helfen kann. Ist es da am besten per systeminfo.exe auszulesen? OS lese ich per Registry aus und setze es in %BS%..
also als Beispiel:
Wenn ihr ein kleines CMD-Hilfestellungstool kennt oder sonst was immer her damit.. wäre auch kein problem- hauptsache kompatibel von XP bis Seven^^
Danke im Voraus..
Thomas
Ich hab ein bischen gegoogelt, aber so eine richtig zufriedenstellende Lösung habe ich noch nicht.. Ich müsste per Batch erkennen können ob es eine 64Bit Version ist oder nicht und das leider in allen OS von XP bis 7. Die WMIC fällt flach da die auf den verschiedensten Versionen z.B. Vista Home nicht dabei ist und es auch nicht mit wmic rüberkopieren getan ist. Bevor ich mir hier 3 virtuelle Maschinen installiere frage ich mal lieber hier ob jemand schon den passenden Schnipsel in seinem Fundus hat, der mir da helfen kann. Ist es da am besten per systeminfo.exe auszulesen? OS lese ich per Registry aus und setze es in %BS%..
also als Beispiel:
set os64=0
(set bs=xp)
if %bs% == XP (Echo Windows XP erkannt)
if %bs% == XP (64 Bit-Prüfung, wenn ja set os64=1)
if %bs% == Vista (Echo Windows Vista erkannt)
if %bs% == Vista (64 Bit-Prüfung, wenn ja set os64=1)
if %bs% == 7 (Echo Windows 7 erkannt)
if %bs% == 7 (64 Bit-Prüfung, wenn ja set os64=1)
if %os64% == 1 (goto 64error)
Wenn ihr ein kleines CMD-Hilfestellungstool kennt oder sonst was immer her damit.. wäre auch kein problem- hauptsache kompatibel von XP bis Seven^^
Danke im Voraus..
Thomas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 132175
Url: https://administrator.de/contentid/132175
Ausgedruckt am: 21.11.2024 um 21:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo chizophren.
Hier: Getosversion.vbs - Betriebssystem sowie die Versionsnummer per Script bestimmen
findest du einiges darüber.
Die Environmentvariable %OS%
sowie die Befehle VER und NET CONFIG WORKSTATION
geben dir wertvolle Aufschlüsse.
Das VBScript aus dem verlinkten Beitrag mal in abgewandelter Form im Batch verwurstet sähe etwa so aus:
Wie/an welcher Stelle genau sich allerdings eine 32bit von einer 64bit - Version unterscheidet, weiß ich nicht. Vielleicht hast du Möglichkeiten das auszutesten.
Grüße
rubberman
<edit>
Mit den Versionsnummern sollte das OS recht eindeutig zu identifizieren sein. Hier eine Liste:
www.gaijin.at/lstwinver.php
Das Problem, ob nun 32 oder 64bit, scheint sich damit aber noch nicht klären zu lassen.
</edit>
Hier: Getosversion.vbs - Betriebssystem sowie die Versionsnummer per Script bestimmen
findest du einiges darüber.
Die Environmentvariable %OS%
sowie die Befehle VER und NET CONFIG WORKSTATION
geben dir wertvolle Aufschlüsse.
Das VBScript aus dem verlinkten Beitrag mal in abgewandelter Form im Batch verwurstet sähe etwa so aus:
@echo off & setlocal
set "vbstool=%temp%\GetOsInfo.vbs"
>"%vbstool%" echo Set colOperatingSystems = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2").ExecQuery("Select * from Win32_OperatingSystem")
>>"%vbstool%" echo For Each objOperatingSystem in colOperatingSystems
>>"%vbstool%" echo Wscript.Echo objOperatingSystem.Caption ^& ":" ^& objOperatingSystem.Version ^& ":" ^& objOperatingSystem.ServicePackMajorVersion ^& "." ^& objOperatingSystem.ServicePackMinorVersion
>>"%vbstool%" echo Next
for /f "delims=: tokens=1-3" %%a in ('cscript //nologo "%vbstool%"') do (
echo Name: %%a
echo Version: %%b
echo SevicePack: %%c
)
del "%vbstool%"
pause
Wie/an welcher Stelle genau sich allerdings eine 32bit von einer 64bit - Version unterscheidet, weiß ich nicht. Vielleicht hast du Möglichkeiten das auszutesten.
Grüße
rubberman
<edit>
Mit den Versionsnummern sollte das OS recht eindeutig zu identifizieren sein. Hier eine Liste:
www.gaijin.at/lstwinver.php
Das Problem, ob nun 32 oder 64bit, scheint sich damit aber noch nicht klären zu lassen.
</edit>
@DerWoWusste
Stimmt. Hat auf meiner 32bit Büchse den Wert x86. Wie sieht das auf einem 64bit System aus?
Grüße
rubberman
<edit>
Batch - Betriebssysteminformationen abfragen (auch ohne WSH) - NT, 200x, XP, Vista, ... - Name ink. Typ (Server, Home, etc.), Version, Product Suite (Terminal Server, etc.), Sprache und Windows Service Pack, 32 oder 64 Bit
In dem Beitrag werden wohl alle offenen Fragen beantwortet. Unter anderem auch, dass x86 für das 32bit System steht.
</edit>
Stimmt. Hat auf meiner 32bit Büchse den Wert x86. Wie sieht das auf einem 64bit System aus?
Grüße
rubberman
<edit>
Batch - Betriebssysteminformationen abfragen (auch ohne WSH) - NT, 200x, XP, Vista, ... - Name ink. Typ (Server, Home, etc.), Version, Product Suite (Terminal Server, etc.), Sprache und Windows Service Pack, 32 oder 64 Bit
In dem Beitrag werden wohl alle offenen Fragen beantwortet. Unter anderem auch, dass x86 für das 32bit System steht.
</edit>
Hi.
die prozessur architektur muss ja nicht zwangsweise mit dem OS übereinstimmen
Doch. Schau Dir mal die Definition der Variable im Netz an, es geht nicht um den Prozessor, sondern um das OS. Zugegebenermaßen irreführend. Hab auch ein 64Bit Prozi und nur 32bit laufen...
Und, welchen Wert hat die Variable? x86.