Когда это нужно
Запуск вручную проходит, а ночью выгрузки нет: у планировщика другой пользователь, рабочая папка или права. Локальный журнал помогает разобрать ошибку, но сам по себе не сообщит о выключенном компьютере. Внешний монитор ждёт завершения по расписанию.
Как подключить
- 1
Создайте cron-монитор с расписанием задачи, её часовым поясом и запасом на опоздание. Для ежедневных 03:00 подойдёт 0 3 * * *.
- 2
Сохраните обёртку ниже в C:\Jobs\tickwatch-run.ps1. Укажите свой URL пинга и путь к рабочему скрипту. В действии планировщика запускайте обёртку через powershell.exe.
- 3
Включите максимальную длительность монитора и уведомления. Проверьте успешный запуск, exit 7 в тестовом скрипте и пропуск запуска.
Готовый пример
Пример для Windows PowerShell 5.1 и HTTPS-доступа к Tickwatch. Рабочий скрипт должен возвращать ненулевой код при ошибке: скрытая внутри скрипта ошибка может оставить код 0. Задайте рабочую папку и права учётной записи в планировщике; ключ пинга храните приватно.
$ErrorActionPreference = 'Stop'
$ping = 'https://ping.tickwatch.dev/YOUR_PING_KEY'
$rid = [guid]::NewGuid().ToString()
function Send-Signal([string]$suffix) {
try {
$url = $ping + $suffix + "?rid=$rid"
Invoke-WebRequest -Uri $url -Method Post -UseBasicParsing -TimeoutSec 5 -ErrorAction Stop | Out-Null
} catch { } # A monitoring outage must not stop the job.
}
$code = 1
Send-Signal '/start'
try {
& "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -NonInteractive -File 'C:\Jobs\backup.ps1'
$code = $LASTEXITCODE
} catch {
$code = 1
} finally {
if ($code -eq 0) { Send-Signal '' } else { Send-Signal '/fail' }
}
exit $codepowershell.exe -NoProfile -NonInteractive -File "C:\Jobs\tickwatch-run.ps1"Что проверить перед запуском
Проверьте запуск под той же учётной записью и без открытого рабочего стола. Настройка «Выполнять только для вошедшего пользователя» может мешать ночным задачам.
Принудительная остановка может не выполнить finally. Сигнал /start и контроль максимальной длительности нужны для такого случая.
Проверяйте результат операции: наличие и размер выгрузки, запись в хранилище. Код 0 подтверждает только то, что сообщил скрипт.
Частые вопросы
Что указывать в поле «Программа»?
Полный путь к powershell.exe. Параметры -NoProfile -NonInteractive -File и путь к обёртке укажите отдельно в аргументах. Используйте принятую у вас политику подписания и выполнения скриптов.
Tickwatch исправит настройки планировщика?
Он сообщает об отсутствии результата или ошибке. Исправлять пароль учётной записи, права и условия запуска нужно на машине с задачей.