
Возможно ли в 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)