Можно ли поделиться символическая ссылка на сетевое расположение в качестве сетевого ресурса 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
Затем я могу успешно добавить ее в Управление общим доступом и хранилищем:
И общий ресурс появляется при просмотре \\ 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 на другой.
Это выглядит примерно так: