[R] Dossier temporaire autovidable

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1037
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

[R] Dossier temporaire autovidable

#1

Message par walkson »

[Edit] j'ai modifié le titre car je suis bien loin du lecteur virtuel :roll:

Bonjour,
Je cherche le moyen de créer un lecteur virtuel
Le but de la manœuvre est d'effacer à la fermeture de la session (ou du PC) tous les fichiers qu'il contient.
Toutes autres méthodes ayant le même but me convient (dossier temporaire ou autre)
Merci de votre aide
Modifié en dernier par walkson le sam. 04 avr. 2015 18:06, modifié 1 fois.
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Créer un lecteur virtuel

#2

Message par orax »

Si la quantité de données temporaires à stocker n'est pas importante , il y a la possibilité de les stocker en RAM => ram disk.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1037
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Créer un lecteur virtuel

#3

Message par walkson »

Bonjour,
Hélas, les données peuvent être très importantes, plusieurs gigas.
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Créer un lecteur virtuel

#4

Message par jguinch »

S'il s'agît d'un lecteur virtuel, les données devront bien être stockées quelque part :roll:
Un ramdisk sera très rapide, vidé au reboot, mais limité en taille (en fonction de la quantité de RAM dont du disposes)

Comme autre solution, tu peux avoir par exemple :
- Fichier VHD ( + tâche planifiée au boot pour formater le disque rapidement) - à partir de Windows 7
- Lecteur virtuel avec la commande SUBST ( + tâche planifiée au boot pour supprimer le contenu du répertoire et créer le lecteur)
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2109
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Créer un lecteur virtuel

#5

Message par TommyDDR »

Pourquoi pas un simple sous dossier qui serait supprimé ?

Vous pouvez aussi aussi utiliser la commande subst pour faire d'un sous dossier un "disque dur virtuel" que vous pouvez vider à chaque fermeture de session

Code : Tout sélectionner

subst h: c:\dossier
Cela crééra un lecteur h: pointant sur c:\dossier

EDIT : gillé par jguinch :(
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1037
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Créer un lecteur virtuel

#6

Message par walkson »

Je me suis mal exprimé en disant "lecteur virtuel". :oops:
En fait, c'est une sorte de poubelle qui se vide à la fin de la session que je souhaite.
(J'ai réalisé un petit programme qui me détruit les fichiers que je n'ai plus besoin. Le problème est que si je fais une erreur, impossible de récupérer ce fichier, d'où l'idée de cette poubelle)
TommyDDR a écrit :Pourquoi pas un simple sous dossier qui serait supprimé ?
C'est, je pense, la meilleure idée mais comment faire sans avoir un script en boucle qui détecte la fin de session et vide le dossier ?
Et en passant par les taches planifiées, comment automatiser cette tache ? sachant que ce programme peut être installé sur plusieurs ordinateurs.
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Créer un lecteur virtuel

#7

Message par jguinch »

Il faudra que tu créés un programme d'installation de ton application qui, en même temps qu'il installe de programme, créé une tâche planifiée.
Tu peux créer cette tâche planifiée en exécutant la commande externe schtasks.exe :

Code : Tout sélectionner

Run(@SystemDir & '\schtasks.exe /create /tn "PurgeTempDir" /tr "c:\scripts\purge.exe ""c:\temp""" /sc ONLOGON ', @SystemDir, @SW_HIDE)
 
Et tu créés un script purge.exe qui s'occupe de purger le répertoire voulu :
► Afficher le texte
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1037
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Créer un lecteur virtuel

#8

Message par walkson »

Je viens de tester tes scripts, jguinch , et ça marche impeccable.
Je n'ai qu'un regret, c'est que la tache planifiée démarre à l'ouverture de la session et non à la fin (problème de confidentialité)
J'ai cherché et testé pour une tache en fin de session mais sans résultat... Je me débrouille peut être comme un manchot ?
Si quelqu'un a une idée je suis preneur.
En tout cas, jguinch, merci pour cette solution.
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Créer un lecteur virtuel

#9

Message par orax »

Je n'ai pas vu de ONLOGOFF ou ONLOGOUT, ça ne doit pas exister donc je pense qu'il faut spécifier manuellement un événement. Dans ce cas, l'événement à choisir serait Winlogon, ID 7002 (il peut être trouvé dans l'observateur d'événements > Système). On peut créer la tâche depuis la ligne de commande ou la créer avec taskschd.msc et exporter un fichier XML qui servira de modèle. Détails ici => http://superuser.com/a/615728
Le XML en P.J. peut être importé depuis taskschd.msc.
Fichiers joints
System_Microsoft-Windows-Winlogon_7002.xml
Exemple pour exécuter un programme lors de la déconnexion.
(3.41 Kio) Téléchargé 142 fois
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Créer un lecteur virtuel

#10

Message par jguinch »

schtasks.exe dispose de l'option ONEVENT, qui pourra faire que la tâche s'exécute sur un événement particulier (7002 ici).
Ce qui m'interpelle, c'est le fait de vouloir absolument lancer le script à la fermeture de session. Si le PC s'arrête brutalement, la tâche ne s’exécutera pas. Alors qu'une ouverture de session aura toujours lieu, d'où ma précédente suggestion.
Sinon, tu peux regarder du côté des scripts d'ouverture/fermeture de session : (HKLM |HKCU)\Software\Policies\Microsoft\Windows\System\Scripts\Logoff, mais je ne garanti rien sur les versions Windows familial.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Créer un lecteur virtuel

#11

Message par jguinch »

schtasks.exe dispose de l'option ONEVENT, qui pourra faire que la tâche s'exécute sur un événement particulier (7002 ici).
Ce qui m'interpelle, c'est le fait de vouloir absolument lancer le script à la fermeture de session. Si le PC s'arrête brutalement, la tâche ne s’exécutera pas. Alors qu'une ouverture de session aura toujours lieu, d'où ma précédente suggestion.
Sinon, tu peux regarder du côté des scripts d'ouverture/fermeture de session : (HKLM |HKCU)\Software\Policies\Microsoft\Windows\System\Scripts\Logoff, mais je ne garanti rien sur les versions Windows familial.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1037
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Créer un lecteur virtuel

#12

Message par walkson »

Bonjour,
Après une multitude d'essais, je me suis rabattu sur la solution d'Orax en modifiant les chemins et le userid comme ceci: <UserId>SYSTEM</UserId>. A priori, cela devrait passer partout.
Un petit coup de Run(@SystemDir & '\schtasks /Create /TN "PurgeONEVENTxml" /XML "C:\Users\Pc\Desktop\purgeWindows-Winlogon_7002.xml"', @SystemDir, @SW_HIDE) et l'affaire est dans le sac.
Et cette solution rejoint mon souhait et la proposition de jguinch puisqu'elle agit en début et fin de session.
J'aurais préféré cette solution

Code : Tout sélectionner

Run(@SystemDir & '\schtasks.exe /create /tn "PurgeONEVENT" /tr "C:\purge\purge.exe ""c:\temp""" /sc ONEVENT /EC System  /MO "*[System[Provider[@Name=''Microsoft-Windows-Winlogon''] and (EventID=7002)]]" /F', @SystemDir, @SW_HIDE)
mais la tache échoue. L’échec doit être du au fait que la case "exécuter même si l'utilisateur n'est pas connecté" n'est pas coché et impossible de savoir le faire en command line. Si quelqu'un a la solution, je prends !
Il me reste plus qu'à modifier mon programme "Delete" pour envoyer fichiers et dossiers dans le Temp
Merci à Orax et jguinch pour leur aide
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [R] Dossier temporaire autovidable

#13

Message par orax »

Il faut ajouter /RU "" pour utiliser le compte système. Dans ce cas l'utilisateur n'aura pas besoin d'être connecté.
L'avantage du fichier XML est qu'il contient plusieurs déclencheurs : celui à la fermeture de la session et un autre au démarrage de l'ordi. Je n'ai pas trouvé comment faire la même chose depuis la ligne de commande (sans l'import du XML).
Il y a aussi FileInstall() qui pourrait être utile pour embarquer et extraire le .XML depuis purge.exe.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1037
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [R] Dossier temporaire autovidable

#14

Message par walkson »

Bonsoir,
Avec /RU "" en effet ça marche très bien mais finalement j'ai utilisé le XML car je n'ai pas trouvé non plus une solution avec plusieurs déclencheurs. Voilà le script final:
► Afficher le texte
En écrivant le XML comme une fonction, cela m'a permis de rajouter les chemins sous forme de macro. Par contre, j'ai du modifier mon programme "delete" pour renommer les éléments déplacés dans le Temp à cause des doublons. Le script de jguinch marche à merveille et il est très rapide, on ne le remarque même pas malgré les 8 GO d'essai.
Encore merci à vous deux pour votre aide.
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Répondre