Можно ли в Windows поделиться символической ссылкой как общим сетевым ресурсом?

Резюме

Можно ли поделиться символическая ссылка на сетевое расположение в качестве сетевого ресурса Windows? Например:

D: \ folder \ Shared \ foo на \\ server совместно используется как \\ server \ foo , где D: \ folder \ Общий \ foo на самом деле является символической ссылкой каталога на \\ other \ server \ bar .

Или это проблема XY ?

Справочная информация

У нас есть виртуальная машина Windows Server 2008 R2 *, fs1 , с 2 виртуальными дисками. C: , конечно, системный диск, а D: - это диск данных. Мы совместно используем несколько папок на D: через SMB, используя Windows Управление общим доступом и хранилищем . Например:

  • D: \ Shares \ Shared \ Engineering совместно используется как \\ fs1 \ Engineering
  • C: \ Shares \ Shared \ Admin используется совместно как \\ fs1 \ Admin

Эти общие ресурсы обычно отображаются как сетевые диски на пользовательских рабочих станциях. E: \ может быть сопоставлен, например, с \\ fs1 \ Engineering .

Я хочу переместить эти общие ресурсы с этого виртуального диска в новое место хранения ] \\ abc \ def , и я хочу сделать это прозрачно для конечного пользователя (по крайней мере, на данный момент - в конечном итоге исходный путь исчезнет, ​​но это выходит за рамки вопроса).

* Обновление до 2016 или 2019 в этом году.

Где я сейчас

Некоторые подпапки общих папок переносятся сначала путем копирования данных в целевое расположение ( \\ abc \ def ) с помощью RoboCopy, затем переименовав исходный путь в резервный путь и, наконец, создав символическую ссылку каталога на новую цель. Процесс выглядит примерно так (некоторые дополнительные флаги / параметры опущены для краткости):

robocopy D:\Shares\Shared\Admin\Finance \\abc\def\Finance /mir
ren D:\Shares\Shared\Admin\Finance D:\Shares\Shared\Admin\Finance_old
mklink /D D:\Shares\Shared\Admin\Finance \\abc\def\Finance

Затем права доступа к папке Finance_old изменяются и в конечном итоге удаляются, как только мы убедимся, что все работает нормально.

] Обратите внимание, что корневая общая папка D: \ Shares \ Shared \ Admin по-прежнему является реальной папкой, а не символической ссылкой.

Это работает очень хорошо - это можно сделать менее чем за 1 секунду. времени простоя, и все программы конечных пользователей продолжают работать.

Кроме того: разрешения Windows SymLink

Я уже настроил объект групповой политики, чтобы разрешить удаленное соединение с удаленной целью символическими ссылками. source1 , source2

Проблема

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

Я могу успешно создать символическую ссылку в каталоге D: \ Shares \ Shared :

mklink /D D:\Shares\Shared\symlink_test \\abc\def\target

Затем я могу успешно добавить ее в Управление общим доступом и хранилищем:

Share settings

Successfully shared

И общий ресурс появляется при просмотре \\ fs1 в проводнике Windows.

Но когда я пытаюсь получить доступ к общему расположению \\ fs1 \ symlink_test , я получаю сообщение об ошибке «Устройство не готово»:

device not ready error

Привет говорит про разрешения!

Я проверил все разрешения, расположение должно быть доступно для чтения.

  • Я могу получить доступ к \\ abc \ def \ symlink_test напрямую.
  • Я могу получить доступ к D:\ Shares \ Shared \ symlink_test , и он правильно переводит меня в целевое расположение.

Так что я не думаю, что это проблема с правами доступа.

Другая информация

  • fs1 работает под управлением Windows Server 2008 R2
  • \\ abc \ def на самом деле является пространством имен распределенной файловой системы
  • \\ abc \ def \ foo - это папка в пространстве имен DFS с целью на Synology NAS \ \ nas1 \ foo
6
задан 7 March 2019 в 22:17
1 ответ

Я бы посоветовал вам взглянуть на DFS. Я сам не выполнял настройку, но я видел, как администраторы успешно переносили с ним общий ресурс с одного сервера Windows CIFS на другой.

Это выглядит примерно так:

  1. Сервер1 содержит общий ресурс на \\ Server1 \доля. Общий ресурс DFS получает создан, который выглядит как \\ DFS \ share, который берет информацию из \\ Server1 \ share.
  2. Server2 включается и добавляется к репликации DFS. Теперь все данные из \\ Server1 \ share доступны в \\ server2 \ share и \\ DFS \ share.
  3. Измените ваши GPO (или что-то еще, что сопоставляет общие ресурсы) на \\ DFS \ share, а не на \\ Server1 \ share.
  4. Теперь вы можете удалить \\ Server1 \ share из DFS и выключить его. Каждый раз, когда вам нужно снова перенести общий ресурс, вы можете добавить новый сервер в репликацию DFS. Кроме того, у вас может быть несколько серверов в DFS постоянно для резервного копирования (один сервер умирает, другой имеет данные) или доступности (один сервер в двух удаленных офисах).
2
ответ дан 3 December 2019 в 00:40

Теги

Похожие вопросы