Назад | Перейти на главную страницу

В Windows можно ли использовать символическую ссылку как сетевой ресурс?

Резюме

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

Эти общие ресурсы обычно отображаются как сетевые диски на рабочих станциях пользователей. 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, Я получаю сообщение об ошибке «Устройство не готово»:

Эй, там говорится о разрешениях!

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

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

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

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

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

  1. Server1 содержит общий ресурс в \\ Server1 \ share. Создается общий ресурс 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 постоянно для резервного копирования (один сервер умирает, другой хранит данные) или доступности (один сервер в двух удаленных офисах).