Запустить запланированное задание, только если подключенного сетевого диска нет?
Возможно ли в Windows 10 запустить запланированное задание, только если нет подключенного сетевого диска?
Предыстория: у меня есть задача, пакетный скрипт, который сопоставляет два сетевых диска для службы резервного копирования (CrashPlan). Пакетный скрипт проверяет наличие диска if exist Y:\ (...)
и отображает это иначе net use Y: ...
,
Это работает, но поскольку эти сетевые пути могут отсутствовать при запуске системы или входе в систему (NAS отключается при запуске компьютера), мне необходимо регулярно повторять эту задачу, чтобы обеспечить сопоставление дисков, если / когда станут доступны сетевые пути,
Но мне действительно нужно повторять задачу только в том случае, если диск еще не был подключен, поэтому я хотел бы пропустить задачу, когда диски уже присутствуют.
В любом случае выполнение задания не повредит - оно просто пропускает net use
команда, но журнал будет чище, если бы я мог пропустить задачу, когда она не нужна.
Основная проблема заключается в том, чтобы два подключенных диска всегда присутствовали в службе CrashPlan, работающей под учетной записью SYSTEM, всякий раз, когда доступны сетевые пути (устройства NAS подключены). Не стесняйтесь предлагать совершенно разные подходы к этому, но, возможно, постарайтесь оставить их в комментариях, чтобы не загромождать ответ на этот вопрос. Я был бы рад опубликовать такой вопрос отдельно, если бы посоветовал это сделать.
1 ответ
Добавьте в свой скрипт команду, которая отключит эту задачу при успешном выполнении где-то if exist Y:\ (...) and maps it otherwise net use Y: ...
schtasks.exe /CHANGE /TN "YourBatchScriptTask" /DISABLE
и добавьте еще одну задачу, включающую "YourBatchScriptTask" при запуске компьютера
schtasks.exe /CHANGE /TN "YourBatchScriptTask" /ENABLE
но если бы это был я, я бы сохранил эту "проверочную" часть, поскольку вы не можете гарантировать, что сетевое подключение к вашему NAS не будет разорвано. (предположим, какой-то котенок играл с кабелями Ethernet)