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:
Und das ist die Liste, welche mir psloglist ausliest:
Gruß,
Thomas
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 101070
Url: https://administrator.de/contentid/101070
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo superboh!
Das könnte (ungetestet) etwa so gehen:
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
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
Grüße
bastla