У меня есть .bat, который копирует файлы из источника в место назначения. Источником является локальный присоединенный сервер, а местом назначения - неподключенный компьютер в сети. Мне нужно запустить этот .bat с помощью планировщика задач. Какой пользователь может иметь права доступа к целевой папке? В планировщике задач я могу установить только локальных или доменных пользователей. Синтаксис летучей мыши следующий:

robocopy "C:\temp\test.txt" "\\192.168.0.1\c$\temp"
answer

Поскольку этот вопрос получил много запросов от поисковых систем, я, хотя было бы полезно добавить еще один метод, который хорошо работает (упомянутый в этом ответе на аналогичный вопрос ):

Вы можете добавить учетные данные в профиль пользователя в Windows с помощью диспетчера учетных данных на панели управления Windows.

  1. Войдите под пользователем, который будет запускать запланированную задачу.
  2. Открыть диспетчер учетных данных
  3. Нажмите «Добавить учетные данные Windows».
  4. Заполните поле "Интернет или сетевой адрес" именем сервера.
  5. Заполните «Имя пользователя» (укажите домен, если необходимо, т. Е. MyDomain\MyUser)
  6. Заполните «Пароль»
  7. Нажмите ОК.

Ваша запланированная задача теперь будет автоматически использовать учетные данные, сохраненные в диспетчере учетных данных для указанного хоста.

Обратите внимание, что если пароль пользователя изменится, вам нужно будет обновить его в диспетчере учетных данных.

И картина, которая стоит тысячи слов: Диспетчер учетных данных Windows в действии

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

То есть создайте пользователя с одним и тем же именем пользователя и паролем как на исходном, так и на целевом хостах. Затем настройте свою задачу для запуска от имени этого локального пользователя с исходного хоста. Поскольку учетные данные одинаковы в обоих местах, 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