Jump to content

OS Version auslesen mit Batch


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

würde gerne mir per script die betriebssystemversion ausgeben lassen.

 

Ausgabe sollte ungefährt so aussehen

 

Microsoft Windows 7 Enterprise 64 Bit SPX 

als Beispiel

 

habe nur gesehen das ich mit WMIC genau die Information mit dem Befehl

 

WMIC OS get caption

bekomme.

 

Ausgabe ist dann aber

 

Caption
Microsoft Windows 7 Enterprise

 

Thematik ist nun das ich in der Ausgabe Caption + Zeilenumbruch nicht möchte. Das ganze soll in einer batchdatei dann laufen.

 

Hat hier jemand eine Idee?

 

Gruß Wolfgang

Link zu diesem Kommentar
Hallo,

 

danke dir. Was macht die EXE denn genau?

 

Gruß Wolfgang

 

genau das gleiche wie dein "wmic get os caption" ohne Zeilenumbruch, in VB

 

Option Strict On
' ' Verweis auf System.Management ist notwendig
Module Module1
   Sub Main()
       Dim mos As Management.ManagementObjectSearcher
       Dim moc As Management.ManagementObjectCollection
       Dim mo As Management.ManagementObject
       Dim pd As Management.PropertyData

       mos = New Management.ManagementObjectSearcher( _
         [color="DarkRed"]"SELECT caption FROM Win32_operatingsystem")[/color]
       moc = mos.Get()
       For Each mo In moc
           For Each pd In mo.Properties
               Try
                   [color="DarkRed"]Console.WriteLine(pd.Value.ToString)[/color]
               Catch
                   ' ignore errors
               End Try
           Next
       Next
       moc.Dispose()
       mos.Dispose()
   End Sub
End Module

bearbeitet von blub
Link zu diesem Kommentar

danke dir. habe das mal ausprobiert. Perfekt.

 

Ich bin jetzt mal unverschämt und sage Architektur und SP Version wären auch noch klasse ;-)

 

Habe zwar net wirklich viel Ahnung von VB aber vielleicht kann ich da was machen. Ich wollte das mit ner Batch machen aber das funktioniert nicht wirklich. Ich muss die Ausgabe von einem Befehl abschneiden. Hätte die Ausgabe gerne in eine Variable gepackt aber das funktioniert nicht.

 

wmic os get caption < 123.txt
set osversion=<123.txt
echo %osversion%

 

als ausgabe kommt nur 123.txt

Link zu diesem Kommentar

Moin,

 

du hättest deinen ursprünglichen Befehl viel einfacher halten können:

 

wmic os get caption | find /i /v "caption"

 

Und hier eine Zeile, die die gewünschten Daten ausgibt:

 

wmic os get caption,OSArchitecture,ServicePackMajorVersion,ServicePackMinorVersion | find /i /v "caption"

 

Wenn du Kommas statt Tabs als Trennzeichen haben willst, nimm dies. Dann steht allerdings immer als erstes der Computername dabei (ist im CSV-Format von WMIC so vorgesehen).

 

wmic os get caption,OSArchitecture,ServicePackMajorVersion,ServicePackMinorVersion /format:CSV | find /i /v "caption"

 

 

Gruß, Nils

Link zu diesem Kommentar

Moin,

 

kann es sein, dass du hier andere deine Arbeit erledigen lässt? :suspect:

 

Ohne Weiteres bekommst du da keinen Text rein, weil es sich nicht um Parameter handelt, sondern um eine Liste auszugebender Attribute. Du kannst gern ein wenig mit Zeichenkettenfunktionen herumbasteln, um deine Wunschausgabe zu erhalten.

 

Gruß, Nils

Link zu diesem Kommentar
Hallo mcpuser,

schreib bitte nochmal genau, was du wie brauchst. Dann kompilier ich dir heute abend nochmal eine Version. Oder du machst es direkt, wie Nils es vorgeschlagen hat, ist mir natürlich auch recht!

 

cu

blub

 

Hallo,

 

das ist sehr nett von dir. Lösung derzeit ist eine Batchdatei mit folgendem Befehl

 

wmic os get caption, OSArchitecture | find /i /v "caption"

 

ergibt als Ausgabe

 

Microsoft Windows 7 Enterprise  32-Bit

 

super wäre wenn die Ausgabe

 

Microsoft Windows 7 Enterprise  32-Bit SP1

 

wäre oder halt die jeweilige SP Version

 

Gruß Wolfgang

Link zu diesem Kommentar


'VB2008-code, getestet unter XP/ win7

Imports System.Management
'Verweis auf System.Management einrichten
Module Module1
   Sub Main()
       Dim objQuery As New ObjectQuery("SELECT * FROM Win32_operatingsystem")
       Dim searcher As New ManagementObjectSearcher(objQuery)
       Dim caption As String = ""
       Dim osa As String = ""
       Dim spmv As String = ""

       Try
           For Each mem As ManagementObject In searcher.Get
               caption = mem("Caption")
               spmv = mem("ServicePackMajorVersion")
               osa = mem("OSArchitecture") 'erst ab vista
           Next
       Catch
       End Try

       Console.WriteLine(caption & " " & osa + " SP" & spmv)
   End Sub

End Module

 

OSArchitecture ist erst ab Vista aufwärts verfügbar

Win32_OperatingSystem Class (Windows)

 

Die Expressversion von VisualBasic 2008 liegt bei MS kostenlos zum Downloaden.

Damit kannst du dir den Code bei Bedarf selbst weiter anpassen und compilieren.

 

cu

blub

ConsoleApplication1.zip

bearbeitet von blub
Link zu diesem Kommentar

Moin,

 

na, okay. Dann fühle ich mich herausgefordert. ;)

 

Folgenden Code als VBS-Datei speichern. Keine Kompilierung nötig. Dafür leichter anpassbar.

 

Set objWMI = GetObject("winmgmts:\\.\root\CIMV2")
Set objAquarium = objWMI.InstancesOf("Win32_OperatingSystem",48)
For Each objFish In objAquarium
WScript.Echo objFish.Caption & " " & objFish.OSArchitecture	_
& " SP " & objFish.ServicePackMajorVersion _
& " (" & objFish.ServicePackMinorVersion & ")"
Next

 

Vielleicht ist auch dies für dich interessant:

c't-Artikel: WMI

 

Gruß, Nils

bearbeitet von NilsK
Link zu c't-Artikeln
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...