mcpuser 11 Geschrieben 22. Oktober 2010 Melden Teilen Geschrieben 22. Oktober 2010 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 Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 22. Oktober 2010 Melden Teilen Geschrieben 22. Oktober 2010 Hi, Probiers mal mit dieser exe. cu blub Blub-PureOS.zip Zitieren Link zu diesem Kommentar
mcpuser 11 Geschrieben 23. Oktober 2010 Autor Melden Teilen Geschrieben 23. Oktober 2010 Hi,Probiers mal mit dieser exe. cu blub Hallo, danke dir. Was macht die EXE denn genau? Gruß Wolfgang Zitieren Link zu diesem Kommentar
mcpuser 11 Geschrieben 23. Oktober 2010 Autor Melden Teilen Geschrieben 23. Oktober 2010 Die Ausgabe ist leider zu wenig da ich noch Architektur und SP Version angezeigt haben möchte. folgende Frage drängt sich bei mir nun auf. Ich habe bspw. folgenden Befehl wmic os get caption Kann ich die Ausgabe in einer Variablen speichern? Gruß Wolfgang Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 23. Oktober 2010 Melden Teilen Geschrieben 23. Oktober 2010 (bearbeitet) 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 23. Oktober 2010 von blub Zitieren Link zu diesem Kommentar
mcpuser 11 Geschrieben 25. Oktober 2010 Autor Melden Teilen Geschrieben 25. Oktober 2010 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 Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 25. Oktober 2010 Melden Teilen Geschrieben 25. Oktober 2010 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 Zitieren Link zu diesem Kommentar
mcpuser 11 Geschrieben 25. Oktober 2010 Autor Melden Teilen Geschrieben 25. Oktober 2010 ah ok, ich habe die Parameter ohne Komma angegeben sehr hübsch danke Da absolute Oberhammer wäre jetzt aber natürlich auch noch wenn vor dem Servicepack noch SP stehen würde. Kann ich da noch den Text einfügen? Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 25. Oktober 2010 Melden Teilen Geschrieben 25. Oktober 2010 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 Zitieren Link zu diesem Kommentar
mcpuser 11 Geschrieben 25. Oktober 2010 Autor Melden Teilen Geschrieben 25. Oktober 2010 Nein, das möchte ich nicht - da ich von dem Thema nix verstehe frage ich halt. Ich habe gedacht ich mach ne Pipe rein dann ein echo und weiter mit dem nächsten Befehl wmic os get caption | echo hallo123 | wmic os get osarchitecture aber die ausgabe ist dann nur der letzte Befehl Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 25. Oktober 2010 Melden Teilen Geschrieben 25. Oktober 2010 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 Zitieren Link zu diesem Kommentar
mcpuser 11 Geschrieben 25. Oktober 2010 Autor Melden Teilen Geschrieben 25. Oktober 2010 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 Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 25. Oktober 2010 Melden Teilen Geschrieben 25. Oktober 2010 (bearbeitet) '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 25. Oktober 2010 von blub Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 26. Oktober 2010 Melden Teilen Geschrieben 26. Oktober 2010 (bearbeitet) 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 26. Oktober 2010 von NilsK Link zu c't-Artikeln Zitieren Link zu diesem Kommentar
mcpuser 11 Geschrieben 26. Oktober 2010 Autor Melden Teilen Geschrieben 26. Oktober 2010 Hallo zusammen, danke für eure Hilfe. Klasse Geschichte Grüße Wolfgang Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.