Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 4584 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 ..
Ähnliche Inhalte
Microsoft Office
32 Bit CAD Programm und Excel 64 Bit geht nicht (6)

Frage von GrueneSosseMitSpeck zum Thema Microsoft Office ...

Windows Server
Windows Server 2008 32 Bit VHD mounten (7)

Frage von 4insiders zum Thema Windows Server ...

Webbrowser
Mozilla beginnt Wechsel auf 64-Bit-Firefox (4)

Link von sabines zum Thema Webbrowser ...

Microsoft Office
gelöst Access 2016: keine Verbindung zu 32-bit ODBC Datenquelle (4)

Frage von masteruser0815 zum Thema Microsoft Office ...

Neue Wissensbeiträge
Viren und Trojaner

Ransomware or Wiper? RedBoot Encrypts Files but also Modifies Partition Table

(1)

Information von BassFishFox zum Thema Viren und Trojaner ...

Notebook & Zubehör

WOL bei HP Notebooks

(6)

Erfahrungsbericht von Henere zum Thema Notebook & Zubehör ...

LAN, WAN, Wireless

Neue Cisco Catalyst-Serie 9000

Information von Kuemmel zum Thema LAN, WAN, Wireless ...

Heiß diskutierte Inhalte
Windows 10
Netzwerkkarte schaltet sich erst nach dem Logon ein (23)

Frage von DerWoWusste zum Thema Windows 10 ...

Windows Server
Seit IP Umstellung DC DNS Fehler (18)

Frage von Yaimael zum Thema Windows Server ...

Netzwerke
Mobile Einwahl IPSec VPN von iPhone iPad T-Mobile zur Pfsense (16)

Frage von Spitzbube zum Thema Netzwerke ...

Weiterbildung
gelöst Fest angestellter Admin oder Systemhaus Admin mit Kundenbetreuung? (15)

Frage von Voiper zum Thema Weiterbildung ...