Можно ли поделиться символическая ссылка в сетевое расположение в качестве сетевого ресурса Windows? НАПРИМЕР:
D:\folder\Shared\foo
на \\server
разделяется как \\server\foo
, где D:\folder\Shared\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
Я уже настроил GPO, чтобы разрешить
Remote Link to Remote Target
символические ссылки. источник1, источник2
Слишком много вложенных папок, чтобы создавать символические ссылки для каждой, поэтому вместо этого я хотел бы создать одну символическую ссылку для каждой общей корневой папки.
Я могу успешно создать символическую ссылку в D:\Shares\Shared
каталог:
mklink /D D:\Shares\Shared\symlink_test \\abc\def\target
Затем я могу успешно добавить его в Управление общим доступом и хранилищем:
И доля отображается при просмотре \\fs1
в проводнике Windows.
Но когда я пытаюсь получить доступ к общему местоположению \\fs1\symlink_test
, Я получаю сообщение об ошибке «Устройство не готово»:
Я проверил все разрешения, расположение должно быть читабельным.
\\abc\def\symlink_test
прямо.D:\Shares\Shared\symlink_test
и он правильно доставит меня в нужное место.Так что я не думаю, что это проблема с разрешением.
fs1
работает под управлением Windows Server 2008 R2\\abc\def
фактически является пространством имен распределенной файловой системы\\abc\def\foo
- это папка в пространстве имен DFS с целью на Synology NAS \\nas1\foo
Я бы посоветовал вам взглянуть на DFS. Я сам не проходил настройку, но видел, как администраторы успешно переносили с ним общий ресурс с одного сервера Windows CIFS на другой.
Это выглядит примерно так: