Vbscript - prüfen ob windows 32bit oder 64bit
Hallo Leute hoffe ihr könnt mir helfen.
Ich beschäftige mich mal wieder mit vbscript.
Und nun meine frage wie kann ich in vbscript prüfen ob windows in 32bit oder 64bit läuft.
gruß michael
Ich beschäftige mich mal wieder mit vbscript.
Und nun meine frage wie kann ich in vbscript prüfen ob windows in 32bit oder 64bit läuft.
gruß michael
Please also mark the comments that contributed to the solution of the article
Content-ID: 159238
Url: https://administrator.de/contentid/159238
Printed on: December 13, 2024 at 01:12 o'clock
3 Comments
Latest comment
On Error Resume Next
Dim WshShell
Dim OsType
Set WshShell = CreateObject("WScript.Shell")
OsType = WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE")
If OsType = "x86" then
wscript.echo "Windows 32bit system detected"
elseif OsType = "AMD64" then
wscript.echo "Windows 64bit system detected"
end if
Hallo EvilMoe,
meiner Erfahrung nach funktioniert diese Methode nicht zuverlässig. Ich musste mich bei der Erstellung von Batchfiles für unser Programmiererteam mit dem Thema herumschlagen. Einige verwenden auf ihren Entwicklermaschinen 32Bit-Systeme, die anderen 64Bit-Systeme (Vista oder Win7). Aus einem Batch-Skript sollte der Compiler mit einer Projektdatei als Parameter gestartet werden. Auf 32Bit-Systemen liegt er in
Zuverlässig hat folgende Abfrage funktioniert:
@micneu:
Prüfe die Umgebungsvariablen auf die Existenz einer Variablen
Könnte so gehen:
Oder per WMI-Abfrage:
Ergebnis:
Gruß
Friemler
meiner Erfahrung nach funktioniert diese Methode nicht zuverlässig. Ich musste mich bei der Erstellung von Batchfiles für unser Programmiererteam mit dem Thema herumschlagen. Einige verwenden auf ihren Entwicklermaschinen 32Bit-Systeme, die anderen 64Bit-Systeme (Vista oder Win7). Aus einem Batch-Skript sollte der Compiler mit einer Projektdatei als Parameter gestartet werden. Auf 32Bit-Systemen liegt er in
C:\Program Files
, auf 64-Bit Systemen in C:\Program Files (x86)
. Dafür brauchte ich eine Unterscheidung. Auf manchen 64Bit-Systemen hatte die Variable PROCESSOR_ARCHITECTURE
trotzdem den Wert x86
...Zuverlässig hat folgende Abfrage funktioniert:
if "%ProgramFiles(x86)%" neq "" (
set "Programs=C:\Program Files (x86)"
) else (
set "Programs=C:\Program Files"
)
@micneu:
Prüfe die Umgebungsvariablen auf die Existenz einer Variablen
ProgramFiles(x86)
, wenn sie existiert bist Du auf einem 64Bit-System, wenn nicht auf einem 32Bit-System.Könnte so gehen:
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshSysEnv = WshShell.Environment("PROCESS")
If WshSysEnv("ProgramFiles(x86)") = "" Then
OSType = "32Bit"
Else
OSType = "64Bit"
End If
WScript.Echo OSType
strComputer = "."
Set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colOSs = objWMI.ExecQuery("Select * from Win32_OperatingSystem")
For Each OS in colOSs
OSType = OS.OSArchitecture
Next
WScript.Echo OSType
32-Bit
oder 64-Bit
Gruß
Friemler