Voici quelques hacks que j'ai développés. Ils ne sont pas élégants, mais peuvent être fonctionnels dans votre environnement d'entreprise.
Uniquement HOMEDRIVE
Il semble que de nombreuses applications n'utilisent que HOMEDRIVE / HOMEPATH. Dans ce cas, vous pouvez créer un script de démarrage qui remappe la lettre de lecteur de base vers votre chemin d'utilisateur local via le chemin administrateur de lecteur UNC :
set HOME
HOMEDRIVE=G:
HOMEPATH=\
HOMESHARE=\\Serveur\Utilisateurs\nom_utilisateur
net use g: /delete
net use g: \\localhost\C$\Utilisateurs\nom_utilisateur
Défaut Local de HOMEDRIVE
Si vous n'avez pas besoin d'accéder du tout à "Serveur" par son nom, vous pouvez provoquer la défaillance du paramètre de stratégie de groupe et retomber sur votre machine locale. La manière la plus simple de le faire est d'ajouter une entrée à C:\Windows\System32\drivers\etc\hosts comme :
127.0.0.1 Serveur
Après le redémarrage, vous devriez voir quelque chose comme :
set HOME
HOMEDRIVE=C:
HOMEPATH=\Utilisateurs\nom_utilisateur
HOMEDRIVE/SHARE avec des chemins UNC locaux / distants hybrides
Si vous souhaitez accéder à "Serveur" par son nom pour certains chemins UNC, mais remplacer d'autres par des chemins locaux, j'ai développé l'abominable suivant. Remarque : les connexions directes au serveur "Serveur" se résoudront toujours sur votre machine locale. Je recommande cette solution uniquement si "Serveur" est uniquement un serveur de fichiers :
-
Modifiez C:\Windows\System32\drivers\etc\hosts pour rediriger "Serveur" vers votre machine locale :
127.0.0.1 Serveur
-
Ajoutez la valeur de registre Multi-String suivante à HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0 pour permettre le passage des informations d'identification au chemin UNC local :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\
BackConnectionHostNames = Serveur
-
Créez un répertoire fictif qui servira de racine pour Serveur :
set DUMMY_LOC=C:\Serveur_Factice
mkdir %DUMMY_LOC%
cd /D %DUMMY_LOC%
-
Pour chaque chemin UNC que vous souhaitez diriger vers le véritable Serveur :
rem Vous pouvez également utiliser une IP ci-dessous, mais il est plus susceptible de se casser si le DNS change
set SERVER_FQDN=Serveur.réseau.blah.com
rem Jetez un coup d'œil à ce qui est disponible...
net view \\%SERVER_FQDN%\
mklink /D Exemple_Distant \\%SERVER_FQDN%\Exemple_Distant
net share Exemple_Distant=%DUMMY_LOC%\Exemple_Distant /grant:everyone,FULL
-
Pour chaque partage UNC que vous voulez définir localement (comme Utilisateurs) :
rem Le lien n'est pas vraiment nécessaire pour le partage, je trouve juste plus facile à gérer lorsque tous ces hacks sont dans le même répertoire
mklink /D Utilisateurs C:\Utilisateurs
net share Utilisateurs=%DUMMY_LOC%\Utilisateurs /grant:everyone,FULL
-
Redémarrez
Pour l'exemple, cela permettrait de résoudre les chemins UNC suivants :
\\Serveur\Exemple_Distant => \\Serveur.réseau.blah.com\Exemple_Distant
\\Serveur\Utilisateurs => C:\Utilisateurs
Cette résolution de chemin doit avoir lieu avant les mappings de lecteur. Tant que les chemins UNC associés aux mappings sont valides (qu'ils soient locaux ou distants), les lettres de lecteur doivent se comporter comme prévu.
Par exemple, dans ma configuration, les variables suivantes sont imposées par le domaine :
set HOME
HOMEDRIVE=G:
HOMEPATH=\
HOMESHARE=\\Serveur\Utilisateurs\nom_utilisateur
Mais en raison de mes mappings, le résultat est :
G: => \\Serveur\Utilisateurs\nom_utilisateur => C:\Utilisateurs\nom_utilisateur