2 votes

Différents liens symboliques pour différents utilisateurs sous Windows

J'ai une application qui enregistre ses données sur C:\ProgramData. Cela signifie que pour tous les utilisateurs, elle utilise les mêmes données. Je veux trouver un moyen pour que différents utilisateurs puissent avoir leur propre espace de données séparé. J'ai utilisé un lien symbolique (jonction de dossiers) pour le créer à %userprofile%\Documents\AppFolder, et la méthode fonctionne bien sur mon profil utilisateur, mais lorsque j'essaie avec un autre utilisateur, l'application ne fonctionne pas; car elle tente d'accéder à C:\User\User1\Documents\AppFolder, que l'utilisateur 2 n'a pas accès. Y a-t-il une solution possible pour que différents utilisateurs puissent se lier à différents liens symboliques?

1voto

DankyNanky Points 280

Vous pouvez utiliser la commande subst pour mapper une lettre de lecteur vers votre répertoire utilisateur. Les lettres de lecteur créées par subst sont propres à chaque utilisateur, vous pouvez donc créer le même mappage pour chaque utilisateur, puis créer un lien symbolique vers cette lettre de lecteur. Ou simplement indiquer le lecteur mappé via les paramètres du programme.

Un exemple :

subst v: %userprofile%
mklink /d c:\ProgramData\AppFolder v:\Documents\AppForder

L'inconvénient de cette solution est que les lettres de lecteur mappées ne sont pas persistantes, vous devez donc les recréer à chaque fois qu'un utilisateur se connecte (par exemple, en plaçant un raccourci vers la commande subst dans %appdata%\Microsoft\Windows\Start Menu\Programs\Startup). Ou vous pouvez créer un fichier batch qui exécutera subst puis votre programme.

Une solution alternative est d'exécuter votre programme dans un sandbox (par exemple, Sandboxie). Cela ne fonctionnera pas si le programme tente d'effectuer des opérations de bas niveau (par exemple, l'installation de pilotes ou de services). De plus, vous devrez restaurer les fichiers créés par le programme à partir du sandbox après chaque exécution si vous avez besoin de les utiliser ailleurs.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X