superboh
Goto Top

Doppelte Einträge einer Liste per Batch aussortieren

Hallo,

ich lese alle 2 aus dem Eventlog des Fileservers per "psloglist" aus, wenn ein User die Warnschwelle der Kontingentverwaltung überschreitet.
An alle diese User möchte ich dann per "net send" eine Nachricht schicken.
Funktioniert auch soweit. Problem ist nur, dass es für manche User in den letzten 2 Stunden mehrere Einträge gibt uns der User somit die Nachricht auch mehrfach bekommt.

Wie kann ich das filtern?


Meine Batch sieht so aus:
psloglist \\SRV7 -i 36 -m 120 -s > %TEMP%\quota.txt
for /F "skip=1 tokens=8 delims=,\" %%i in (%TEMP%\quota.txt) do net send %%i ACHTUNG!! Sie haben Ihren zulässigen Speicherplatz auf Laufwerk H: überschritten.  
del %TEMP%\quota.txt


Und das ist die Liste, welche mir psloglist ausliest:
System log on \\SRV07:
39046,System,Ntfs,INFORMATION,SRV07,04.11.2008 17:05:21,36,grossl\FIRMA,Benutzer hat Schwellenwert auf Datenträger "E:" erreicht.    
39045,System,Ntfs,INFORMATION,SRV07,04.11.2008 16:58:12,36,bauers\FIRMA,Benutzer hat Schwellenwert auf Datenträger "E:" erreicht.    
39044,System,Ntfs,INFORMATION,SRV07,04.11.2008 16:51:29,36,grossl\FIRMA,Benutzer hat Schwellenwert auf Datenträger "E:" erreicht.    
39042,System,Ntfs,INFORMATION,SRV07,04.11.2008 16:42:05,36,ernstm\FIRMA,Benutzer hat Schwellenwert auf Datenträger "E:" erreicht.    
39041,System,Ntfs,INFORMATION,SRV07,04.11.2008 16:38:36,36,grossl\FIRMA,Benutzer hat Schwellenwert auf Datenträger "E:" erreicht.    

Gruß,
Thomas

Content-Key: 101070

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

Printed on: April 23, 2024 at 12:04 o'clock

Member: bastla
bastla Nov 05, 2008 at 11:25:43 (UTC)
Goto Top
Hallo superboh!

Das könnte (ungetestet) etwa so gehen:
psloglist \\SRV7 -i 36 -m 120 -s > %TEMP%\quota.txt
set U=%temp%\Users.txt
copy nul %U%>nul
for /F "skip=1 tokens=8 delims=,\" %%i in (%TEMP%\quota.txt) do (  
    findstr /x /c:"%%i" %U%>nul || (  
        net send %%i ACHTUNG!! Sie haben Ihren zulässigen Speicherplatz auf Laufwerk H: überschritten.
        >>%U% echo %%i
    )
)
del %TEMP%\quota.txt
Achtung: Nach dem "%%i" in Zeile 7 darf kein Leerzeichen folgen, da (siehe Schalter "/x") mit "findstr" die gesamte Zeile überprüft wird (um zB "Gut" und "Gutmann" voneinander unterscheidbar zu machen) !

Grüße
bastla
Member: superboh
superboh Nov 05, 2008 at 12:56:58 (UTC)
Goto Top
Spitze, genau das war es was ich gebraucht habe.
Vielen Dank!

Gruß,
Thomas