четверг, 19 мая 2011 г.

Расшаривание папок из командной строки

В связи с переносом хранения файлов на новый файл-сервер возникла необходимость перенести папки пользователей с сохранением настроек доступа и безопасности. Настройки безопасности переносятся без проблем - команда xcopy поддерживает перенос настроек ACL (Access Control List), а вот с общим доступом так просто не получилось. 

Решение оказалось очень простым - как почти всегда. Общая идея следующая:

for /D %i IN (*.*) DO NET SHARE %i$=d:\Users\%i /GRANT:%i,FULL /UNLIMITED /CACHE:Documents /REMARK: “User’s Share”

- запускать из каталога с папками для расшаривания, в данном случае d:\Users\

Cоздадутся шары вида USERNAME$ с доступом для пользователя, к кому относится шара, с неограниченным количеством пользовательских подключений (пользователь может зайти более, чем с одного компьютера), с кэшем для документов, с комментарием (User's Share в данном случае). Требование - имя шары должно совпадать с именем пользователя - но у нас так изначально и сделано.

Все написанное протестировано и отлично работает в Windows 2003.