Пакетный файл Windows - перемещение файла не работает только в планировщике задач

У меня есть файл, который я пытаюсь переместить через командный файл по расписанию.

move sourceFile destinationFile.

Файл назначения находится на подключенном сетевом диске Z.

Так, например, команда:

перемещение C:\myfile.txt Z:\myfile.txt

Когда я запускаю командный файл в Windows, дважды щелкнув его, он отлично работает. Но когда я планирую его через Task Scheduler, он не работает.

Я добавил:

net use Z:\myipaddress

чтобы увидеть, была ли проблема проблемой разрешения, но это также работает только с командным файлом напрямую, а не в планировщике задач.

Задача выполняется с наивысшими правами как Администратор.

OS = сервер Windows 2008.

Любые идеи?

Спасибо.

Ответ 1

Я нашел ответ: перейдите в свойства задачи и UNCHECK "Запустите с наивысшими привилегиями", и он будет работать.

Ответ Ричарда заставил меня заглянуть в это больше. Я управлял cmd как администратор, не смог найти мой подключенный диск. Поэтому планировщик задач не может найти его, когда он запускается как администратор, который выполняет "самые высокие привилегии".

Ответ 2

"Задача выполняется с наивысшими привилегиями как" Администратор ". напомнил мне что-то, это произошло в Vista и все еще происходит в Windows 7 (я только что обновил): я обнаружил, что мои подключенные сетевые диски недоступны, когда я запускаю командную строку как администратор.

Возможно, вы захотите попробовать запустить пакетный файл из командной строки с повышенным (администратором) и посмотреть, получаете ли вы ту же ошибку, я подозреваю, что вы это сделаете.

Возможно, вы сможете запланировать команду "переместить" вместо нее в качестве запланированной задачи для запуска и передать ей параметры "C:\myfile.txt Z:\myfile.txt"? (Я этого не пробовал)

Ответ 3

Это звучит как проблема проверки подлинности - уверены ли вы, что у пользователя, выполняющего задачу, есть права администратора (или те же права, что и пользователь, вошедший в систему, когда он работает?)?

Ответ 4

Я не совсем уверен, в чем проблема, но вы можете немного помочь себе, немного изменив свой командный файл и добавив несколько протоколов вывода:

net use z: \\ipaddress\shared_folder >c:\debug_log.txt 2>&1
move c:\myfile.txt z:\myfile.txt >>c:\debug_log.txt 2>&1

После запуска запланированного задания вы должны иметь возможность просмотреть c:\debug_log.txt для всех выходов и ошибок, созданных этими двумя командами.

Ответ 5

Пробовали ли вы использовать пути UNC-стиля вместо сопоставленных дисков?

что-то вроде (untested):

move \\server\share\file_path \\other_server\other_share\new_file_path