Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBS Plattform erkennen 32 oder 64 Bit

Frage Microsoft

Mitglied: Kim

Kim (Level 1) - Jetzt verbinden

14.05.2009, aktualisiert 17:24 Uhr, 4536 Aufrufe, 10 Kommentare

Hi,

ich suche eine Möglichkeit via VBScript herauszufinden, ob ein Betriebssystem 32 oder 64 Bit hat.

Leider fehlt mir gerade die zündende Idee und beim Googeln hab ich auch nichts brauchbares gefunden

Hat mir jemand den passenden Denkanstoß?

Danke im Vorraus.

Gruß
Kim
Mitglied: LotPings
14.05.2009 um 19:32 Uhr
Hallo Kim,

eine lästige Begleiterscheinung ist das Vorhandensein (und die Notwendigkeit) zusätzlicher Environment Variablen "ProgramX"

Siehe :
C:\>set Prog 
ProgramData=C:\ProgramData 
ProgramFiles=C:\Program Files 
ProgramFiles(x86)=C:\Program Files (x86) 
ProgramW6432=C:\Program Files
Gruß
LotPings

Edit: Ergänze hier ein WMI-Script erzeugt mit Scriptomatic

01.
' This script was created by: Scriptomatic V2 and LotPings 
02.
'          <http://www.microsoft.com/technet/scriptcenter/tools/scripto2.mspx> 
03.
'  
04.
On Error Resume Next 
05.
Const wbemFlagReturnImmediately = &h10 
06.
Const wbemFlagForwardOnly = &h20 
07.
arrComputers = Array(".") 
08.
For Each strComputer In arrComputers 
09.
  WScript.Echo "==============================================================" 
10.
  WScript.Echo "Computer. . . . . . . . . . . : " & strComputer 
11.
  WScript.Echo "==============================================================" 
12.
  Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
13.
  Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", _ 
14.
  "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly) 
15.
 
16.
  For Each objItem In colItems 
17.
    WScript.Echo "BootDevice. . . . . . . . . . : " & objItem.BootDevice 
18.
    WScript.Echo "BuildNumber . . . . . . . . . : " & objItem.BuildNumber 
19.
    WScript.Echo "BuildType . . . . . . . . . . : " & objItem.BuildType 
20.
    WScript.Echo "Caption . . . . . . . . . . . : " & objItem.Caption 
21.
    WScript.Echo "CodeSet . . . . . . . . . . . : " & objItem.CodeSet 
22.
    WScript.Echo "CountryCode . . . . . . . . . : " & objItem.CountryCode 
23.
    WScript.Echo "CreationClassName . . . . . . : " & objItem.CreationClassName 
24.
    WScript.Echo "CSCreationClassName . . . . . : " & objItem.CSCreationClassName 
25.
    WScript.Echo "CSDVersion. . . . . . . . . . : " & objItem.CSDVersion 
26.
    WScript.Echo "CSName. . . . . . . . . . . . : " & objItem.CSName 
27.
    WScript.Echo "CurrentTimeZone . . . . . . . : " & objItem.CurrentTimeZone 
28.
    WScript.Echo "DataExecutionPrevention_32BitApplications: " & objItem.DataExecutionPrevention_32BitApplications 
29.
    WScript.Echo "DataExecutionPrevention_Available: " & objItem.DataExecutionPrevention_Available 
30.
    WScript.Echo "DataExecutionPrevention_Drivers: " & objItem.DataExecutionPrevention_Drivers 
31.
    WScript.Echo "DataExecutionPrevention_SupportPolicy: " & objItem.DataExecutionPrevention_SupportPolicy 
32.
    WScript.Echo "Debug . . . . . . . . . . . . : " & objItem.Debug 
33.
    WScript.Echo "Description . . . . . . . . . : " & objItem.Description 
34.
    WScript.Echo "Distributed . . . . . . . . . : " & objItem.Distributed 
35.
    WScript.Echo "EncryptionLevel . . . . . . . : " & objItem.EncryptionLevel 
36.
    WScript.Echo "ForegroundApplicationBoost. . : " & objItem.ForegroundApplicationBoost 
37.
    WScript.Echo "FreePhysicalMemory. . . . . . : " & objItem.FreePhysicalMemory 
38.
    WScript.Echo "FreeSpaceInPagingFiles. . . . : " & objItem.FreeSpaceInPagingFiles 
39.
    WScript.Echo "FreeVirtualMemory . . . . . . : " & objItem.FreeVirtualMemory 
40.
    WScript.Echo "InstallDate . . . . . . . . . : " & WMIDateStringToDate(objItem.InstallDate) 
41.
    WScript.Echo "LargeSystemCache. . . . . . . : " & objItem.LargeSystemCache 
42.
    WScript.Echo "LastBootUpTime. . . . . . . . : " & WMIDateStringToDate(objItem.LastBootUpTime) 
43.
    WScript.Echo "LocalDateTime . . . . . . . . : " & WMIDateStringToDate(objItem.LocalDateTime) 
44.
    WScript.Echo "Locale. . . . . . . . . . . . : " & objItem.Locale 
45.
    WScript.Echo "Manufacturer. . . . . . . . . : " & objItem.Manufacturer 
46.
    WScript.Echo "MaxNumberOfProcesses. . . . . : " & objItem.MaxNumberOfProcesses 
47.
    WScript.Echo "MaxProcessMemorySize. . . . . : " & objItem.MaxProcessMemorySize 
48.
    strMUILanguages = Join(objItem.MUILanguages, ",") 
49.
    WScript.Echo "MUILanguages. . . . . . . . . : " & strMUILanguages 
50.
    WScript.Echo "Name. . . . . . . . . . . . . : " & objItem.Name 
51.
    WScript.Echo "NumberOfLicensedUsers . . . . : " & objItem.NumberOfLicensedUsers 
52.
    WScript.Echo "NumberOfProcesses . . . . . . : " & objItem.NumberOfProcesses 
53.
    WScript.Echo "NumberOfUsers . . . . . . . . : " & objItem.NumberOfUsers 
54.
    WScript.Echo "OperatingSystemSKU. . . . . . : " & objItem.OperatingSystemSKU 
55.
    WScript.Echo "Organization. . . . . . . . . : " & objItem.Organization 
56.
    WScript.Echo "OSArchitecture. . . . . . . . : " & objItem.OSArchitecture 
57.
    WScript.Echo "OSLanguage. . . . . . . . . . : " & objItem.OSLanguage 
58.
    WScript.Echo "OSProductSuite. . . . . . . . : " & objItem.OSProductSuite 
59.
    WScript.Echo "OSType. . . . . . . . . . . . : " & objItem.OSType 
60.
    WScript.Echo "OtherTypeDescription. . . . . : " & objItem.OtherTypeDescription 
61.
    WScript.Echo "PAEEnabled. . . . . . . . . . : " & objItem.PAEEnabled 
62.
    WScript.Echo "PlusProductID . . . . . . . . : " & objItem.PlusProductID 
63.
    WScript.Echo "PlusVersionNumber . . . . . . : " & objItem.PlusVersionNumber 
64.
    WScript.Echo "Primary . . . . . . . . . . . : " & objItem.Primary 
65.
    WScript.Echo "ProductType . . . . . . . . . : " & objItem.ProductType 
66.
    WScript.Echo "RegisteredUser. . . . . . . . : " & objItem.RegisteredUser 
67.
    WScript.Echo "SerialNumber. . . . . . . . . : " & objItem.SerialNumber 
68.
    WScript.Echo "ServicePackMajorVersion . . . : " & objItem.ServicePackMajorVersion 
69.
    WScript.Echo "ServicePackMinorVersion . . . : " & objItem.ServicePackMinorVersion 
70.
    WScript.Echo "SizeStoredInPagingFiles . . . : " & objItem.SizeStoredInPagingFiles 
71.
    WScript.Echo "Status. . . . . . . . . . . . : " & objItem.Status 
72.
    WScript.Echo "SuiteMask . . . . . . . . . . : " & objItem.SuiteMask 
73.
    WScript.Echo "SystemDevice. . . . . . . . . : " & objItem.SystemDevice 
74.
    WScript.Echo "SystemDirectory . . . . . . . : " & objItem.SystemDirectory 
75.
    WScript.Echo "SystemDrive . . . . . . . . . : " & objItem.SystemDrive 
76.
    WScript.Echo "TotalSwapSpaceSize. . . . . . : " & objItem.TotalSwapSpaceSize 
77.
    WScript.Echo "TotalVirtualMemorySize. . . . : " & objItem.TotalVirtualMemorySize 
78.
    WScript.Echo "TotalVisibleMemorySize. . . . : " & objItem.TotalVisibleMemorySize 
79.
    WScript.Echo "Version . . . . . . . . . . . : " & objItem.Version 
80.
    WScript.Echo "WindowsDirectory. . . . . . . : " & objItem.WindowsDirectory 
81.
    WScript.Echo "--------------------------------------------------------------" 
82.
  Next 
83.
Next 
84.
 
85.
 
86.
Function WMIDateStringToDate(dtmDate) 
87.
  WMIDateStringToDate = CDate(Mid(dtmDate, 5, 2) & "/" & _ 
88.
  Mid(dtmDate, 7, 2) & "/" & Left(dtmDate, 4) _ 
89.
  & " " & Mid (dtmDate, 9, 2) & ":" & Mid(dtmDate, 11, 2) & ":" & Mid(dtmDate,13, 2)) 
90.
End Function

Dabei liefert hier auf einem Windows 7 RC 64bit
OSArchitecture. . . . . . . . : 64-Bit
Bitte warten ..
Mitglied: 76109
14.05.2009 um 20:01 Uhr
Hallo LotPings,

Wow, gute Arbeit. Danke

Gruß Dieter
Bitte warten ..
Mitglied: LotPings
14.05.2009 um 20:26 Uhr
Zitat von 76109:
Hallo LotPings,

Wow, gute Arbeit. Danke

Die meiste Arbeit leistet ja die Scriptomatic

Wobei ich gerade nochmal nachgesehen habe, die Scriptomatic ist ja auch nur ein .hta Datei und meine habe ich getuned,
mit FixedWidth Schriftart und IMO übersichtlicherer Darstellung der Ausgabe und zusätzlichem Copy Button um das generierte Script direkt in die Zwischenablage zu befördern.
Bei Interesse kann ich mein Änderungen veröffentlichen aber wegen MS Copytight weiß ich nicht, ob ich das einfach hochladen kann oder ein Diff machen muß ( weiss auch noch nicht wie das geht)

Gruß
LotPings
Bitte warten ..
Mitglied: LotPings
14.05.2009 um 20:46 Uhr
Noch ein Hinweis zum WMI Script.

Die Ausgabe auf dem eigenen Rechner kann sich je nach OS und Version
sowohl in der Anzahl der Eigenschaften als auch in den Werten unterscheiden.
(wobei das Gott sei Dank selten der Fall ist.)

Gruß
LotPings
Bitte warten ..
Mitglied: 76109
14.05.2009 um 22:56 Uhr
Hallo LotPings,

Zitat von LotPings:
wegen MS Copytight weiß ich nicht, ob ich das einfach hochladen
kann oder ein Diff machen muß ( weiss auch noch nicht wie das

ich würde das Script in keinem Fall hochzuladen. Für den Download von Scriptomat wird GenuiCheck verlangt...

Dumme Frage? Was meinst Du mit 'Diff'?

Gruß Dieter

PS. HTA kam mir auch in den Sinn
Bitte warten ..
Mitglied: 76109
14.05.2009 um 23:05 Uhr
Hallo LotPings

Zitat von LotPings:
Noch ein Hinweis zum WMI Script.
sowohl in der Anzahl der Eigenschaften als auch in den Werten unterscheiden.
bedeutet das, dass in diesem Fall mit Fehlermeldungen zu rechnen ist?

Gruß Dieter

PS. Achso Text-Diff
Bitte warten ..
Mitglied: LotPings
14.05.2009 um 23:05 Uhr
Zitat von 76109:
Dumme Frage? Was meinst Du mit 'Diff'?

http://de.wikipedia.org/wiki/Diff

Gruß
LotPings
Bitte warten ..
Mitglied: LotPings
14.05.2009 um 23:24 Uhr
Zitat von 76109:
bedeutet das, dass in diesem Fall mit Fehlermeldungen zu rechnen ist?

Ja, aber eben nur wenn die jeweilge WMI Version das nicht unterstützt.
Das Script läuft zwar wegen
On Error Resume Next
durch, aber der Wert fehlt dann eben - und wenn du genau den haben wolltest ....

Neulich hatte ich doch einen Unterschied bei der WMI Abfrage Win32_DiskDrive
Das Property MediaType liefert bis XP als Wert
Fixed[Tab]Hard Disk Media
Ab Vista ist dieser "Schreibfehler" geändert und es kommt
Fixed Hard Disk Media also mit Leerzeichen.
Wenn man im Script auf diese Inhalte abfragt hat man ein Problem.
Es zeigt halt das auch WMI nicht statisch ist, sondern Änderungen unterliegt.

Gruß
LotPings
Bitte warten ..
Mitglied: 76109
15.05.2009 um 00:43 Uhr
Hallo LotPings,

Zitat von LotPings:
On Error Resume Next
der Wert fehlt dann eben - und wenn du genau den haben wolltest
Fixed[Tab]Hard Disk Media Fixed Hard Disk Media
ja, wenn ein Wert fehlt (Pech gehabt), dann gibt man eben alternativ den Wert "N/V" aus. Ist besser als Leer
und wenn Fehler wie z.B. [Tab] auftreten können, kann man ja Replace mit einbauen...

So, Gruß und Gute Nacht

Dieter
Bitte warten ..
Mitglied: Kim
15.05.2009 um 11:17 Uhr
Hatte gehofft, es gäbe wie bei Windows 7 eine Möglichkeit das ganze ohne "Bastlerei" rauszufinden, aber dein Tipp hat mir echt weitergeholfen.

Vielen Dank.

Gruß
Kim
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Microsoft Office
32 Bit CAD Programm und Excel 64 Bit geht nicht (5)

Frage von GrueneSosseMitSpeck zum Thema Microsoft Office ...

Windows 10
gelöst MacBook Air Intel HD 3000 und Windows 10 64 bit? (8)

Frage von NeXiaL-Computers zum Thema Windows 10 ...

Windows 10
gelöst Windows 10 Pro 64 Bit "Schnellstart aktivieren" abschalten per GPO (6)

Frage von maxpoint zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...