Я хочу скопировать файл в удаленное местоположение.Эта задача будет выполняться из планировщика SQL Server (агента), и, таким образом, копия COPY будет выполняться под учетной записью службы SQL, и я не хочу создавать соответствующие учетные данные на удаленной машине.
Единственный способ, который я вычислил, был:
NET USE X: \ RemoteServer \ RemoteShare ThePassword / USER: RemoteUserID
, затем я могу запустить команду для копирования в X:
Однако, X: нельзя полагатьсячтобы быть постоянным, поэтому я придумал:
NET USE X: /DELETE
NET USE X: \\RemoteServer\RemoteShare ThePassword /USER:RemoteUserID
COPY MyFile X:
NET USE X: /DELETE
и проигнорировал первоначальное удаление, если X: еще не было сопоставлено (что должно быть только в случае, если что-то еще сопоставило X:, или предыдущую копиюумер на полпути)
Но я получил сообщение
" Есть открытые файлы и / или неполный поиск в каталоге в ожидании подключения к X:.
Можно ли продолжать отключать и принудительно закрывать их? (Да / Нет) [N]:"
очевидно, существует недокументированный параметр / Y, который решает, что:
NET USE X: /DELETE /Y
NET USE X: \\RemoteServer\RemoteShare ThePassword /USER:RemoteUserID
COPY MyFile X:
NET USE X: /DELETE
однако ... вероятной причиной будет то, что другойэкземпляр моей команды запущен, и, удалив отображение X:, я убью эту операцию копирования файла ... не очень хорошо ...
Буду признателен за советы об этом или других способахскопировать файл на удаленный общий ресурс, включая вход в систему, из командной строки.
Справочная информация:
Копируемые файлы имеют размер 100 ГБ, и я использую ROBOCOPY для создания ксерокопии.Я не могу просто позволить RoboCopy «зеркалировать» папку, так как нужно копировать только определенные файлы, и для разных файлов существуют разные команды / места назначения RoboCopy и т. Д.