Page 1 sur 1

Deplacer/copier des raccourcis d'un user à tous les users.

Posté : 23 mars 2011 08:17
par vasco
Bonjour,

J'ai besoin d'aide pour la création d'un batch sous Windows 7 qui me permettrait de :
- déplacer des raccourcis d'application Office qui se trouvent sur l'utilisateur "Public" (remplace "All users" sous XP) vers l'utilisateur "Default" (remplace "Default User" sous XP)
- de copier ces mêmes raccourcis sur le bureau (Desktop) de tous les utilisateurs qui sont déjà créé sur le poste.

J'ai reussi à faire la première partie :
move "C:\Users\Public\Desktop\Microsoft Excel 2010.lnk" "C:\Users\Default\Desktop\"
move "C:\Users\Public\Desktop\Microsoft Outlook 2010.lnk" "C:\Users\Default\Desktop\"
move "C:\Users\Public\Desktop\Microsoft PowerPoint 2010.lnk" "C:\Users\Default\Desktop\"
move "C:\Users\Public\Desktop\Microsoft Word 2010.lnk" "C:\Users\Default\Desktop\"

xcopy "C:\Users\Default\Desktop\Microsoft Excel 2010.lnk" "%USERPROFILE%\Desktop\"
xcopy "C:\Users\Default\Desktop\Microsoft Outlook 2010.lnk" "%USERPROFILE%\Desktop\"
xcopy "C:\Users\Default\Desktop\Microsoft PowerPoint 2010.lnk" "%USERPROFILE%\Desktop\"
xcopy "C:\Users\Default\Desktop\Microsoft Word 2010.lnk" "%USERPROFILE%\Desktop\"
Mais comme vous pouvez le constater la copie ne se fait que sur le compte de l'utilisateur en court et non sur tous les utilisateurs.

Je ne veux pas mettre ces raccourcis sur AllUsers car je veux que chaque utilisateur puisse choisir de laisser ou supprimer ces raccourcis sans que ça impacte les autres utilisateurs.

Je pense qu'il faudrait que je fasse une boucle qui va me donner le nom des dossiers (et les mettre dans une variable) dans c:\users\ et va faire un xcopy dans chacun de ces dossiers.
Et c'est là que j'ai besoin de votre aide car les boucles c'est pas trop mon fort.

Merci d'avance pour votre aide ;-)
V

Re: Deplacer/copier des raccourcis d'un user à tous les users.

Posté : 23 mars 2011 23:23
par plopi
Salut

Si j'ai bien compris la problématique, j'ai codé ça vite fait (je suis sous Seven64) mais j'ai pas testé les "xcopy"

Comme tu peux le voir sur ce script, j'ai pris le parti de le "jouer" avec deux boucles "for", la première pour extraire les comptes sur lesquels doivent êtres appliqué les modifs, et la seconde, pour le traitement en lui même.

Code : Tout sélectionner

@echo off 

::----------------------------------------------
:: Variables

set acc_rep=%SystemDrive%\users

set acc_lst=%SystemDrive%\acc_lst.txt

::----------------------------------------------
:: Creation de la liste des comptes a traiter 

for /f %%a in ('dir /b /a:d-h-s %acc_rep% ^| findstr /i /v Public') do echo %%a >> %acc_lst%

::----------------------------------------------
:: Traitement pour les comptes de la liste

for /f %%b in (%acc_lst%) do  (

    xcopy "C:\Users\Default\Desktop\Microsoft Excel 2010.lnk" "%acc_rep%\%%b\Desktop\"
    xcopy "C:\Users\Default\Desktop\Microsoft Outlook 2010.lnk" "%acc_rep%\%%b\Desktop\"
    xcopy "C:\Users\Default\Desktop\Microsoft PowerPoint 2010.lnk" "%acc_rep%\%%b\Desktop\"
    xcopy "C:\Users\Default\Desktop\Microsoft Word 2010.lnk" "%acc_rep%\%%b\Desktop\"
)
 
Dans l'absolu pour que ça soit vraiment propre il faudrait rajouter des contrôles sur les fichiers et dossiers de plus je penses que tu devrai positionner des options pour "xcopy" dans le but d'anticiper les erreurs qui pourraient planter le script pendant son déroulement.

Enjoy