"Sniper" <stop.le.spam@wanamou.fr> a écrit dans le message de groupe de
discussion :
mn.2a197d9c0cab5ec1.16273@sniper.org...
> En cette heure matinale, bonjour,
> Je bute sur une fonction de Vista qui me dépannerait bien....
> Je cherche à programmer une tâche dans Vista pour effacer des fichiers
> obsolètes stockés dans plusieurs dossiers. Pas évident....
> Il faudrait effacer le contenu *dans plusieurs sous-dossiers* C:\Program
> Files\Programme\Dossiers\ de fichiers *plus vieux que 5 jours* .
> Un spé******te de Vista aurait-il un script à offrir pour ce genre de truc
> ? La difficulté semble être au niveau du tri d'ancienneté...
> Il existe peut-être aussi une possibilité de faire ça à la fermeture de
> Vista, par la GPEdit.... mais sous Vista Familiale Premium... ça va pas
> être possible.
Meuhhhh si !
Bon, comme on ne dispose pas (sauf truandage) de GPEDIT, il faut bidouiller
la BDR, mais ce n'est pas insurmontable.
Il faut éditer (ou créer si elle n'existe pas) la clef :
HKLM\SOFTWARE\Policies\Microsoft\Windows\System\Sc ripts\Shutd***own\0
On y trouve 5 entrées de type REG_SZ:
(à créer éventuellement)
"DisplayName"
valeur : "Stratégie de groupe locale"
"FileSysPath"
valeur : "C:\WINDOWS\System32\GroupPolicy\machine"
(chemin à adapter à sa config)
"GPO-ID"
valeur : "LocalGPO"
"GPOName"
valeur : "Stratégie de groupe locale"
"SOM-ID"
valeur : "Local"
Il y a ensuite autant de sous-clefs qu'il y a de scripts ou programmes à
exécuter
HKLM\SOFTWARE\Policies\Microsoft\Windows\System\Sc ripts\Shutd***own\0\0
...
Le nom de chaque sous-clef est un nombre, exprimé en hexadécimal, commençant
à 0
P.ex.
HKLM\Software\Policies\Microsoft\Windows\System\Sc ripts\Shutdown \0\0
...
HKLM\Software\Policies\Microsoft\Windows\System\Sc ripts\Shutdown \0\b
...
HKLM\Software\Policies\Microsoft\Windows\System\Sc ripts\Shutdown \0\f
...
HKLM\Software\Policies\Microsoft\Windows\System\Sc ripts\Shutdown \0\11
...
Chaque sous-clef contient 3 entrées :
"ExecTime"
de type REG_QWORD (type assez rare, de 8 octets)
valeur : 00 00 00 00 00 00 00 00
"Parameters"
de type REG_SZ
valeur : des paramètres éventuels transmis au script
"Script"
de type REG_SZ
valeur : le nom du script. Son chemin complet
est à indiquer s'il n'est pas dans
%systemroot%\System32\GroupPolicy\Machine\Scripts\ Shutdown
De plus, il doit exister un fichier "script.ini" placé dans
%systemroot%\System32\GroupPolicy\Machine\Scripts
Ce script a la structure suivante :
[Shutdown]
0CmdLinetest.cmd
0Parameters 1CmdLinemachin.exe
1Parameters 2CmdLinec:\vbs\truc.vbs
2Parameters ...
Pour chaque script on a 2 lignes :
"Ncmdlinexxxx" qui donne le nom du script
"NParametersyyyyy" qui donne les paramètres éventuels
N étant le n° d'ordre du script (0, 1, 2, ..., 11, 12...) en décimal
ici
NB: ce fichier script.ini sert aussi pour les scripts au démarrage de
Windows.
Dans ce cas, la section commence par "[Startup]"
et les clefs sont
HKLM\Software\Policies\Microsoft\Windows\System\Sc ripts\Startup
NB: je me suis interrogé sur la raison de la
présence de ces fichiers
"script.ini", qui font apparemment double-emploi avec les données de la BDR.
Cela est du au fait qu'après application des stratégies dans GPEDIT.MSC,
seul le compte en cours voit sa BDR modifiée immédiatement.
Pour que cela s'applique aux autres comptes, c'est le fichier REGISTRY.POL
qui va provoquer ces modifs lors de chaque ouverture de session.
Or j'ai constaté après examen approfondi (en hexadécimal!) de REGISTRY.POL
qu'il n'indiquait qu'un seul script (le 1er, indice 0) et non pas les
suivants.
C'est donc le système qui va à ce moment là compléter éventuellement avec le
contenu de "script.ini"... Ouf !!!
PS: dans le cas de scripts à lancer l'ors de l'ouverture ou de la fermeture
de session, les clefs concernées sont les suivantes :
Ouverture de session :
HKCU\Software\Policies\Microsoft\Windows\System\Sc ripts\Logon****\0
Fermeture de session
HKCU\Software\Policies\Microsoft\Windows\System\Sc ripts\Logoff****\0
et la méthode pour définir les scripts est analogue à celle décrite lors de
l'arrêt de l'ordinateur.
Le chemin décrit dans "FileSysPath" sera alors du style
"C:\WINDOWS\System32\GroupPolicy\user"
Bon amusement !
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou
http://jc.bellamy.free.fr