set co_mazat=c:\progra~1\data
set semafor=c:\progra~1\semafor_data.000
if not exist %semafor% cmd /c rmdir /s /q %co_mazat%
echo 0 > %semafor%
Vylepšená verze http://www.strachota.net/vypis-chyb-v-tiskovych-frontach-do-e-mailu/, která každou jedinečnou chybu pošle pouze jednou.
set log=c:\scripts\tiskovefronty\chyba1.log
set templog=c:\scripts\tiskovefronty\chyba2.log
set semafor=c:\scripts\tiskovefronty\semafor.dat
set mail_od=print.spooler@%userdnsdomain%
set mail_komu=admin@%userdnsdomain%
set mail_server=10.50.201.95
if not exist %semafor% (echo 0 > %semafor%)
set stavfronty=wmic printjob where "status like 'error'" get document, owner, name, hostprintqueue, status, timesubmitted, totalpages
set poslimail=postie -host:%mail_server% -to:%mail_komu% -from:%mail_od% -s:"Spooler error" -msg:"Prilozen log"
%stavfronty% > "%log%"
for /f %%a in (semafor.dat) do (set stavsemaforu=%%a)
if %stavsemaforu% == 1 goto jechyba
:nenichyba
%stavfronty% > "%log%"
type "%log%" | findstr /i "error"
if errorlevel 1 (
echo 0 > %semafor%
) else (
echo 1 > %semafor%
%poslimail% -a:"%log%"
)
goto konec
:jechyba
%stavfronty% > "%templog%"
fc "%templog%" "%log%"
if errorlevel 1 (
%poslimail% -a:"%templog%"
goto konec
) else (
goto :testchyby
)
:testchyby
type "%templog%" | findstr /i "error"
if errorlevel 1 (
echo 0 > %semafor%
) else (
echo 1 > %semafor%
)
:konec
Pomocí aktivačních procedur lze automatizovat proces sledování a následného „reagování“ na různé stavy systému a aplikací, které jsou zapsané do logu událostí. Např. chci sledovat čerpání diskového prostoru na serveru uživateli, mám nastavené diskové kvóty pro každého uživatele. Při vyčerpání místa na síťovém (vyčerpání kvóty) disku se zapisují do systém logu události typu „Informace“ ID 36 a ID 37. Vytvořím si aktivační procedury, jež při zapsání vyjmenovaných událostí do logu spustí jednoduchý skript, který mě upozorní na jejich výskyt e-mailem a promaže uživatelská data od tmp souborů, souborů se zakázanými příponami, anebo extrémně staré soubory (jsou zálohovány).
C:\eventtriggers /create /tr "Disk kvota" /eid 36 /tk c:\skripty\id36.bat
Zadejte heslo příkazu run as pro Administrator:*********
Úspěch: Byl vytvořen aktivační signál události "Disk kvota".
C:\eventtriggers /query
ID aktivač Název aktivační procedury Úloha
========== ========================= ========================================
1 Disk kvota c:\skripty\id36.bat
C:\
Více zde http://technet.microsoft.com/en-us/library/bb490901.aspx