Top-Themen

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

Getosversion.vbs - Betriebssystem sowie die Versionsnummer per Script bestimmen

Mitglied: Schuladmin

Schuladmin (Level 1) - Jetzt verbinden

07.09.2005, aktualisiert 26.07.2007, 31123 Aufrufe, 4 Kommentare

In mehreren Beiträgen ist die Frage aufgetreten, wie man das installierte BS von Rechnern innerhalb eines Netzwerkes bestimmen kann, ohne erst den Rechner zu Fuß aufsuchen zu müssen. Folgend ein kleines VBS, das die gewünschte Infos ausgibt und noch sehr ausbaufähig ist!!!!!!!!!!!!!!!!!!
Leider muß ich anprangern, das es hier kein Script-Bereich mit VBS und WS-Script gibt, denn das sind durchaus gängige Werkzeuge für Admins.
Egal!

Mein Kollege Biber wird ein Batchfile nachziehen, das die gleichen Aufgabe löst!

Mfg

schuladmin

http://www.73s.de

01.
'v1.0******************************************************************** 
02.
' File:   	        GetOSVersion.vbs 
03.
' Autor:  	        schuladmin  
04.
' verwendet:    WMI       
05.
' Plattformen:   Win98/WinNT/ -> Voraussetzung WMI installiert 
06.
'	         2k/XP 
07.
' Indentifiziert das installierte Betriebssystem sowie die Versionsnummer 
08.
'************************************************************************ 
09.
 
10.
Titel=" GETOSVERSION" 
11.
Eingabe = InputBox("Geben Sie die IP oder den Namen des Rechners ein !",Titel) 
12.
 
13.
If Eingabe="" then MsgBox" . . . dann halt nicht!",,WScript.ScriptName 
14.
If Eingabe="" then WScript.Quit 
15.
 
16.
strComputer = Eingabe 'Name oder IP eingeben 
17.
 
18.
Set objWMIService = GetObject("winmgmts:" _ 
19.
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
20.
Set colOperatingSystems = objWMIService.ExecQuery _ 
21.
    ("Select * from Win32_OperatingSystem") 
22.
For Each objOperatingSystem in colOperatingSystems 
23.
    Wscript.Echo objOperatingSystem.Caption & " " & _ 
24.
        objOperatingSystem.Version 
25.
Next
Mitglied: Biber
07.09.2005 um 21:55 Uhr
Okay,
wie angekündigt, nun die Variante mit Bordmitteln.
Ergänzt sich ganz gut, denn die Batch/CMD-Variante ist hauptsächlich für einen Zweck gedacht: die aktive Betriebssystemversion des Clients - zum Beispiel im Login-Script- zu checken.
Und der Client hat ja im ungünstigsten Fall weder WMI noch *.vbs noch RegEdit.exe erlaubt.

Also dann, behelfsmäßig drei Strategien skizziert:
Erste Variante: Über "Ver" und "find.exe" oder "findstr.exe". Strategie: "Ver"-Output scannen und in eine Variable schreiben.
01.
>ver 
02.
Microsoft Windows XP [Version 5.1.2600]
Führt zu GetOsversionClassic.bat
GetOsVersionClassic.bat ... wurde schon mal skizziert unter Betriebssystem bestimmen
01.
@echo off 
02.
SET OSVERSION=  
03.
::-- Test auf W98 oder älter  
04.
if "%OS%"=="" goto Win9x  
05.
 
06.
set tmpDatei=%TEMP%\version.txt  
07.
ver >%tmpdatei%  
08.
 
09.
findstr /i 2000 %tmpdatei% >nul  
10.
if ERRORLEVEL 1 goto test2k3  
11.
set OSVERSION=2000 
12.
goto weiter  
13.
 
14.
 
15.
:test2k3  
16.
find /i "Microsoft Windows [Version 5" %tmpdatei%> nul 
17.
set OSVERSION=2003  
18.
goto weiter  
19.
 
20.
:testxp  
21.
findstr /i XP %tmpdatei% >nul || goto testvista  
22.
set OSVERSION=XP  
23.
goto weiter  
24.
 
25.
:testvista 
26.
findstr /i "Microsoft Windows [Version 6"  %tmpdatei%> nul || goto testNT4 
27.
Set OSVERSION=Vista 
28.
goto weiter 
29.
 
30.
:testnt4  
31.
findstr /i "4.0" %tmpdatei% >nul  
32.
if ERRORLEVEL 1 goto weiter  
33.
set OSVERSION=NT4  
34.
goto weiter  
35.
 
36.
:Win9x  
37.
set OSVERSION=Win9x  
38.
 
39.
:weiter  
40.
ECHO Betriebssystem ist "%OSVERSION%" gesetzt in der Variablen %%OSVERSION%%. Werte sind "Win9x", "2000", "2003", "XP", "NT4", "Vista"
Variante zwei... wenn ich es gar nicht so genau wissen will, sondern nur in einem Batch sicherstellen will, dass der Client zu einem von mir unterstützten Betriebssysten gehört, dann
01.
-----snipp GetOsVersion1.bat---- 
02.
@ECHO OFF  
03.
IF ;-%OS%(==:-<whatever>( goto Lachnummer 
04.
SET OSVERSION= 
05.
FOR /f "tokens=1,2,3* delims= " %%i in ('ver') do set OSVERSION=%%i %%j %%k 
06.
if "%OSVERSION%" == "Microsoft Windows [Version" (goto done) 
07.
if "%OSVERSION%" == "Microsoft Windows 2000" (goto done) 
08.
if "%OSVERSION%" == "Windows NT Version" (goto done) 
09.
if "%OSVERSION%" == "Microsoft Windows XP" (goto done) 
10.
echo Nicht vorgesehene Version: %OSVERSION% 
11.
echo Das Betriebssystem ist nicht Windows NT, Windows 2000, XP oder 2003.  
12.
exit 0 
13.
:Lachnummer 
14.
echo Dein Betriebssystem wird nicht in der Lage sein, diesen Batch abzuarbeiten ^(Win9x?^).  
15.
exit 1  
16.
:done 
17.
echo Das Betriebssystem ist [%OSVERSION%]. Steht in der Variablen "%%OSVERSION%%"  
18.
...weitere Befehle  
19.
:: ------snapp-------
Dritte Variante, etwas moderner:
01.
-------snipp-----GetOsversion2.bat------ 
02.
@ECHO OFF 
03.
:: FÜR  OS-Versionen: NT4/2000/XP/2003. 
04.
:: Parameter: %1 Variablenname für OS-Version 
05.
:: Beispiel : GetOsVersion2.bat OSVer 
06.
:: ohne Parameter wird OSVERSION gesetzt. 
07.
IF [%1]==[] %0 OSVERSION 
08.
SETLOCAL ENABLEEXTENSIONS 
09.
IF :-%OS%((==:-(( (echo Sorry, das läuft nicht unter Win9x...) & exit 1 
10.
for /f "tokens=1-2 delims=." %%a in ('NET CONFIG WORK^|findstr/b /c:"Soft"') do ( 
11.
  for %%i in (%%a%%b) do set osv=%%i) 
12.
endlocal & SET "%1=%osv:40=NT40%" & SET "%1=%osv:2002=XP%" & (goto :EOF)
Weitere Verfeinerungen sind natürlich möglich, wenn Reg.exe oder RegEdit.exe auf den Clients verfügbar sind. dann kann ich auch ohne Verrenkungen feststellen, ob es sich um einen NT4-Server handelt oder welche Servicepacks installiert sind.

Liebe Grüße, besonders an Schuladmin
Frank / der Biber aus Bremen
[Edit 10.4.2007] In Ansätzen eine Prüfung für das inzwischen kursierende "Vista" skizziert[/Edit]
Bitte warten ..
Mitglied: SMU
26.07.2007 um 19:37 Uhr
...ähmm
Kann man nicht einfach ein ordinäres "ver" in die BlackBox schicken und das auswerten ?
z.B. so ???

@echo off
for /f "tokens=3-4 delims=[] " %%a in ('ver') do echo %%a %b
pause

geht vielleicht manches mal einfacher als man denkt...

SMU
Bitte warten ..
Mitglied: Biber
26.07.2007 um 20:03 Uhr
Jepp, SMU,

manchmal geht es einfacher als man/frau denkt.
Aber nicht immer.

Der Kern in meinem Kommentar oben lautet ähnlich wie Dein Ansatz:

...
FOR /f "tokens=1,2,3* delims= " %%i in ('ver') do set OSVERSION=%%i %%j %%k
if "%OSVERSION%" == "Microsoft Windows [Version" (goto done)
if "%OSVERSION%" == "Microsoft Windows 2000" (goto done)
if "%OSVERSION%" == "Windows NT Version" (goto done)
if "%OSVERSION%" == "Microsoft Windows XP" (goto done)
echo Nicht vorgesehene Version: %OSVERSION%
....

Wie vielleicht zu erahnen ist, würden die eckigen Klammern zwar für einige Versionen funktionieren. Allerdings müsstest Du dann tatsächlich das Wissen haben, von der Versionsnummer auf die Aussage "versionsnummer" bedeutet "XP Pro" oder "Win 2003 Server" zu kommen.
Bsp.:
> ver
Microsoft Windows XP [Version 5.1.2600]
--> "Version 5.1.2600" bedeutet "Microsoft Windows XP".

In den Ansätzen oben ging es darum, wenigstens die paar "menschenlesbaren" Strings wiederzufinden, die M$ in der Versionsangabe dagelassen hat.

Grüße
Biber
Bitte warten ..
Mitglied: SMU
26.07.2007 um 20:10 Uhr
...tja
Vor dem Erfolg haben eben die Götter den Schweiß gesetzt.

Ich habe da fürher auch mal rumgefummelt.
eider habe ich keine zuverlässige Quelle gefunden die die Zuordnung der Versionnummern bestätigt. Aber irgendwo muss man wohl einen Break machen.

Wir wissen ja nicht wirklich welchen Hintergrund diese Nummern haben.

aber so ist das eben...

SMU
Bitte warten ..
Ähnliche Inhalte
Linux

Das nächste Microsoft-Betriebssystem basiert auf Linux

Information von kgbornLinux5 Kommentare

Ok, aktuell sind viele Mitleser wohl schon im Bett und der Frühstückskaffee kann auch (noch) nicht hochkommen. Nachdem die ...

Hardware

Google lieferte Pixel 2 XL ohne Android-Betriebssystem aus

Information von BassFishFoxHardware3 Kommentare

Wohooo! Endlich das OS frei wählen können. ;-) Käufer des Google Pixel 2 XL (Test) erlebten beim ersten Einschalten ...

Windows 10

Microsoft plant neues Windows 10 Core Betriebssystem

Information von transoceanWindows 102 Kommentare

Moin, Microsoft möchte das klassische Windows durch ein neues CoreOS, ohne native Win32 API, ersetzten. Das neue System soll ...

Batch & Shell

Batch-Script für die Messung der Netzwerkgeschwindigkeit

Anleitung von KraemerBatch & Shell10 Kommentare

Moin zusammen, ich habe mich gerade eben hingesetzt, und eines meiner Scripte ein wenig zeigbar überarbeitet. Da die eine ...

Neue Wissensbeiträge
E-Mail
Email-Apps und Verhalten bei Pop3
Erfahrungsbericht von kfranzk vor 23 StundenE-Mail3 Kommentare

Hallo Freunde, da mir mein diesbezüglicher Faden als gelöst markiert wurde, muss ich hier neu aufsetzen. Ich arbeite bewusst ...

Hyper-V

Optimiertes Ubuntu per Microsoft Hyper-V-Schnellerstellung verfügbar

Anleitung von Frank vor 1 TagHyper-V

Für Microsofts Virtualisierungssoftware Hyper-V ist ab sofort auch ein optimiertes Ubuntu 18.04.1 LTS verfügbar. In der "Hyper-V-Schnellerstellung" App, die ...

Sicherheits-Tools

Trend Micro WorryFree Business Security (WFBS) 10 - neuer Patch 1470 verfügbar

Tipp von VGem-e vor 1 TagSicherheits-Tools1 Kommentar

Servus, mal sehen, ob mit Patch 1470, zu finden unter dann die angeblich fehlerhafte Funktion, die unter W10 im ...

Server-Hardware

Lösung für Ersatz eines defekter Raid-Controllers

Anleitung von wellknown vor 1 TagServer-Hardware4 Kommentare

Hallo, da ich nichts gefunden habe und selbst eine Lösung brauchte, hier eine kleine Anleitung für alle die vor ...

Heiß diskutierte Inhalte
Windows Server
Mit der alten Domäneprofil anmelden ohne Server
gelöst Frage von SyosseWindows Server37 Kommentare

Hallo Jungs Folgendes Szenario: Ich habe bei einem sehr kleinen Unternehmen (2Personen) den Server migriert, soweit hat alles geklappt. ...

Sicherheits-Tools
Virenprogramm lässt Programme nicht starten
Frage von SurferGirlSicherheits-Tools23 Kommentare

Hallo, ich bin neu hier, ich hoffe ich habe die richtige Rubrik gewählt. Falls nicht, tut es mir leid. ...

Windows Server
SQL Server Instanz (Eplan) auf WIN 2008 RC2 Server frisst RAM ohne Limit
Frage von derinderinderinWindows Server17 Kommentare

Hallo Zusammen, Wir haben hier einen Windows 2008 RC2 Server. Darauf läuft ein SQL Server Express 2014 Version 12.0.4232.0. ...

Windows 10
Best Practice für Schulungsräume
Frage von Sn0wFoxWindows 1016 Kommentare

Hallo, leider bin ich auch nach langer Suche nicht auf eine zufriedenstellende Nicht-Cloud-Lösung gestoßen und wollte mal Fragen ob ...