@echo off rem shortcut.lnk Minimized, Icon: %SystemRoot%\system32\SHELL32.dll set DEBUG=off rem ------------------------------------------------------------------ set NAS=router rem set NASPATH=public\Office\backup rem set BCKDRIVE=Z: set LOG="%USERPROFILE%\logoff.log" rem ------------------------------------------------------------------ set BLOCKINPUT="C:\Program Files\utl\blockinput.exe" rem blat.exe -installSMTP szepe.net COMPUTER@DOMAIN.TLD 5 25 - freemail@szepe.net freemail set BLAT="C:\Program Files\smartmontools\bin\blat.exe" set CCLEANER="C:\Program Files\CCleaner\CCleaner.exe" set DEFRAGGLER="C:\Program Files\Defraggler\df.exe" set ARECA="C:\Program Files\Areca\areca_cl.exe" set ERUNT="C:\Program Files\ERUNT\AUTOBACK.EXE" set NTREGOPT="C:\Program Files\ERUNT\NTREGOPT.EXE" rem ------------------------------------------------------------------ set BLATOPTS="-" -to szepeviktor@t-online.hu -subject "[admin] %COMPUTERNAME% logoff szkript" set CCLEANEROPTS="/AUTO" set DEFRAGGLEROPTS="/QD" set ARECAOPTS="backup -config" set BCFGS="%USERPROFILE%\.areca\workspace\*.bcfg" set ERUNTOPTS="%SystemRoot%\ERUNT\AutoBackup\#Date# /day:30" set NTREGOPTOPTS="silent" set DIESOUND="%SystemRoot%\Media\chord.wav" set ERROR=- set NAS_TRIES=0 rem ------------------------------------------------------------------ rem echo ----------------------- felhasznaloi resz --- :SETTING color f1 title Karbantartas levelcim: info@szepe.net CALL :LOG "--- start: %~0" rem au3: #NoTrayIcon rem BlockInput(1); rem Sleep(3600*1000); rem no /WAIT CALL :NOTDEBUGRUN start "block input" /MIN %BLOCKINPUT% set STATE=manual rem only in XP Professinal if EXIST "%SystemRoot%\system32\tasklist.exe" ( tasklist /FI "IMAGENAME eq explorer.exe" | find /I "explorer.exe" >nul if ERRORLEVEL 1 ( rem logoff-ban vagyunk, mert nem fut az explorer set STATE=logoff ) ) CALL :DEBUG "logoff state: %STATE%" :DEPENDS CALL :REGREAD "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion" CALL :REGREAD "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\%RET%" "JavaHome" set JAVA="%RET%\bin\java.exe" if NOT EXIST %JAVA% CALL :DIE "no java for Areca" FOR /F "usebackq tokens=*" %%J in (`%JAVA% -version 2^>^&1 ^| findstr version`) do set JV="%%J" CALL :DEBUG %JV% :KILLPROC if EXIST "%SystemRoot%\system32\tskill.exe" ( tskill outlook 2>nul tskill msimn 2>nul tskill wlmail 2>nul tskill thunderbird 2>nul tskill firefox 2>nul tskill chrome 2>nul tskill iexplore 2>nul tskill opera 2>nul tskill Safari 2>nul ) :CLEAN CALL :RUN "clean" %CCLEANER% %CCLEANEROPTS% :NASSEARCH ping -n 2 %NAS% >nul if ERRORLEVEL 1 ( set /A NAS_TRIES+=1 echo -- echo KEREM KAPCSOLJA BE A MENTESHEZ SZUKSEGES KESZULEKET echo. goto :NASSEARCH ) CALL :LOG "NAS pings=%NAS_TRIES%" rem :MAPNAS rem net use %BCKDRIVE% /d rem net use %BCKDRIVE% \\%NAS%\%NASPATH% /persistent:NO rem if ERRORLEVEL 1 CALL: DIE "cannot attach NAS" :BACKUP rem FIXME .bcfg-ket NAS-ra menteni for %%C in (%BCFGS%) do ( CALL :RUN "areca" %ARECA% %ARECAOPTS% "%%C" CALL :LOG "areca %%~nC Ret=%RET%" ) rem echo ----------------------- rendszergazdai resz --- :ISADMIN rem XP Pro: whoami /PRIV | find /I "SeSecurityPrivilege" >nul reg query "HKU\S-1-5-19" >nul if ERRORLEVEL 1 CALL :DIE "not admin" :ERUNT CALL :RUN "erunt" %ERUNT% %ERUNTOPTS% :DEFRAG CALL :RUN "defrag" %DEFRAGGLER% %SystemDrive% %DEFRAGGLEROPTS% :NTREGOPT CALL :RUN "ntregopt" %NTREGOPT% %NTREGOPTOPTS% :SHUTDOWN if [%STATE%]==[manual] CALL :NOTDEBUGRUN shutdown -s -t 3 -c "logoff szkript" -f CALL :DEBUGRUN CALL :TEST CALL :LOG "--- end: %ERROR%" exit 0 ::----------------------------------------------------------------------- :RUN :: CALL :RUN "name" "path.exe" "arg1 arg2 arg3..." if /I [%DEBUG%] EQU [on] ( if EXIST %2 ( CALL :DEBUG "program exists=%~2" set RET=0 ) else ( CALL :DEBUG "PROGRAM MISSING=%~2" set RET=1 ) rem FIXME missing opt '"' CALL :DEBUG " options=%~3 %~4 %~5 %~6 %~7 %~8 %~9" goto :EOF ) if EXIST %2 ( echo start %~1: %2 %~3 %4 %5 %6 %7 %8 %9 start %1 /WAIT /MIN %2 %~3 %4 %5 %6 %7 %8 %9 set RET=%ERRORLEVEL% ) else ( set ERROR=%ERROR%__NOTFOUND-%~1 set RET=99 ) goto :EOF :REGREAD ::CALL :REGREAD "" "" :: ret: %RET% ::REG.EXE 2000/XP: delims= Vista,7: delims= ::FIXME value name contains space set "RET=" for /F "tokens=2*" %%A in ('reg.exe QUERY %1 /v %2 2^>nul ^| find "REG_"') do set RET=%%B goto :EOF :REGREAD2 ::CALL :REGREAD2 "" "" :: ret: %RET% ::value name HAS 1 space set "RET=" for /F "tokens=3*" %%A in ('reg.exe QUERY %1 /v %2 2^>nul ^| find "REG_"') do set RET=%%B goto :EOF :LOG ::CALL :LOG "message text" echo [%DATE% %TIME%] %~1 %~2 %~3 >>%LOG% goto :EOF :DEBUG ::CALL :DEBUG "debug message" ... if /I [%DEBUG%] EQU [on] ( echo [DEBUG] %~1 %~2 CALL :LOG [DEBUG] %1 %2 ) goto :EOF :DEBUGRUN if /I [%DEBUG%] EQU [on] %1 %2 %3 %4 %5 %6 %7 %8 %9 goto :EOF :NOTDEBUGRUN if /I [%DEBUG%] NEQ [on] %1 %2 %3 %4 %5 %6 %7 %8 %9 goto :EOF :TEST CALL :DEBUG "--- blockinput ---" CALL :RUN "blockinput" %BLOCKINPUT% CALL :DEBUG "--- blat ---" CALL :RUN "blat" %BLAT% if [%RET%]==[0] %BLAT% -profile >> %LOG% if [%RET%]==[0] %BLAT% %BLATOPTS% -body "DEBUG run" >> %LOG% CALL :DEBUG "--- ping ---" ping -n 1 %NAS% >> %LOG% if ERRORLEVEL 1 CALL :DEBUG "PING ERROR" CALL :DEBUG "--- log ---" CALL :DEBUG "log path=" %LOG% for %%L in (%LOG%) do if NOT EXIST %%~dpL CALL :DEBUG "MISSING LOG PATH" CALL :DEBUG "--- .areca.bcfg ---" set BCFG_COUNT=0 for %%C in (%BCFGS%) do set /A BCFG_COUNT+=1 >nul CALL :DEBUG "%BCFG_COUNT% areca config file/s" if %BCFG_COUNT%==0 CALL :DEBUG "MISSING CONFIG FILES" CALL :DEBUG "--- sound ---" CALL :DEBUG "die sound=" %DIESOUND% if NOT EXIST %DIESOUND% CALL :DEBUG "MISSING DIE SOUND" start "sound play" /WAIT %DIESOUND% CALL :DEBUG "--- TODO ---" echo 1-debug=on, 2-hang, 3-HIBA, 4-mail@t-online, 5-ikon, 6-debug=off pause goto :EOF :DIE ::CALL :DIE "error message" CALL :LOG %1 echo --- CALL :RUN "blat" %BLAT% %BLATOPTS% -body "error:%1 ERROR=%ERROR%" CALL :RUN "chord" %DIESOUND% exit 1