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.
Suche ein Script/Batch, das mir Rechner mit alten ServicePackx in eine log schreibt.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 16302
Url: https://administrator.de/contentid/16302
Ausgedruckt am: 24.11.2024 um 14:11 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
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 Build: 2600.xpsp_sp2_gdr.050301-1519, Service Pack 2
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