micneu
Goto Top

Windows 7 64bit cmd abfragen

Hallo Leute,

Ich suche eine bestimmte variable mit der ich in der cmd prüfen kann ob das system 32bit oder 64bit ist.

habe eine batch die unter windows xp läuft (2k auch)
und in naher zukunft werden bei uns einige systeme ausgetauscht gegen windows 7 pro 64bit.
jetzt bin ich bei, mein batch umzuschreiben das es auf beiden systemen das gleiche macht.

ist es mit diesen beiden variablen möglich sicher zu sagen das ist ein 64bit system?
%PROCESSOR_ARCHITECTURE%
%PROCESSOR_IDENTIFIER%

ich habe auch einen 64bit rechner und die variablen sehen bei mir so aus:
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 15 Stepping 11, GenuineIntel

Habe leider keine 32bit windows 7 rechner zur hand

wie kann ich abfragen ob es xp oder windows 7 ist?

Gruß Michael

Content-ID: 133381

Url: https://administrator.de/contentid/133381

Ausgedruckt am: 27.11.2024 um 02:11 Uhr

Pjordorf
Pjordorf 13.01.2010 um 16:37:57 Uhr
Goto Top
Hallo Michael,

bei einer 32 Bit CPU solltest du PROCESSOR_ARCHITECTURE=x86 erhalten, aber auch bei einer 32 Bit Anwendung unter 64Bit OS.

Siehe auch mal hier: http://blogs.msdn.com/david.wang/archive/2006/03/26/HOWTO-Detect-Proces ...

Peter
Phalanx82
Phalanx82 13.01.2010 um 16:46:13 Uhr
Goto Top
Zitat von @micneu:

ist es mit diesen beiden variablen möglich sicher zu sagen das ist ein 64bit system?
%PROCESSOR_ARCHITECTURE%
%PROCESSOR_IDENTIFIER%

ich habe auch einen 64bit rechner und die variablen sehen bei mir so aus:
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 15 Stepping 11, GenuineIntel

Damit ließt du imho nur aus ob die CPU 64Bit fähig ist oder nicht und das Model incl. Stepping.
Das verrät dir aber nicht obs ein 64Bit OS ist.

Ich bin leider auch nicht der Batch Profi, daher kann ich dir an dieser Stelle leider nicht weiter helfen
was solche Abfragen angeht, aber meines Wissens bewirken diese beiden Variablen nur was ich
geschrieben habe.

Was ich dir aber sagen kann: Ein 64 Bit Windows 7 hat ein Verzeichnis wie folgt:

C:\Windows\SysWOW64

wohingegen ein 32Bit Windows 7 nur das System32 Verz. aufweißt (soweit ich mich erinnere... habe
leider mein privates Notebook heute nicht dabei umnachzuschauen nur das Geschäftsnotebook mit
Win7 x64, werde aber nachher nochmal nachschauen, falls das 32Bit auch den SysWOW64 Ordner hat,
korrigiere ich das hier später noch)
Gleiches gilt btw. auch für Vista in den 32 bzw. 64 Bit Versionen.

Mfg.
60730
60730 13.01.2010 um 16:49:36 Uhr
Goto Top
Servus,

  • z.B c:\Programme(x86)
sollte nur ein 64bit System haben
  • ver
liefert unter jedem Windows einen anderen immer identischen Wert aus.

Gruß
TheDarkLord
TheDarkLord 13.01.2010 um 16:50:07 Uhr
Goto Top
Hallo face-smile

Mit "systeminfo | findstr Betriebssystemname" kannst Du Dir anzeigen lassen, wie das Betriebssystem heisst.

Gruß Dark
Biber
Biber 13.01.2010, aktualisiert am 18.10.2012 um 18:40:51 Uhr
Goto Top
Moin micneu,

[OT]
Zitat von @micneu:
habe eine batch die unter windows xp läuft (2k auch)
Okay, dieser Satz legt nahe, dass du sicherlich überlegt hast diese Frage entweder in den Bereichen "Windows" oder "Batch & Shell" zu posten.
(Die Bereiche "Haben" oder ""Laufen" gibt es ja nicht)
[/OT]
Hättest du in "Batch & Shell" gepostet oder unten die erste "Mögliche Anleitung zum Thema" gelesen,
dann wärest du auf NeonZeros 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 gestolpert.

Dort steht ziemlich alles drin, was du zum Verständnis wissen solltest.

Bitte überflieg zumindest auch die Diskussion/die Kommentare bis zum Ende.
Denn zwei Aussagen ziehen sich eigentlich im ganzen Thread durch:
  • unter Windows lassen sich viele mehr oder minder begründete Indizien/Verdachtsmomente für ein 32bit/64bit-Betriebssystem finden (oder für das Nicht-Vorhandensein eines 32/64bit-Systems). Aber eine einfache Prüfungsmöglichkeit Ja/Nein haben die Redmonder PraktikantInnen für überflüssig gehalten
  • Die Indizien werden in direkter Abhängigkeit von der Komplexität des Werkzeugs erdrückender bzw. stichhaltiger. Mit Cmd-Mitteln/Billich-Scriptsprachen bleibt eine Unsicherheit; sauber wird es erst mit API-Aufrufen.

--> von daher solltest du evtl. mal kurz suchmaschinen.... vielleicht hat irgendjemand schon ein 32bit/64bit-Checktool für die Kommandozeile als Freeware im Netz.

Grüße
Biber

P.S. verschieb doch mal den Thread nach "Batch & Shell" bitte.
DerWoWusste
DerWoWusste 13.01.2010 um 17:05:21 Uhr
Goto Top
Hi.
%PROCESSOR_ARCHITECTURE% reicht und es gibt sie bei allen. Das Beste: es geht in der Variable nicht um den Prozessor, sondern um das installierte Betriebssystem.
Biber
Biber 13.01.2010 um 17:16:35 Uhr
Goto Top
Moin DerWoWusste,

Zitat von @DerWoWusste:
Hi.
%PROCESSOR_ARCHITECTURE% reicht und es gibt sie bei allen.
Das Beste: es geht in der Variable nicht um den Prozessor, sondern um das installierte Betriebssystem.
Nein. Reicht nicht.
Lies es bitte ggf. auch noch mal bei David Wang nach (siehe pjorsdorfs Link im allerersten Kommentar).

Es mag auf begrenztem Terrain (z.B. für ein Inst-Skript für alle Computer in der Firmendomäne) ausreichen.
Aber es reicht nicht, um ein professionelles Programm für den internationalen Markt auf CD zu brennen.

Grüße
Biber
DerWoWusste
DerWoWusste 13.01.2010 um 17:19:58 Uhr
Goto Top
Hi.
Ich verstehe den Einwand.
PROCESSOR_ARCHITECTURE - reports the native processor architecture EXCEPT for WOW64, where it reports x86.
Aber wo wird eine Batch in WOW64 gestartet? Ist das hier relevant, micneu?

Edit - ist doch nur relevant, wenn die Batch auf x64 (bzw. non-x86) residiert und ihrerseits von einem x86-Programm (wow64) gestartet wird - hier mit Sicherheit nicht, oder micneu?
micneu
micneu 14.01.2010, aktualisiert am 18.10.2012 um 18:40:51 Uhr
Goto Top
danke an alle habe es jetzt so gelöst:

ich nutze jetzt diese funktion 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

und habe diese abfrage eingebaut:

:: Prüft das System ob 32bit oder 64bit
call :FncWinVer -e ":::::32" && set win_system32=system32  
:: Prüft das System NICHT 2000, XP und 32bit ist 
call :FncWinVer -e "2000" "XP" "32" || set win_system32=SysWOW64