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

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

Просмотров :  13996  |  Комментариев :  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:имя_пользователя пароль
 START "SyncToy" /WAIT "C:\Program Files\SyncToy 2.1\SyncToyCmd.exe" /R
 net use \\ip-адрес_сервера\сетевой_ресурс_на_сервере /DELETE
 Exit

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

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

P.S. В последнее время обратил внимание на возросшее количество просмотров данного поста.  Решил проверить работу синхронизации SyncToy через Планировщик заданий. Там, вроде, всё нормально:  в столбце "Результат последнего запуска" стоит "Операция успешно завершена. (0х0)". На всякий случай полез на сервер (куда "эхолировались" папки пользователя) и обнаружил, что вновь добавленные пользователем на его компьютере папки  "нихрена" на сервере не появляются. Через Планировщик запустил синхронизацию вручную: результат - тот же. Вот "сцука"! И не понятно, в какой момент этот баг начался.

 Начал "перелопачивать" опции Планировщика. И опять получил то, от чего когда-то, как мне думалось, с триумфом ушел: "шедулеровскую" хрень (0х1). Но, в конечном итоге, проблему решил.  Помогли одновременно два, казалось бы, ни на что не должные повлиять изменения в Планировщике (если использовать только одно из двух, то не срабатывает).

1) Поменял учетную запись, используемую при выполнении задачи (у меня был "Администратор").  На вкладке "Общие" нажал "Изменить".


В окне "Выбор пользователя" нажал "Дополнительно" - "Поиск". В "Результатах поиска" выбрал "Администраторы". Нажал "ОК".



2) Добавил путь к папке, где находится мой bat-файл. На вкладке "Действия" нажал "Изменить". В окне "Изменение действий" в строке "Рабочая папка (необязательно)" ввел C:\Program Files\SyncToy 2.1\   (без кавычек). Нажал "ОК". Ещё раз "ОК".


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


Тем не менее, вновь созданные на компьютере пользователя папки появились на сервере. Поэтому, наплевать на (0х2) и забыть. Главное, что синхронизирует.


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


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