ихаил
Сергеевич
8-900-358-28-80


Блог вопиющего в пустыне

Планировщик заданий: результат последнего запуска - (0x1)

Просмотров :  659  |  Комментариев :  0

Дело в том, что у меня - серверная ось, а у пользователя на машине - windows 10. Были бы на обеих машинах серверные оси, проблем бы не было: добавил бы соответствующую роль на сервере, запустил бы зеркалирование, и обошелся бы без всяких планировщиков. А тут пришлось для синхронизации использовать специальную утилиту SyncToy 2.1 от Microsoft. И запускать её через Планировщика заданий.
Кроме того, пользователь выдвинул обязательное условие: чтобы не было постоянно добавленного открытого элемента в сетевом окружении и постоянно подключенного сетевого диска, т.е., чтобы каждый раз для подключения к сетевому ресурсу на сервере ему надо было вводить логин и пароль.

Для подключения к серверу использовал bat-файл следующего содержания:

 @Echo Off
 net use \\ip-адрес_сервера\сетевой_ресурс_на_сервере /PERSISTENT:NO /user:имя_пользователя пароль
 Exit

где вместо "ip-адрес_сервера", "сетевой_ресурс_на_сервере", "имя_пользователя" и "пароль" были внесены реальные данные.

В Планировщик заданий загнал два действия:
1) запуск  приведенного выше bat-файла,
2) запуск программы синхронизации SyncToyCmd.exe

Запустил задание на выполнение. И получил "Результат последнего запуска (0x1)", т.е. - "ни фига" не выполнилось. Расшифровка результата (0x1) - "вызов неверной или неизвестной функции".

Где-то в сети нашел подсказку, что если в Планировщике заданий на вкладке "Действие" для одного задания прописано выполнение более одной программы, то они запускаются одновременно, а не последовательно. Т.е. получается, что синхронизация запускалась, когда подключения к сетевому ресурсу ещё не было установлено, что и давало ошибку 0x1.

Решение проблемы.

Так как в пакетном файле команды выполняются последовательно, то в наш bat-файл записал обе команды: сначала на подключение сетевого ресурса, а потом - на запуск синхронизации.

 @Echo Off
 net use \\ip-адрес_сервера\сетевой_ресурс_на_сервере /PERSISTENT:NO /user:имя_пользователя пароль
 net use START "SyncToy" /WAIT "C:\Program Files\SyncToy 2.1\SyncToyCmd.exe" /R
 net use \\ip-адрес_сервера\сетевой_ресурс_на_сервере /DELETE
 Exit

И поместил его во вкладку Действие

Запустил на выполнение. В столбце "Результат последнего запуска" получил "Операция успешно завершена. (0х0)". Что и требовалось доказать.



  • Комментарии
Загрузка комментариев...


Возврат к списку