Копирование файла командной строки на удаленный общий ресурс с другим логином - PullRequest
1 голос
/ 18 ноября 2011

Я хочу скопировать файл в удаленное местоположение.Эта задача будет выполняться из планировщика 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 и т. Д.

1 Ответ

0 голосов
/ 18 ноября 2011

Может быть, вы можете обходить вещи наоборот: создать общую папку на вашем компьютере, которая доступна для всех пользователей. когда вы хотите скопировать файл, поместите его в эту папку и затем используйте psexec (http://technet.microsoft.com/en-us/sysinternals/bb897553) для удаленного запуска команды копирования (скопируйте файл из общей папки на вашем компьютере).

Надеюсь, это поможет

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