web-dev-qa-db-fra.com

Sous Windows, est-il possible de partager un lien symbolique en tant que partage réseau?

Sommaire

Est-il possible de partager un lien symbolique vers un emplacement réseau en tant que partage réseau sous Windows? PAR EXEMPLE:

D:\folder\Shared\foo sur \\server est partagé en tant que \\server\foo, où D:\folder\Shared\foo est en fait un lien symbolique de répertoire vers \\other\server\bar.

Ou est-ce un problème XY ?

Contexte

Nous avons une machine virtuelle Windows Server 2008 R2 *, fs1, avec 2 disques virtuels. C: est bien sûr le lecteur système et D: est un lecteur de données. Nous partageons plusieurs dossiers sur D: via SMB sous Windows Gestion du partage et du stockage . Par exemple:

  • D:\Shares\Shared\Engineering est partagé en tant que \\fs1\Engineering
  • C:\Shares\Shared\Admin est partagé en tant que \\fs1\Admin

Ces partages sont généralement mappés en tant que lecteurs réseau sur les postes de travail des utilisateurs. E:\ peut être mappé sur \\fs1\Engineering, par exemple.

Je souhaite déplacer ces partages hors de ce disque virtuel et vers notre nouvel emplacement de stockage \\abc\def, et je veux le faire de manière transparente pour l'utilisateur final (au moins pour l'instant - le chemin d'origine finira par disparaître, mais cela sort du cadre de la question).

* Mise à niveau vers 2016 ou 2019 cette année.

Où je suis maintenant

Certains sous-dossiers des dossiers partagés sont d'abord migrés en copiant les données vers l'emplacement cible (\\abc\def) en utilisant RoboCopy, puis en renommant le chemin d'origine en chemin de sauvegarde et enfin en créant un lien symbolique de répertoire vers la nouvelle cible. Le processus ressemble à peu près à cela (certains indicateurs/options supplémentaires sont omis par souci de concision):

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

Puis le Finance_old le dossier obtient les autorisations modifiées et finalement supprimées une fois que nous avons vérifié que tout fonctionne bien.

Notez que le dossier partagé racine, D:\Shares\Shared\Admin, est toujours un dossier réel et non un lien symbolique.

Cela fonctionne très bien - cela peut être fait avec moins d'une seconde de temps d'arrêt, et tous les programmes d'utilisateur final continuent de fonctionner.

À part: Autorisations SymLink de Windows

J'ai déjà configuré un GPO pour autoriser Remote Link to Remote Target liens symboliques. source1 , source2

Le problème

Il y a trop de sous-dossiers pour créer des liens symboliques pour chacun, donc je voudrais plutôt créer un seul lien symbolique pour chaque dossier racine partagé.

Je peux créer avec succès un lien symbolique dans le D:\Shares\Shared répertoire:

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

Je peux ensuite l'ajouter avec succès à Share and Storage Management:

Share settings

Successfully shared

Et le partage s'affiche lors de la navigation \\fs1 dans l'Explorateur Windows.

Mais lorsque j'essaie d'accéder à l'emplacement partagé \\fs1\symlink_test, J'obtiens une erreur "Appareil non prêt":

device not ready error

Hé ça dit des trucs sur les permissions!

J'ai vérifié toutes les autorisations, l'emplacement doit être lisible.

  • Je peux accéder à \\abc\def\symlink_test directement.
  • Je peux accéder à D:\Shares\Shared\symlink_test et il m'emmène correctement à l'emplacement cible.

Je ne pense donc pas que ce soit un problème de permission.

Autre info

  • fs1 exécute Windows Server 2008 R2
  • \\abc\def est en fait un espace de noms du système de fichiers distribués
  • \\abc\def\foo est un dossier dans l'espace de noms DFS avec une cible sur un Synology NAS \\nas1\foo
6
dthor

Je vous encourage à jeter un œil à DFS. Je n'ai pas effectué la configuration moi-même, mais j'ai vu des administrateurs réussir à migrer un partage d'un serveur Windows CIFS avec un autre.

Cela ressemble un peu à ceci:

  1. Server1 contient un partage dans \\ Server1\share. Un partage DFS est créé qui ressemble à \\ DFS\share qui prend les informations de \\ Server1\share.
  2. Server2 est levé et ajouté à la réplication DFS. Maintenant, toutes les données de \\ Server1\share sont disponibles dans \\ server2\share et \\ DFS\share.
  3. Modifiez vos objets de stratégie de groupe (ou tout ce qui mappe les partages) en \\ DFS\share plutôt que \\ Server1\share.
  4. Vous pouvez maintenant supprimer \\ Server1\share du DFS et l'arrêter. Chaque fois que vous devez migrer à nouveau le partage, vous pouvez ajouter un nouveau serveur à la réplication DFS. De plus, vous pouvez avoir plusieurs serveurs dans le DFS en continu pour des raisons de sauvegarde (un serveur meurt, l'autre a les données) ou de disponibilité (un serveur dans deux bureaux distants).
2
duct_tape_coder