Команда Xcopy в Windows 2000 включает возможности Scopy.

Мне уже приходилось описывать ряд инструментов командной строки, которые можно использовать при миграции общедоступных каталогов с сервера Windows NT 4.0 на сервер Windows 2000. Этот процесс выполняется в несколько этапов. Сначала необходимо создать новый каталог на сервере Windows 2000, настроить его как общий ресурс и установить разрешения на доступ. Удаленный каталог создается командой Md, которая при использовании Uniform Naming Convention (UNC) работает на удаленной машине так же, как и на локальном диске. Команда Permcopy из Microsoft Windows 2000 Resource Kit позволяет копировать разрешения на доступ к общему каталогу, а share.vbs - выделять удаленные каталоги в общее пользование.

Теперь нужно завершить работу, скопировав все файлы и сохранив информацию об их владельцах и текущих разрешениях. Эта проблема не нова, почти каждый администратор NT сталкивался с ней. И я полагаю, что в случае NT способ был всегда один и тот же - использование утилиты Scopy из Resource Kit. Команда Scopy работает подобно Xcopy, но Scopy копирует информацию о владельце и ACL так же хорошо, как файлы и структуру каталогов. Поэтому я был удивлен, обнаружив, что Scopy в Resource Kit Windows 2000 отсутствует. Ее заменила команда Xcopy, выполняющая функции Scopy с помощью двух новых параметров: /O и /X. Параметр /O позволяет копировать информацию о владельце и разрешениях на доступ к файлу. Параметр /X, который работает только вместе с параметром /O, передает контрольные значения. Так, если вы выполняете аудит конкретного файла на сервере NT 4.0, то можно продолжить его на сервере Windows 2000.

В качестве примера предположим, что мой файл-сервер NT 4.0 называется From, а имя совместно используемого файла - Files. Я собираюсь переместить его в файл, хранящийся на сервере To. Допустим также, что я не имею доступа ни к From, ни к To и что каждый совместно используемый ресурс находится на диске C соответствующего компьютера.

Первый шаг - это регистрация на обоих серверах. Метод, который мне нравится больше всего, - старый прием Net Use servernameIPC$ /user:domain-nameusername, но можно использовать и дру-гой способ.

Затем следует создать каталог на сервере To, введя в командной строке:

net use X: 	oc$
Md X:Files

После этого опишем на сервере To каталог C:Files как общий Files:

cscript share.vbs /c /n Files /s To 
/p C:Files /t disk 

Снова обращаю внимание читателей на особенности share.vbs: имя сервера указывается как To, а не как To. Теперь необходимо воспользоваться Permcopy, чтобы убедиться в идентичности прав общего ресурса ToFiles и старого FromFiles:

permcopy From Files To Files 

Между From и Files и между To и Files должно быть по крайней мере по одному пробелу. И, наконец, остается использовать команду Xcopy для перемещения файлов. Чтобы информация о владельце была перенесена корректно, для Xcopy копирование должно выполняться из каталога в каталог, а не из одной общей папки в другую. Поэтому необходимо подсоединиться к диску C на From:

net use Y: FromC$
xcopy Y:Files* X:Files /S /O /T 

На этом работа завершается. И теперь, просмотрев задачу, я понял, где можно было «сэкономить» - сразу запустить Xcopy и использовать ее вместо Net Use для создания целевого каталога. Что касается Windows 2000, то для выполнения этих операций существует не менее двадцати способов.

Марк Минаси - редактор Windows NT Magazine, MCSE и автор книги «Mastering Windows NT Server 4.0» (издательство Sybex). С ним можно связаться по адресу: mark@minasi.com.