Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Code-Beispiel Windowsversion per VBA ermitteln

Forumthread: Code-Beispiel Windowsversion per VBA ermitteln

Code-Beispiel Windowsversion per VBA ermitteln
Günther
Hallo,
ich habe zur altbekannten Thematik "per VBA Windowsversion ermitteln" im Internet folgendes kleines Code-Beispiel gefunden. Auch wenn damit keine Info zu 32/64 bit oder ServicePacks geliefert wird, gefällt es mir trotzdem relativ gut, weil es sehr kurz ist und auch einfach nur einen String ermittelt. Es entfällt also die Notwendigkeit, alle abzudeckenden OS-Varianten "reinzuprogrammieren", wie man es sonst bei den meisten Lösungen anfindet.
Wer kennt sich mit dieser Art von VBA-Befehlen so gut aus, dass er mir ein paar Zeilen Erklärung dazu liefern könnte. Was passiert da genau und welche Technik ist das überhaupt, die hier zur Anwendung kommt?
Vielen Dank im Voraus
Grüße Günther
Sub OSVersion()
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}\\.\root\cimv2")
Set OSs = WMI.ExecQuery("Select * from Win32_OperatingSystem")
For Each OS In OSs
MsgBox "Betriebssystem: " & OS.Name
Next
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Code-Beispiel Windowsversion per VBA ermitteln
20.08.2012 12:05:21
Josef

Hallo Günther,
Infos zu WMI

« Gruß Sepp »

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Windowsversion per VBA ermitteln: Ein praktischer Leitfaden


Schritt-für-Schritt-Anleitung

Um die Windowsversion per VBA abzufragen, kannst du den folgenden Code verwenden. Dieser nutzt die Windows Management Instrumentation (WMI), um Informationen über das Betriebssystem zu erhalten.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:
Sub OSVersion()
    Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}\\.\root\cimv2")
    Set OSs = WMI.ExecQuery("Select * from Win32_OperatingSystem")
    For Each OS In OSs
        MsgBox "Betriebssystem: " & OS.Name
    Next
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Führe das Makro aus: Drücke ALT + F8, wähle OSVersion und klicke auf "Ausführen".

Dieser Code ermittelt die Windowsversion und zeigt sie in einem Message-Box-Fenster an. Er ist einfach und benötigt keine umfangreiche Programmierung, was ihn ideal für schnelle Abfragen macht.


Häufige Fehler und Lösungen

  • Fehler: "Fehler beim Ausführen des Makros"

    • Lösung: Überprüfe, ob die Makros in den Excel-Einstellungen aktiviert sind.
  • Fehler: "WMI-Objekt kann nicht erstellt werden"

    • Lösung: Stelle sicher, dass dein Excel mit Administratorrechten ausgeführt wird.

Alternative Methoden

Wenn du eine andere Methode bevorzugst, kannst du auch die Shell-Funktion verwenden, um die Windowsversion in einer Variablen zu speichern:

Sub GetWindowsVersion()
    Dim version As String
    version = CreateObject("WScript.Shell").Exec("cmd /c ver").StdOut.ReadAll
    MsgBox "Windows Version: " & version
End Sub

Diese Methode gibt dir eine einfache Textausgabe der Windowsversion, jedoch ohne die umfangreichen Informationen, die die WMI-Methode bereitstellt.


Praktische Beispiele

Hier sind einige praktische Anwendungsfälle für die Abfrage der Windowsversion:

  1. Systemkompatibilität prüfen: Verwende die Windowsversion, um spezifische Softwareinstallationen zu steuern.
  2. Fehlerdiagnose: Bei der Fehlersuche kann es hilfreich sein zu wissen, welche Windowsversion installiert ist, um Probleme besser einzugrenzen.

Tipps für Profis

  • Nutze die WMI-Anfrage, um weitere Informationen über das Betriebssystem zu erhalten, wie z.B. die Build-Nummer oder den Installationszeitpunkt.
  • Du kannst die Ergebnisse auch in einer Excel-Tabelle speichern, anstatt sie nur in einer Message-Box anzuzeigen:
Sub SaveOSVersionToSheet()
    Dim WMI As Object
    Dim OSs As Object
    Dim OS As Object
    Dim row As Integer
    row = 1

    Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}\\.\root\cimv2")
    Set OSs = WMI.ExecQuery("Select * from Win32_OperatingSystem")

    For Each OS In OSs
        Cells(row, 1).Value = "Betriebssystem:"
        Cells(row, 2).Value = OS.Name
        row = row + 1
    Next
End Sub

FAQ: Häufige Fragen

1. Was ist WMI?
WMI steht für Windows Management Instrumentation. Es ist ein Framework, das es ermöglicht, Informationen über das Betriebssystem und andere Windows-Komponenten abzufragen.

2. Welche Excel-Version wird benötigt?
Der obige VBA-Code sollte in Excel 2010 und neueren Versionen funktionieren. Stelle sicher, dass deine Excel-Version die Verwendung von VBA unterstützt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige