Windows: Перенос сетевых папок (шар) с одного компьютера на другой

В Windows список опубликованных сетевых папок (и общих принтеров), вместе с их настройками и разрешениями хранится в ветке реестра HKLMSYSTEMCurrentControlSetServicesLanmanServerShares. Служба LanManServer при запуске читает содержимое этой ветки и публикует все перечисленные там сетевые папки. Эту особенность можно использовать, когда вам нужно перенести (мигрировать) общие сетевые папки с одного компьютера (сервера) Windows на другой.

Просмотреть список общих сетевых папок в Windows можно с помощью команд:

net share

Или

Get-SmbShare

В данном случае у нас на компьютере, кроме стандартных общих административных шар (и двух принтеров), опубликованы 3 сетевые папки (Docs, ISO, Scripts).

Теперь откроем редактор реестра и перейдем в ветку HKLMSYSTEMCurrentControlSetServicesLanmanServerShares .

Здесь хранятся настройки и разрешения всех опубликованных папок. Если открыть содержание параметра реестра с именем сетевой папки, можно увидеть настраиваемые параметры:

  • CATimeout – таймаут ожидания подключения клиента при сбое
  • CSCFlags – разрешено ли офлайн кэширование файлов (автономные файлы)
  • MaxUses – максимальное число одновременных сетевых подключений
  • Path – локальный путь к папке содержимое, которой публикуется по сети
  • Permissions – права доступа к сетевой папке — Share Permissions (не путать с NTFS разрешениями)
  • ShareName – имя сетевой папки
  • Type – тип общего ресурса ( 0 для сетевых папок)

Во вложенной ветке HKLMCurrentControlSetServicesLanmanServerSharesSecurity для каждой сетевой папки хранится настройки безопасности, определяющие кто и какие операции может выполнять с сетевыми папками (используется формат SECURITY_DESCRIPTOR, который включает DACL и SIDы учетных записей/групп)

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

Get-SmbShareAccess docs

Таким образом, если вы хотите перенести список сетевых папок с настройками на другой компьютер, нужно экспортировать содержимое этой ветки реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerShares в REG файл.

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

Сохраните REG файл и скопируйте его на компьютер, на котором вы хотите создать аналогичные сетевые папки.

Определитесь, как вы будете переносить сами файлы и папки со старого сервера на новый:

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

Дважды щелкните по REG файлу, чтобы импортировать его настройки на целевом компьютере.

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

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

Restart-Service server

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

Также вы можете использовать эту методику для резервного копирования и восстановления ресурсов общих сетевых шар на компьютере.

Сохранить текущие настройки общих папок в REG файл:

reg export HKLMSYSTEMCurrentControlSetServicesLanmanServerShares %UserProfile%DocumentsMyShares.reg

Восстановить список сетевых папок из резервной копии:

reg import %UserProfile%DocumentsMyShares.reg

Для резервного копирования NTFS разрешений объектов можно использовать утилиту icacls.


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *