У меня есть .bat, который копирует файлы из источника в место назначения. Источником является локальный присоединенный сервер, а местом назначения - неподключенный компьютер в сети. Мне нужно запустить этот .bat с помощью планировщика задач. Какой пользователь может иметь права доступа к целевой папке? В планировщике задач я могу установить только локальных или доменных пользователей. Синтаксис летучей мыши выглядит следующим образом:
robocopy "C:\temp\test.txt" "\\192.168.0.1\c$\temp"
Поскольку этот вопрос получил много запросов от поисковых систем, я, хотя было бы полезно добавить еще один метод, который хорошо работает (упомянутый в этот ответ на аналогичный вопрос):
Вы можете добавить учетные данные в профиль пользователя в Windows, используя Менеджер учетных данных находится в панели управления Windows.
MyDomain\MyUser
)Ваша запланированная задача теперь будет автоматически использовать учетные данные, сохраненные в диспетчере учетных данных для указанного хоста.
Обратите внимание, что если пароль пользователя изменится, вам нужно будет обновить его в диспетчере учетных данных.
И картина, которая стоит тысячи слов:
Поскольку целевой компьютер не присоединен, невозможно фактически запустить вашу задачу на исходном хосте в качестве пользователя с целевого хоста. Единственный способ, которым это может работать, - сквозная аутентификация.
То есть создайте пользователя с одним и тем же именем пользователя и паролем как на исходном, так и на целевом хостах. Затем настройте свою задачу для запуска от имени этого локального пользователя с исходного хоста. Поскольку учетные данные одинаковы в обоих местах, Windows может передать запрос проверки подлинности целевому узлу и просто работать, потому что учетные данные одинаковы.
Я никогда не делал этого в контексте запланированной задачи, но это работает довольно надежно для интерактивного типа вещей. Вы можете столкнуться с некоторыми сетевые ограничения UAC в зависимости от версии ОС.
Net Use должен работать для этого:
Сопоставьте букву диска с сетевым использованием, затем используйте robocopy для копирования на букву диска. Оберните все это в сценарий летучей мыши, а затем запланируйте сценарий летучей мыши.
net use x: \\servername\sharename /user:username password
В качестве имени пользователя укажите LocalMachineName \ username
В конце сценария bat удалите сопоставление дисков: net use x: /DELETE
Почему бы не попробовать использовать «runas» в пакетном файле и в качестве имени пользователя убедитесь, что вы используете MACHINENAME \ username, где MACHINENAME - это имя компьютера, не присоединенного к домену.
Другая проблема, которую я вижу, заключается в том, что ваш синтаксис для robocopy неверен. Если вы копируете только один файл, вам может потребоваться только копия. Если вы хотите использовать robocopy, см. Правильный синтаксис ниже.
Затем запланируйте запуск командного файла на компьютере, присоединенном к домену.
runas /user:MACHINENAME\username robocopy "C:\temp\ \\192.168.0.1\c$\temp test.txt"
файл передачи robocopy, а не папку
https://stackoverflow.com/questions/1030739/how-can-i-copy-network-files-using-robocopy