о как я извратился с перебивкой... надоело уже ждать...
Итак, код запуска "проверяющего" задания - checker.bat
Код:
![Выделить весь код](images/misc/selectcode.png)
@cls
@set ADMINHOST=frog
@rem set %ADMINNAME=Администратор
@set ADMINNAME=Ђ¤¬Ё*Ёбва в®а
@rem уберите rem в ледующей строке, если хотите хранить пароль внутри скрипта
@rem set ADMINPSWD=*p*a*s*s*
@set STASKNAME=Host_Checker
@set STASKHOME=c:\Temp\DZ
@set STASKFILE=C:\Temp\DZ\check_hosts.bat
@set STASKLOGS=C:\Temp\DZ\checker.logs
@set STASKTIME=1
@rem ===========================================================================
@if "%1"=="" goto usage
@if "%1"=="start" goto start_here
@if "%1"=="stop" goto stop_here
@if "%1"=="reset" goto reset_here
@goto usage
:stop_here
@echo Stopping %STASKNAME%...
@schtasks /delete /tn %STASKNAME% /F
@>> %STASKLOGS% echo Attemps to stop %STASKNAME%
@>> %STASKLOGS% echo %DATE% (%TIME%)
@goto exit_here
:reset_here
@echo Don't forget to launch %STASKNAME%!
@echo Reset will only refresh offlined hosts.
@if exist %STASKHOME%\*.offlined del %STASKHOME%\*.offlined
@if exist %STASKHOME%\*.badguy del %STASKHOME%\*.badguy
@if exist %STASKHOME%\temporary.tmp del %STASKHOME%\temporary.tmp
@goto exit_here
:start_here
@echo Launching %STASKNAME%...
@if "%ADMINPSWD%"=="" set /P ADMINPSWD=Enter admin password:
@schtasks /create /sc MINUTE /mo %STASKTIME% /tr %STASKFILE% /tn %STASKNAME% /s \\%ADMINHOST% /u %ADMINNAME% /p %ADMINPSWD%
@if errorlevel 1 goto try_again
@goto exit_ok
@rem ===========================================================================
:try_again
@echo Sheduler has some error when starting %STASKNAME%!
@echo We will try launch it again...
@echo First, we will free IPC$ at \\%ADMINHOST%...
@net use \\%ADMINHOST% /delete
@echo Second, we will recreate %STASKNAME% task...
@schtasks /delete /tn %STASKNAME% /F
@echo Now, we will try again...
@schtasks /create /sc MINUTE /mo %STASKTIME% /tr %STASKFILE% /tn %STASKNAME% /s \\%ADMINHOST% /u %ADMINNAME% /p %ADMINPSWD%
@if errorlevel 0 goto exit_ok
:too_bad
@echo Too bad. I don't know, what's wrong...
@net send %ADMINHOST% Error! Please, check admin login and password!
@> %STASKLOGS% echo Lauching %STASKNAME% is failed.
@>> %STASKLOGS% echo %DATE% (%TIME%)
@goto exit_here
@rem ===========================================================================
:exit_ok
@rem Впрочем, не мешает убедиться в правильности имени админа пароля
@rem Проблема в том, что schtasks некорректно реагирует на ошибки, связанные с
@rem неправильной авторизацией (не выставляется errorlevel).
@if exist %STASKHOME%\*.offlined del %STASKHOME%\*.offlined
@if exist %STASKHOME%\*.badguy del %STASKHOME%\*.badguy
@if exist %STASKHOME%\temporary.tmp del %STASKHOME%\temporary.tmp
@schtasks /run /tn %STASKNAME%
@if errorlevel 1 goto too_bad
@echo Ok. Scheduler is launched. %STASKNAME% is running.
@> %STASKLOGS% echo %STASKNAME% seems to be launched ok.
@>> %STASKLOGS% echo %DATE% (%TIME%)
@>> %STASKLOGS% schtasks /query
@goto exit_here
@rem ===========================================================================
:usage
@echo Usage: checker.bat [start/stop/reset]
@goto exit_here
@rem ===========================================================================
:exit_here
@set ADMINHOST=
@set ADMINNAME=
@set ADMINPSWD=
@set STASKNAME=
@set STASKFILE=
@set STASKLOGS=
@set STASKTIME=
@set STASKHOME=
Подробности, в том числе критические замечания, в следующем посте...
Внимание! Ссылка на
www.forum.oszone.net при использовании данных в коммерческих целях обязательна.