В Windows список опубликованных сетевых папок (и общих принтеров), вместе с их настройками и разрешениями хранится в ветке реестра HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares. Служба
LanManServer
при запуске читает содержимое этой ветки и публикует все перечисленные там сетевые папки. Эту особенность можно использовать, когда вам нужно перенести (мигрировать) общие сетевые папки с одного компьютера (сервера) Windows на другой.
Просмотреть список общих сетевых папок в Windows можно с помощью команд:
net share
Или

В данном случае у нас на компьютере, кроме стандартных общих административных шар (и двух принтеров), опубликованы 3 сетевые папки (Docs, ISO, Scripts).
Теперь откроем редактор реестра и перейдем в ветку
HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares
.

Здесь хранятся настройки и разрешения всех опубликованных папок. Если открыть содержание параметра реестра с именем сетевой папки, можно увидеть настраиваемые параметры:
- CATimeout – таймаут ожидания подключения клиента при сбое
- CSCFlags – разрешено ли офлайн кэширование файлов (автономные файлы)
- MaxUses – максимальное число одновременных сетевых подключений
- Path – локальный путь к папке содержимое, которой публикуется по сети
- Permissions – права доступа к сетевой папке —
Share Permissions(не путать с NTFS разрешениями) - ShareName – имя сетевой папки
- Type – тип общего ресурса (
0для сетевых папок)
Во вложенной ветке
HKLM\CurrentControlSet\Services\LanmanServer\Shares\Security
для каждой сетевой папки хранится настройки безопасности, определяющие кто и какие операции может выполнять с сетевыми папками (используется формат SECURITY_DESCRIPTOR, который включает DACL и SIDы учетных записей/групп)

Можно вывеси назначенные права (дескрипторы безопасности) сетевой папки с помощью PowerShell:
Get-SmbShareAccess docs

Таким образом, если вы хотите перенести список сетевых папок с настройками на другой компьютер, нужно экспортировать содержимое этой ветки реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares в REG файл.

Затем откройте REG файл в любом текстовом редакторе и удалите из него записи для всех административных папок, принтеров и шар, которые вы не хотите переносить (в нашем примере мы оставили только папки ISO и Docs).

Сохраните REG файл и скопируйте его на компьютер, на котором вы хотите создать аналогичные сетевые папки.
- Если вы выполняете миграцию файлового сервера с одной виртуальной машины, на другую, достаточно будет переподключить к новой ВМ старый диск с файлами и назначить ту же самую букву диска
- Для копирования всех файлов и каталогов между отдельными серверами вместе с NTFS разрешениями можно использовать встроенную утилиту robocopy. Следующая команда обеспечивает копирование файлов, папок с разрешениями NTFS и настройками аудита файлов:
robocopy f:\docs \\srv2\f$\docs /MIR /COPYALL /B /E /Z /R:2 /W:5 /LOG:f:\docs_copy.log
- Настроить второй сервер как копию через DFS (более сложный путь)
Дважды щелкните по REG файлу, чтобы импортировать его настройки на целевом компьютере.

Проверьте что новые сетевые папки появились в реестре на новом компьютере. Они пока фактически не опубликованы. Если нужно, вы в реестре можете отредактировать путь к локальной папке, если он отличается от исходного.

Чтобы заставить службу LanmanServer перечитать список сетевых папок из реестра и опубликовать импортированные вами шары, нужно создать и удалить любую сетевую папку на компьютере, или просто перезапустить службу:
Restart-Service server

Проверьте, что на компьютере появились перенесенные вами общие папки (если указанные в реестре пути к папкам фактически не существуют на новом компьютере, такие сетевые папки опубликованы не будут).

Также вы можете использовать эту методику для резервного копирования и восстановления ресурсов общих сетевых шар на компьютере.
Сохранить текущие настройки общих папок в REG файл:
reg export HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares %UserProfile%\Documents\MyShares.reg
Восстановить список сетевых папок из резервной копии:
reg import %UserProfile%\Documents\MyShares.reg


В ресурс ките ещё утиль была: permcopy
спасибо, только вместо net shares надо net share
Спс, исправлено
В Windows 2008 тоже работает.
C Windows Server 2008R2 на Windows Server 2019 прокатит этот рецепт?
Да, в новых версиях этот момент не изменился.
Возможно примонтировать диск с одного сервера к другому с шарами в wmware, и перенести ключь реестра. Будет работать?
Да, работает. Только сохраняйте одинаковые буквы дисков
Добрый день!
Вчера выполнили перенос шар на 2019 сервер с 2008R2. Единственное у нас почему-то затупила оснастка управления лисками и при попытке назначить нужную букву примапленному LUN (LUN на СХД) к виртуалке, оснастка это начинала делать долго и мы не дождались окончания этого процесса. Не понятно почему так долго может меняться буква диска. На обычном ПК это делается за пару сек. А тут меняешь букву, оснастка начинает долго-долго думать и видно что на СХД повышается нагрузка на RAID как будто он там начинает что-то лопатить непонятное а не менять букву. Короче оставили те буквы какие сами назначились (у нас два LUN мапятся), импортировали реестр, который экспортнули со старого сервера, как в вашей статье и поменяли руками потом в реестре буквы. Подставили те что назначились. Вроде все работает. Но ХЗ будут ли из-за этого какие-то подводные камни — от того что руками диски поменяли в реестре в Lanmanserver?
Как вариант, вохомжно это проблема с MPIO. Нужно его настроить корректно.
Пути можно поменять в реестре руками, так тоже будет работать.
я так понимаю что перенос необходимо выполнять в какое то регламентное окно, чтобы не было открытых сессий шар? а как нибудь на лету и без прерывания это можно осуществить?
Не пойму ваш сценарий… В статье речь про перенос только названий сетевых папок и прав к ним.
Тут не рассматривается перенос файлов.
Это все, в том числе окна простоя, нужно планировать заранее .
Ошибка в пути реестра
по пути SYSTEM\CurrentControlSet\Services\LanmanServer\Shares
Поправил на:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares