W2K und XP Service Pack Versionen im Netzwerk auslesen
Script oder Batch zum filtern älterer ServicePack Versionen
Suche ein Script/Batch, das mir Rechner mit alten ServicePackx in eine log schreibt.
<img src='/images/articles/65ce70d8d8b3a4c7812ebd8ff7cf82f0-windowsxpsp2.gif' align='default' hspace='0' vspace='0' border='0'>
<img src='/images/articles/65ce70d8d8b3a4c7812ebd8ff7cf82f0-windowsxpsp2.gif' align='default' hspace='0' vspace='0' border='0'>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-Key: 16302
Url: https://administrator.de/contentid/16302
Ausgedruckt am: 25.05.2022 um 16:05 Uhr
13 Kommentare
Neuester Kommentar
Sieh Dir mal LogInventory an, bis 20 Clients kostenlos, danach kostengünstig und kann noch viel mehr. 
http://www.loginventory.de
HTH geTuemII
http://www.loginventory.de
HTH geTuemII
Hallo FaBMiN,
das folgende Script liest das Servicepack aus der Registry aus. Statt die Variable auf dem Schirm auszgeben, kannst Du sie auch per
Echo %Computername% : %ServicePack% >> \\server\logs\servicepack.log"
in ein Logfile schreiben. Das Ganze im Loginscript ...
Gruss,
Thomas
-------- schnipp
regedit /e %temp%\ServicePack.txt "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
for /f "tokens=2 delims==" %%i in ('find /n "CSDVersion" %temp%\ServicePack.txt') do set ServicePack=%%i
for /f "tokens=1 delims=" %%i in (%ServicePack%) do set ServicePack=%%i
echo %ServicePack%
del %temp%\ServicePack.txt
------- schnipp
das folgende Script liest das Servicepack aus der Registry aus. Statt die Variable auf dem Schirm auszgeben, kannst Du sie auch per
Echo %Computername% : %ServicePack% >> \\server\logs\servicepack.log"
in ein Logfile schreiben. Das Ganze im Loginscript ...
Gruss,
Thomas
-------- schnipp
regedit /e %temp%\ServicePack.txt "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
for /f "tokens=2 delims==" %%i in ('find /n "CSDVersion" %temp%\ServicePack.txt') do set ServicePack=%%i
for /f "tokens=1 delims=" %%i in (%ServicePack%) do set ServicePack=%%i
echo %ServicePack%
del %temp%\ServicePack.txt
------- schnipp

Hast Du Dir schon mal den MBSA von Microsoft angeschaut?
Ich aber gerade mal wieder - muss ich mit was anderem verwechselt haben
Ich aber gerade mal wieder - muss ich mit was anderem verwechselt haben

geh' mal da gucken: http://www.sysinternals.com/Utilities/PsInfo.html
@FaBMiN
noch mal im ganzen Satz...
......nur Skizze, nicht getestet!!!!!
---- superbohs Script mit einem "Find /v"-Filter (bekannte SPs ausschließen/NICHT loggen)
---- und Trennung nach XP- und W2K-Rechnern..
Aber es gibt noch zwei nette Oneliner-Varianten, die auch in Frage kämen.
Du hast doch bestimmt die Support-Tools und das ResKit installiert?
Dann kannst Du doch auch alle Infos von deinem Rechner aus einsammeln.
a) Try this:
[PathToSrvInfo\]srvinfo |find ", Service Pack"
(Output z.B
Build: 2600.xpsp_sp2_gdr.050301-1519, Service Pack 2
b) or this (in one line!!)..
(findet alle XP-Computer mit ServicePack 1)
Liebe Grüße
Biber
[Edit] Tippfehlerberichtigung s.u. [/Edit]
noch mal im ganzen Satz...
......nur Skizze, nicht getestet!!!!!
---- superbohs Script mit einem "Find /v"-Filter (bekannte SPs ausschließen/NICHT loggen)
---- und Trennung nach XP- und W2K-Rechnern..
@Echo off
..
....
Call :UnSetVars
FOR /f "tokens=1,2,3* delims= " %%i in ('ver') do set OSVERSION=%%i %%j %%k
::---- bei Bedarf... if "%OSVERSION%" == "Microsoft Windows [Version" (goto W2003Server)
if "%OSVERSION%" == "Microsoft Windows 2000" (goto W2KStuff)
::---- bei Bedarf... if "%OSVERSION%" == "Windows NT Version" (goto NTStuff)
if "%OSVERSION%" == "Microsoft Windows XP" (goto XPstuff)
goto :UnSetVars && Rem und da es ein GOTO ist auch zum Ende..
:XPstuff
Set Log=\\FaBMiNServer\freigabe\XPComputers.log
Set KnownSP="Service Pack 2"
goto RegCheck
:W2KStuff
Set KnownSP="Service Pack 4" && Rem oder wie es heißen mag..
set log=\\FaBMiNServer\freigabe\W2kComputers.log
:RegCheck
regedit /e %temp%\ServicePack.txt "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
for /f "tokens=2 delims==" %%i in ('find /v %KnownSP% %temp%\ServicePack.txt ^|find /n "CSDVersion" ') do set ServicePack=%%i
for /f "tokens=1 delims=" %%i in (%ServicePack%) do set ServicePack=%%i
Echo %Computername% : %ServicePack% >>%Log%
:UnSetvars
SET OSVERSION=
SET KnownSP=
SET Log=
:EndOftheKnownWorld and EndOfBatch
--------------
Aber es gibt noch zwei nette Oneliner-Varianten, die auch in Frage kämen.
Du hast doch bestimmt die Support-Tools und das ResKit installiert?
Dann kannst Du doch auch alle Infos von deinem Rechner aus einsammeln.
a) Try this:
[PathToSrvInfo\]srvinfo |find ", Service Pack"
(Output z.B
b) or this (in one line!!)..
For /f "tokens=1,2,3,4" %%i in ('CScript //nologo [PathToSupporttools\]search.vbs "LDAP://dc=FabMiN,dc=FabMiNsfirma,dc=com" /Q /C:"&(ObjectCategory=computer)(operatingsystem=Windows XP Professional)(operatingsystemservicepack=service pack 1)"^| find " objects."') do ECHO %%j
(findet alle XP-Computer mit ServicePack 1)
Liebe Grüße
Biber
[Edit] Tippfehlerberichtigung s.u. [/Edit]
@FaBMiN
Merkwürdig... *gg
Okay, vielleicht sollte man/frau die zweite For-Schleife und das Schreiben in die Logdatei nur machen, wenn ein gefundenes Servicepack (ungleich %KnownSP%) übrig bleibt.
Also vor dem 2.FOR..:
wenn dieser Computer NICHTS in die Logdatei schreiben soll.
oder, wenn dieser Computer auch in der Logdatei stehen soll:
Das heißt, *grübel*... die zweite FOR-Schleife macht für mich gar keinen Sinn... lass die einfach ganz weg. *lacht*
Warte erstmal, bis superboh sich meldet, der muss mir erstmal den Sinn der zweiten FOR-Schleife erklären.
*Dringend Kaffee brauche*
Biber
Merkwürdig... *gg
Okay, vielleicht sollte man/frau die zweite For-Schleife und das Schreiben in die Logdatei nur machen, wenn ein gefundenes Servicepack (ungleich %KnownSP%) übrig bleibt.
Also vor dem 2.FOR..:
IF [%Servicepack%]==[] goto :UnsetVars
oder, wenn dieser Computer auch in der Logdatei stehen soll:
IF [%Servicepack%]==[] Set Servicepack="gecheckt und ok"
Das heißt, *grübel*... die zweite FOR-Schleife macht für mich gar keinen Sinn... lass die einfach ganz weg. *lacht*
Warte erstmal, bis superboh sich meldet, der muss mir erstmal den Sinn der zweiten FOR-Schleife erklären.
*Dringend Kaffee brauche*
Biber