Frage von Sanctuaria, 32

Windows 7 Enterprise - Fail im OS-Name?

Lese gerade per Batch-File Betriebssystemnamen aus und durchlaufe dann je nach OS-Name das Skript weiter. Funktioniert mit Win 10, Win 8... und dann teste ich mit Windows 7 Enterprise und es geht nicht. Und ich suche stundenlang nach dem Problem und lasse mir dann den OS-Namen mal anzeigen, und dann sehe ich das!

Windows 7 Enterprise hat am ENDE des Namens standardmäßig ein Leerzeichen? Ist das Microsoft's Ernst? Also sprich: "Windows 7 Enterprise " <-? Sobald ich das entsprechend MIT Leerzeichen ins Skript geschrieben habe, läuft der Mist!

Aber ich hatte eigentlich nicht vor, für alle Versionen von Win7-10 eine Testumgebung aufzusetzen, nur um zu prüfen, ob Microsoft Deppen sind... Weiß irgendjemand, ob das tatsächlich standardmäßig im Betriebssystemnamen steht? Ich lese "systeminfo.exe" aus zur Ermittlung des OS-Namens. Oder kann mir jemand sagen, ob es noch mehr versteckte Fallen in Windows-OS-Namen gibt, die ich einkalkulieren muss??

Und wegen sowas habe ich stundenlang mein Skript angezweifelt...

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Etter, 11

Warum lieste nicht einfach die Betriebssystemversion aus? Und warum benutzte Batch und nicht Powershell?

[environment]::OSVersion.Version

https://en.wikipedia.org/wiki/List\_of\_Microsoft\_Windows\_versions

Gucks dir mal an.

Was genau haste überhaupt vor?

Kommentar von Sanctuaria ,

Schon umgeschrieben, ich lese die Version jetzt aus uns arbeite damit weiter. Trotzdem finde ich es total bekloppt von Microsoft, habe mich inzwischen in anderen Foren erkundigt und da bin ich nicht der einzige, dem das Probleme verursacht hat.

Die Version ist halt relativ unspezifisch, Ver 10.0 bezieht sich auf alle Windows-10-Versionen. Manchmal braucht man es etwas genauer.

PS: Dein Link bringt mir nix, denn dort sieht man Leerzeichen am Ende nicht. xD inzwischen weiß ich aber, dass Win7 Enterprise. Win7 Pro und Win7 Home Prem. alle am Ende ein Leerzeichen haben, andere Windows-Versionen haben das nicht... Naja. Fail, Microsoft, einfach fail.

Kommentar von Etter ,

Naja er bringt etwas, wenn du nur wissen willst, ob Windows 7 oder z.B. Windows 8 vorhanden ist. Die spezifische Version gibt es nicht wieder.

Da ist halt die Frage, was du eig. vorhast und wie du weiter mit dem Daten verfahren willst.

Allerdings wäre das mit dem Leerzeichen bei Powershell beim Debuggen recht schnell aufgefallen.

Kommentar von Sanctuaria ,

Ja, PowerShell kann alles besser... wird Zeit, dass ich mich einarbeit. :P

Kommentar von Etter ,

Viel Spaß ^^.

Die Einarbeitung ist eig recht einfach ^^.

Antwort
von qugart, 20

Ich würde da mit wmic arbeiten. Da sollten dir auch die Leerzeichen angezeigt werden.

Bsp.:

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

Nette Idee, vielen Dank für's Zeit nehmen. Allerdings lief mein Programm aufgrund des Win-Namens weiter, da ich nicht alle Windows-Versionen auf ner Testumgebung habe, konnte ich das weder Prüfen noch entsprechend Anweisungen einbauen, damit das trotz Leerzeichen am Ende ohne Error weiter läuft.

Bin jetzt auf Versionsnummern umgestiegen, aber leicht unzufrieden, einfach daneben von Microsoft und unprofessionell.

Kommentar von qugart ,

Ich sag's mal so....

Mit vernünftiger IT-Inventarisierung und -Dokumentation brauchts nicht sowas behelfsmäßiges. In einer IT-Umgebung mit Namen des Betriebssystem zu suchen....kann man machen.

Keine passende Antwort gefunden?

Fragen Sie die Community