Вопрос или проблема
На Windows Server команды XCOPY/robocopy/copy с общего диска на локальный диск работают, когда выполняются в командной строке или пакетном файле.
Например, общий диск z:
xcopy z:\foldername\*.txt d:\test\
Однако копирование не работает в Планировщике задач.
Как это исправить?
Команды, выполняемые через Планировщик задач, имеют доступ к общим дискам только если задача выполняется с включенной опцией “Запускать только при входе пользователя в систему”.
Если включить эту опцию невозможно, у вас есть два других варианта. Вы можете либо изменить ваш пакетный файл, чтобы использовать UNC-пути вместо буквы общего диска, либо добавить команду net use в пакетный файл для подключения диска перед доступом к нему, например:
net use Z: \\server\share
Ответ или решение
Чтобы скопировать файлы с сетевого диска на локальный диск через Планировщик заданий Windows, важно учитывать несколько моментов, так как команды, запущенные через Планировщик заданий, могут не иметь доступа к смонтированным дискам, если задача не настроена соответствующим образом.
Решение проблемы копирования файлов с сетевого диска в Планировщике заданий
1. Запуск задачи с правами пользователя:
Если вы хотите, чтобы задача имела доступ к смонтированным дискам, убедитесь, что в настройках задачи выбраны следующие параметры:
- Запускать только при входе пользователя в систему: выберите эту опцию, чтобы задача могла использовать смонтированные диски, так как они будут доступны в контексте пользователя.
2. Использование UNC-путей:
Если опция "Запускать только при входе пользователя" недоступна или не подходит, лучше использовать UNC-пути вместо букв дисков. Например:
xcopy \\сервер\папка\*.txt d:\test\
Таким образом, вы напрямую ссылаетесь на сетевую папку, минуя необходимость в смонтированных дисках.
3. Применение команды net use
:
Если вы все же хотите использовать буквенное обозначение диска, необходимо добавить команду net use
в ваш BAT файл перед выполнением копирования. Это гарантирует, что диск будет правильно смонтирован в контексте выполнения задачи:
net use Z: \\сервер\шар
xcopy Z:\foldername\*.txt D:\test\
net use Z: /delete
Не забудьте закрыть соединение с помощью net use Z: /delete
, чтобы освободить ресурсы после завершения выполнения задачи.
Пример BAT файла:
@echo off
rem Монтируем сетевой диск
net use Z: \\сервер\шар
rem Копируем файлы
xcopy Z:\foldername\*.txt D:\test\ /Y /E
rem Удаляем монтирование диска
net use Z: /delete
Настройка задачи в Планировщике заданий:
- Откройте "Планировщик заданий" и создайте новую задачу.
- Перейдите на вкладку "Общие" и выберите "Запускать только при входе пользователя".
- Перейдите на вкладку "Действия" и добавьте новое действие с указанием на ваш BAT файл.
- Настройте триггеры по вашему вкусу.
Заключение
Следуя вышеуказанным шагам, вы сможете успешно настроить копирование файлов с сетевого диска на локальный диск через Планировщик заданий Windows. Использование UNC-путей или команд для монтирования дисков — это надежные способы избежать проблем с доступом к файлами.