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, 31352 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
Batch & Shell
Robocopy Backup Script
Tipp von kunert0345Batch & Shell9 Kommentare

Backupscript zum Erstellen monatlicher Backups und zur täglichen Aktualisierung der monatlichen Backups:

Batch & Shell

Batch Script Editor - Programmvorstellung des Entwicklers

Tipp von wowItsDogeBatch & Shell16 Kommentare

Die bisher verfügbaren Batch Editoren sind entweder verbesserte Text Editoren, bei dem vom Nutzer Programmierkentnisse vorausgesetzt werden, oder haben ...

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 ...

Exchange Server

Mittels Batch-Script Exchange-Logs sammeln und archivieren

Anleitung von beidermachtvongreyscullExchange Server

Ich möchte hier eine recht einfache Lösung für ein Log-Archiving vorstellen. Jeder kennt das Problem, dass die meisten Dienste ...

Neue Wissensbeiträge
Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 3 TagenDatenschutz1 Kommentar

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 3 TagenSicherheit2 Kommentare

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 3 TagenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 4 TagenWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Heiß diskutierte Inhalte
Hyper-V
Hyper-V Manager startet, jedoch keine VM
Frage von NaleorHyper-V14 Kommentare

Hallo zusammen, auf meinem Windows 10 (Build 1703) Notebook von der Arbeit scheint Hyper-V plötzliche nicht mehr zu funktionieren. ...

Windows Server
Sonntagsfrage: Welchen Sinn seht Ihr noch im Server 2019 Essentials
Frage von ashnodWindows Server13 Kommentare

Guten Morgen, ich habe gestern den Windows Server 2019 Essentials als Trial in einer VM installiert um mir das ...

DNS
50 EUR für Telekom-, Unitymedia- und Vodafone-Kunden
Frage von Zorro1199DNS13 Kommentare

Hallo zusammen, wie evaluieren gerade das korrekte Einhalten von DNS-TTLs durch verschiedene Provider. Aktuell suchen wir noch Kunden der ...

Windows Server
Windows 2012 R2 - Skript um Druckerkonfiguration auszulesen und zu setzen
gelöst Frage von Der-PhilWindows Server11 Kommentare

Hallo! Kennt ihr eine Möglichkeit, per Skript die Konfiguration eines Druckers auszulesen und auf einen anderen anzuwenden? Hintergrund: Ich ...