Можно ли скопировать файл из одного местоположения в другое местоположение на том же сервере без перемещения файла с сервера на рабочую станцию, а затем обратно на сервер. Сценарий - это одноранговая сеть Microsoft Windows Vista.
3 ответа
Очевидно, что если вы на самом деле вошли в систему и выполнили команду копирования на самом сервере, операция копирования не затрагивает рабочие станции. Seem Но вы, похоже, спрашиваете о том, чтобы инициировать команду копирования с рабочей станции, которая копирует в пределах одного файлового сервера и где вся операция копирования выполняется самим сервером (с учетом обычных прав доступа и т.д.).
Диспетчер локальной сети, сервер локальной сети и CIFS
Сейчас нет возможности сделать это. В протоколе SMB существовала команда для выполнения копий на стороне сервера, когда ни одна из скопированных данных не должна перемещаться по локальной сети. Это был SMB_COM_COPY
.
Это когда-либо выполнялось только на рабочих станциях под управлением OS/2. Приложения OS/2 имеют доступную функцию системного API DosCopy()
, а сетевой перенаправитель сетевого сервера OS/2 в OS/2 оказался достаточно умным, чтобы распознавать, когда файл копируется с удаленного сетевого тома в другое место на этот том, и перенаправить всю операцию на сервер.
Не было реальной возможности использовать SMB_COM_COPY
на рабочих станциях под управлением MS-DOS или Windows NT. В (не расширенном) MS-DOS API нет системного вызова "копировать весь файл", чтобы подключиться к нему. Таким образом, Microsoft решила удалить эту часть протокола из NT LAN Manager, и транзакция CIFS с этим идентификатором команды теперь просто генерирует сообщение об ошибке.
Netware
Есть способ сделать это. В протоколе Netware есть целая транзакция копирования файла, и сетевой перенаправитель Netware для OS/2 был умным, как сетевой перенаправитель сетевого сервера. Опять же, рабочие станции OS/2 будут выполнять это автоматически, как приложения, называемые DosCopy()
для копирования файлов.
Как и в случае с SMB/CIFS, не было никакого реального способа внедрить механизм Netware в MS-DOS для использования приложениями в целом. Однако существуют специфичные для Netware расширения для MS-DOS API. Таким образом, Netware Client для MS-DOS поставлялся с командой NCOPY
для MS-DOS, которая знала о расширениях API, вызывала их и, таким образом, могла выполнять выполняемые сервером копии (которые также сохраняли атрибуты файлов Netware).
Для Linux есть команда ncopy
которая выдает ту же команду протокола Netware. Есть - увы! - ничто не эквивалентно для Windows NT, и нет возможности использовать это средство с рабочей станции Windows NT.
Я предполагаю, что вы используете скрипт bat
файла, так что это будет так:
@echo off
copy file1 file2
Если это не решит вашу проблему, пожалуйста, дайте более подробную информацию.
Я не думаю, что Windows позволит вам сделать это. Это будет связано с тем, что вы вызываете команду на удаленном сервере, на которую у вас могут не быть полномочий. В прошлом для таких ситуаций я обычно обслуживал терминал на сервере и делал копию оттуда.