Как отлаживать планировщик задач на win 10?

Я пытаюсь выполнить следующую летучую мышь каждые 15 минут на своем компьютере:

@ECHO OFF

SETLOCAL enabledelayedexpansion

SET host=http://dnsad.de/rest/
SET slideshowurl=http://dnsad.de/display/currentSlideshow/mac/
SET slideshowfolder=C:\Slideshow
SET ieprocess="iexplore.exe"
SET ignore_result=INFORMATION:

FOR /f "delims=" %%a IN ('getmac /v ^|find /i "Realtek"') DO (
    FOR %%b IN (%%a) DO (
        SET element=%%b
        IF "!element:~2,1!!element:~5,1!!element:~8,1!"=="---" set mac=%%b
    )
)

SET formattedmac=%mac:-=:%
SET macpath=%mac:-=_%

FOR /f "delims=" %%a IN ('curl -X GET %host%%formattedmac%') DO (
    FOR %%b IN (%%a) DO (
        SET update=%%b
    )
)

IF "%update%"=="[true]" (
    CD %ProgramFiles%\WinHTTrack\
    httrack %slideshowurl%%formattedmac% -q -O "C:\Slideshow" -s0 -B -a
    curl -X PUT %host%%formattedmac%

    START iexplore -k %slideshowfolder%\dnsad.de\display\currentSlideshow\mac\%macpath%.html
)

EXIT

Скрипт работает как надо при выполнении. Я получаю MAC-адрес устройства, получаю ожидаемые ответы сервера от curl, WinHTTrack правильно выполняет резервное копирование данных, curl обновляет поля сервера, а затем Internet Explorer открывается с обновленным локальным html.

Когда запланировано как Task с win 7, оно также работает так, как должно. При запуске bat из планировщика заданий на Win 10 последнее, что он делает, — это завиток PUT, но Internet Explorer никогда не открывается. Задача отмечена как успешная.

Я вошел в систему как администратор в Win 7 и Win 10. Я протестировал почти все настройки в планировщике задач. Кажется, ничего не работает. Почему не запускается интернет эксплорер?

[РЕДАКТИРОВАТЬ]

Кажется, что проблема возникает из-за опции «Запускать независимо от того, вошел ли пользователь в систему или нет». Но вот в чем загвоздка: я показываю слайд-шоу в режиме киоска Internet Explorer, и мне нужно получать обновленные данные с моего сервера, чтобы регулярно отображать новые слайд-шоу. Упомянутая опция предотвращает всплывающую консоль при выполнении bat-файла. Если я «выполняю только в том случае, если пользователь вошел в систему», я получаю обновленные данные для отображения в Internet Explorer, но каждые 15 минут на секунду появляется окно консоли.

Я попытался выполнить с помощью cmd /c "update" /min "PATH TO BAT", что не решает проблему.


person Lapskaus    schedule 14.11.2017    source источник


Ответы (1)


Как упоминалось в моем [Edit], проблема заключалась в опции «запускать независимо от того, вошел ли пользователь в систему или нет», которую я использовал, чтобы предотвратить появление окна командной строки. Когда я использую опцию «выполнять, только если пользователь вошел в систему», мне нужно «обернуть» летучую мышь в VBScript, который не открывает cli. Итак, запланировав vbs со следующими строками:

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "cmd /c PATH\TO\BAT", 0, True

я могу запустить летучую мышь без мигающего cli.

person Lapskaus    schedule 15.11.2017