fabmin
Goto Top

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.

Content-ID: 16302

Url: https://administrator.de/contentid/16302

Ausgedruckt am: 24.11.2024 um 14:11 Uhr

geTuemII
geTuemII 19.09.2005 um 14:30:43 Uhr
Goto Top
Sieh Dir mal LogInventory an, bis 20 Clients kostenlos, danach kostengünstig und kann noch viel mehr. face-smile

http://www.loginventory.de

HTH geTuemII
FaBMiN
FaBMiN 19.09.2005 um 14:56:23 Uhr
Goto Top
ich brauch was kostenloses für ca. 900Clients ;)
superboh
superboh 19.09.2005, aktualisiert am 30.03.2023 um 01:28:13 Uhr
Goto Top
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 --------
16640
16640 19.09.2005 um 14:59:51 Uhr
Goto Top
Hast Du Dir schon mal den MBSA von Microsoft angeschaut?

Ich aber gerade mal wieder - muss ich mit was anderem verwechselt haben face-wink
16640
16640 19.09.2005 um 15:06:33 Uhr
Goto Top
FaBMiN
FaBMiN 19.09.2005 um 15:22:44 Uhr
Goto Top
Erstmal vielen Dank, aber löst mein Problem leider nicht face-sad

Es sollen nur alle nicht W2KSP4 bzw. WXPSP2 in die \\zbw2ksv01\laufwerke\SPRIS\clients.txt geschrieben werden. Der rest kann in den Müll :O)
Biber
Biber 19.09.2005 um 15:57:34 Uhr
Goto Top
Moin FaBMiN,
Du kannst doch in eine der Zeilen von superbohs Script noch ein 'FIND /v "Service Pack 2"' bzw. 'FIND /v "Service Pack 4"' ergänzen, dann hast Du die beiden bekannten SPs rausgefiltert.

entweder vor dem ersten "find" oder später bei dem "echo .....>> ...*log".

Biber
Biber
Biber 20.09.2005 um 12:08:16 Uhr
Goto Top
@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..
@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.Bface-smile 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
FaBMiN 20.09.2005, aktualisiert am 30.03.2023 um 01:28:54 Uhr
Goto Top
Die Datei "'find /v tempi for /f "tokens=1 delims=" %i in Service Pack 4" kann nicht gefunden werden.

Sagt er mir immer und legt mir aber die korrekte Datei mit Inhalt an, allerdings steht immer Service Pack 4 dahinter face-sad
Biber
Biber 20.09.2005 um 16:33:49 Uhr
Goto Top
...und ich sach noch "ungetestet".. *gg

da fehlt ein Prozentzeichen hinter "%KnownSP"
%KnownSP% muss es heißen, sorry..

Ich editier das mal oben.
Biber
FaBMiN
FaBMiN 21.09.2005 um 07:44:57 Uhr
Goto Top
face-smile jetzt sagt er mir

Service nicht gefunden :P
Biber
Biber 21.09.2005 um 09:33:19 Uhr
Goto Top
@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..:

IF [%Servicepack%]== goto :UnsetVars
wenn dieser Computer NICHTS in die Logdatei schreiben soll.

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
FaBMiN
FaBMiN 21.09.2005 um 13:23:47 Uhr
Goto Top
oki face-smile
Hat jmd von euch schonmal die Tecom DSL Daten per UPS bekommen?Weil ich heute nicht zuhause bin...wie immer arbeiten&die deppen von der Telekom meine Lieferanschrift nicht weitergegeben haben :/
Kann man das dann Abhohlen?