Partager ses sous-répertoires dans un cluster Windows Server 2008 ou Windows Server 2008 R2

Tous les aficionados du cluster auront remarqué la disparition de la fonctionnalité pourtant très appréciée de partage automatique des sous-répertoires d’un partage clusterisé.

En dehors de la création manuelle de ces partages, point de salut.

Voilà une petite commande pour partager tous les sous-répertoires du répertoire courant.

FOR /F %i IN ('dir /b /a:d') DO net share %i=%CD%\%i

Si les partages doivent être cachés, la commande devient :

FOR /F %i IN ('dir /b /a:d') DO net share %i$=%CD%\%i

 

Explication :

dir /b /a:d renvoie la liste des répertoires contenus dans le répertoire courant

/b pour une liste simple et /a:d seulement les fichiers qui sont des répertoires (directory)

La boucle FOR va donc exécuter le code qui suit le DO pour chacune des entrées renvoyée par le dir

 

la commande net share permet le partage, on lui indique le nom du partage et le chemin d’accès complet au partage

%i ou %i$ sera le nom du partage (respectivement visible et caché), ce nom est le nom du répertoire lui même

%CD%\%i est la concaténation du chemin d’accès complet (répertoire actuel) et du nom du sous-répertoire à partager

 

Les 2 lignes de commandes citées devront être exécutées directement depuis l’invite de commande

Pour celles et ceux qui veulent inclure ces lignes dans un fichier .cmd ou .bat, voici la syntaxe à utiliser :

 

FOR /F %%i IN ('dir /b /a:d') DO net share %%i=%CD%\%%i

Si les partages doivent être cachés, la commande devient :

FOR /F %%i IN ('dir /b /a:d') DO net share %%i$=%CD%\%%i

le %i qui est la variable locale à notre commande doit avoir un double % pour être correctement interprétée

Le %CD% est une variable système et n’a donc pas besoin d’être doublé au niveau du %