Déplacer Mes Documents par défaut et par script

Le coin des administrateurs et des développeurs. Astuces techniques, ...

Déplacer Mes Documents par défaut et par script

Messagepar nardino » Mer 19 Déc 2012 23:45

Ce sujet est la copie de celui qui est sur le forum-seven.com : http://www.forum-seven.com/forum/topic4073.html
Merci à Alain quarré et à PC-ACCOMPAGNE pour ses tests sous Windows 8.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Bonjour à tous,

Tout d'abord, une petite mise au point:
Je fourni ce script de manière libre. Vous pouvez le copier, le modifier et le distribuer.
Il est fourni 'tel quel', sans aucune garantie.
Vous êtes tenu de faire des tests sur un système prévu à cela.
Si vous êtes d'accord avec ce qui précède, la suite est à vous.

For english version, see here
Thanks to Pepito


Comment faire en sorte que les dossiers utilisateurs soient là où on veut.
Bon nombre de tutos sur le net vous indiqueront comment déplacer le dossiers Mes Documents, Mes Images, Téléchargements, Mes Vidéos, ...
Néanmoins, la méthode la plus expliquée (clic droit, propriétés, emplacement, ...) pose plusieurs problèmes.

Problèmes des jonctions.

Ce problème est lié aux Jonctions créées lors de l'activation du compte utilisateur.
Les jonctions sont là pour rediriger les écritures sur, par exemple, Mes documents
Si vous déplacez Mes Documents en passant par clic droit, propriétés, il est vrai que le dossier Mes Documents sera au nouvel endroit.
Mais, dans le dossier utilisateurs, il y aura toujours une jonction Mes Documents qui pointera toujours vers l'ancien emplacement.
Déplacez votre dossiers Mes Documents, puis, constatez l'état des jonctions:

Pour ce faire, dans une fenêtre de commande, tapez:

Code: Tout sélectionner
dir "%userprofile%" /AL


La jonction Mes Documents pointe toujours vers l'ancien emplacement.
Pour le prouver, dans la même fenêtre de commande, tapez:

Code: Tout sélectionner
mkdir documents
    puis
    dir c:>"%userprofile%\Mes Documents\test.txt"


Et cherchez le fichier test.txt... il se trouvera dans l"ancien dossier C:\Users\%username%\Documents
Ceci était le premier défaut de ces méthodes.

Travail fastidieux

Le deuxième défaut est qu'il faut procéder manuellement, pour chaque dossier, pour chaque utilisateur, et si un nouvel utilisateur est créé, il faut refaire toutes les manip.

Problèmes de sécurité

Troisième défaut de cette méthode, et non des moindres,
Si vous déplacez vos dossiers, n'oubliez pas que tous les autres utilisateurs, même les non administrateurs auront tous les droits sur vos dossiers déplacés.
La dernière version du script intégrant la sécurité corrige ce problème.

Comment le script fonctionne:

Le script que je vous propose modifie la ruche registre du "Default User". Le "Default User" est le modèle employé à l'activation du profil d'un utilisateur.
Sur Seven, cette ruche est là: C:\Users\Default\NTUSER.DAT

Vous pouvez lire plus d'info sur son fonctionnement dans un post que j'ai fais pour XP
http://forum.generation-nt.com/windows- ... ut-186681/

Effet du script

Après l'application du script, tout nouvel utilisateur aura ses dossiers à l'endroit choisi.
A la première connexion du nouvel utilisateur, un autre script créera les jonctions, qui cette fois-ci, pointeront vers les bons dossiers et modifiera aussi les paramètres de sécurité pour qu'ils soient identiques que sur les dossiers originaux.
Le script ne modifie absolument rien pour l'utilisateur en cours ou pour les utilisateurs déjà actifs sur le PC
Il n'y a donc aucun risque à le tester avec un nouvel utilisateur test sur votre PC

Pour télécharger le script, une version toujours à jour : Voir en bas de ce post.

Mode d'emploi :

Le script à lancer est PositionDefaultFolderSevenModular.cmd OBLIGATOIREMENT en administrateur.
Le dossier de destination par défaut du script est D:\Documents\
Si ce dossier est OK pour vous, il suffit de taper Enter au clavier jusqu'à la fin du script

Que fait ce script?
Le script est totalement modulaire et permet de définir les choses suivantes:

    Les dossiers à déplacer
    La destination
    Si il faut un sous dossier par utilisateur ou pas
    Si il faut cacher le dossier de destination
    Sécurité des dossiers déplacés

Quels dossiers sont concernés ?
Le script est capable de déplacer les dossiers suivants:

    Mes Documents
    Mes images
    Mes vidéos
    Ma musique
    Bureau
    Favoris
    Historique
    Téléchargements
    Parties enregistrées
    Contacts
    Recherches
    Cookies
    Cache Internet explorer
    CD Burning


Personnalisation.

Pour choisir un autre emplacement, vous devez modifier le fichier PositionDefaultFolderSevenModular.ini qui se trouve dans le sous répertoire de langue.
Un contrôle est de toute façon fait sur le dossier de destination.

Pour paramétrer le script, il faut éditer le fichier PositionDefaultFolderSevenModular.ini dont voici le contenu original:

Code: Tout sélectionner
    Mes Documents*Personal*AddUserName*Security*Documents*D:\Documents
    Mes images*My Pictures*AddUserName*Security*Pictures*D:\Documents
    Mes vid‚os*My Videos*AddUserName*Security*Videos*D:\Documents
    Ma musique*My Music*AddUserName*Security*Music*D:\Documents
    Bureau*Desktop*AddUserName*Security*Desktop*D:\Documents
    Favoris*Favorites*AddUserName*Security*Favorites*D:\Documents
    T‚l‚chargements*{374DE290-123F-4565-9164-39C4925E467B}*AddUserName*Security*Downloads*D:\Documents
    Parties enregistr‚es*{4C5C32FF-BB9D-43B0-B5B4-2D72E54EAAA4}*AddUserName*Security*Saved Games*D:\Documents
    Contacts*{56784854-C6CB-462B-8169-88E350ACB882}*AddUserName*Security*Contacts*D:\Documents
    Recherches*{7D1D3A04-DEBB-4115-95CF-2F29DA2920DA}*AddUserName*Security*Searches*D:\Documents
    Cookies*Cookies*AddUserName*Security*Cookies*D:\CacheFolder*Hide-Sys
    Historique*History*AddUserName*Security*History*D:\CacheFolder
    Cache Internet explorer*Cache*AddUserName*Security*Temporary Internet Files*D:\CacheFolder
    CD Burning*CD Burning*NoUserName*NoSecurity*Burn*D:\CacheFolder


Chaque ligne du fichier .ini correspond à un dossier à déplacer.
Chaque ligne comporte 7 champs séparés par *

Code: Tout sélectionner
    Local name
    Registry Value Name
    AddUserName or NoUserName
    Security or NoSecurity
    Sub-Folder Name
    Move-to Position (NO BACKSLASH @end)
    (Optional) "Hide-Sys" Le répertoire de destination sera marqué en Système et Caché.



Seul les champs 3, 4, 6 et 7 peuvent être modifiés.
Placez le signe 'plus petit que' (<) au début des lignes des dossiers que vous ne voulez pas déplacer.

Exemple de modification

Mettre NoUserName à la place de AddUserName dans la ligne 4, Ma Musique, pour que tous les nouveaux utilisateurs aient un dossier musique en commun...

Problème connu avec ce script

L'activation du compte Invité après l'application de ce script posera problème.
Ce problème est dû au fait que le compte Invité n'as de droit d'écriture que sur son profil.
Des modifications vont être apportées au script pour que celui-ci cache le compte Invité si celui-ci n'est pas encore activé.

Dans tous les cas, il est de toute façon préférable de créer un compte standard en lieu et place du compte Invité.

Voilà, je vous laisse tester cela.
N'hésitez pas à poser vos questions

Téléchargements

NB: N'oubliez pas que vous êtes tenu de faire des tests dans un environnement prévu à cet effet.
La mise en production de ce script dépend uniquement de votre décision.

Version Multilingue.
Avec gestion de la sécurité des dossiers.
Les modifications futures seront uniquement apportées à cette version.
Par défaut, tous les dossiers déplacés, sauf Ma Musique, sont inaccessibles par les autres utilisateurs Non administrateurs


Version uniquement française.
Cette version date du 15 septembre 2010 et n'évoluera plus.
Je la laisse pour information.
Choisissez de préférence la version multilingue, avec gestion de la sécurité.


Version Multilingue.
Cette version date du 29 novembre 2010 et n'évoluera plus.
Je la laisse pour information.
Choisissez de préférence la version multilingue, avec gestion de la sécurité.


Pour les nostalgiques.
Première version crée pour Windows XP.
Je m'en sers encore de temps en temps.
On peut constater l'évolution depuis!


Pour déplacer le dossier public, un autre script.
Voir: topic4396.html
Et le téléchargement

******************************************************************************************************
Maj 03/05/2010
Epurage du post et suppression de l'ancien script non modulaire.

Maj 11/06/2010
- Correction d'un bug mineur (affichage d'un message quand le script n'est pas exécuté en administrateur)
- Modification du script de création des jonctions. Plus besoin d'une intervention de l'utilisateur.

Maj 15/09/2010
Suite au test effectué par Stephan, voir:
topic4073-110.html#p44897
J'ai corrigé la manière de fonctionner de la restauration des paramètres par défaut.
Auparavant, la restauration ne prenait pas en compte les dossiers suivants:

Code: Tout sélectionner
    Saved Games
    Contacts
    Searches
    Links
    CD Burn


Car ces valeurs n'existent pas d'origine dans la ruche Default User
De ce fait, la restauration ne les restaurait pas !

Maintenant, le script ajoute ces valeurs dans la branche:
\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
De la ruche Default User avant de sauver celle-ci.
Cela fait, la restauration rétablit toutes les valeurs originales plus celles ajoutées.

Pour ceux qui ont appliqué le script AVANT le 15/09/2010, et qui veulent appliquer restauration, suivre cette procédure :

Code: Tout sélectionner
    Appliquez le script de restauration (RestoreOriginal.cmd)
    Dans C:\Windows\, effacez le fichier OriginalUserShellFolder.reg
    Appliquez le script PositionDefaultFolderSevenModular.cmd (la nouvelle version)
    A ce moment là, le fichier OriginalUserShellFolder.reg est déja corrigé et utilisable
    Ré-appliquez le script de restauration (RestoreOriginal.cmd)
    Le système est maintenant complètement rétabli à l'originale.


Merci à Stephan pour ses tests.

Maj 10/10/2010 (a)
- Vérification de l'emplacement à partir duquel le script est lancé
Il est maintenant impossible de le lancer à partir d'un emplacement défini dans le fichier .ini

Maj 10/10/2010 (b)
Modification complète pour une gestion multilingue.
suite à la demande de Pepito, pour avoir une version anglaise du script.

Je me suis dis qu'il serait mieux d'introduire dans le script une gestion évolutive de plusieurs langues.
Chaque langue de Windows peut maintenant avoir son sous dossier contenant les fichiers PositionDefaultFolderSevenModular.ini et lang.ini

Pour le moment, les langues suivantes sont présentes:

Code: Tout sélectionner
    Français
    Anglais


La langue par défaut est le français. Mais il est simple de la modifier en modifiant le script lui-même

J'aimerais ajouter aussi les langues suivantes.
Code: Tout sélectionner
    Néerlandais
    Allemand
    Italien
    Espagnol

...

Votre aide est la bienvenue.

Maj 29/11/2010
Intégration de la gestion de la sécurité des dossiers.
Par défaut, les dossiers utilisateurs sont accessibles uniquement par l'utilisateur lui-même et les membres du groupe Administrateurs.
Avec le déplacement des dossiers, la sécurité se trouve être celle héritée du dossier de destination.
Ce qui fait que tous les utilisateurs ont tous les droits sur tous les dossiers...
Avec le script, la sécurité des dossiers sera la même que celle des emplacements originaux.

Dans le fichier PositionDefaultFolderSevenModular.ini, si le champ 3 est AddUsername ET le champ 4 est Security,
les paramètres de sécurité suivants sont appliqués aux dossiers concernés:

Code: Tout sélectionner
    Applications de tous les droits à l'utilisateur. (+héritage)
    Suppression des droits hérités
    Applications de tous les droits au compte system (+héritage)
    Applications de tous les droits au groupe Administrateurs



NB: Par défaut, et comme pour les jonctions, Windows n'applique pas aux dossiers déplacés la sécurité d'origine.
le script, maintenant, le fait!

Maj 27/07/2011
Modification de script Jonctions.cmd
Ajout de la variable %userdomain% pour l'application de la sécurité des dossiers.
L'absence de cette variable a posé un problème de droit d'accès au dossier Temporary Internet Files à un utilisateur en domaine.
Voir le script jonctions.cmd à la ligne 156
Téléchargez la dernière version.

Merci de faire un retour, une remarque, une question, une correction, une idée,...
Pour les fôte d'orthografe, un MP svp.

PS: pour déplacer TOUT le dossier utilisateur par défaut, c'est beaucoup plus simple que cela....
Image
Image
En cas de problème constaté sur un sujet, contactez un modérateur par MP. N'intervenez pas vous-même. Merci
Avatar de l’utilisateur
nardino
 
Messages: 473
Inscription: Dim 9 Oct 2011 06:52
Localisation: La région des petites bulles

Retourner vers Administration / programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 1 invité

cron