IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

[C#/API] Comment vider la corbeille de tous les utilisateurs ?


Sujet :

C++/CLI

  1. #1
    Futur Membre du Club
    Inscrit en
    Ao�t 2006
    Messages
    4
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 4
    Par d�faut [C#/API] Comment vider la corbeille de tous les utilisateurs ?
    Bonjour,

    Je s�che un peu sur une API qui me semblait idiote de prime abord:

    Je dois vider la corbeille de tous les utilisateurs. J'utilise cette fonction:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
     
    [DllImport("shell32.dll")]
    public static extern int SHEmptyRecycleBin( IntPtr hwnd, string
     pszRootPath, SHERB_FLAGS dwFlags);
    L'inconv�nient c'est qu'elle efface uniquement la corbeille de l'utilisateur connect�.
    1) Je ne savais pas que la corbeille �tait li�e � une session, apr�s v�rification, si je supprime un document sur une session, elle n'apparait pas dans la corbeille d'une autre session (m�me s'il s'agit d'un fichier d'un r�pertoire commun comme C:\, etc...).
    2) J'ai d�ja activ� l'option qui permet de voir le r�pertoire C:\RECYCLER et ses sous-r�pertoires. Les fichiers supprim�s ds autres session n'apparaissent pas dedans non plus.

    J'ai cherch� des heures sur le net, j'ai rien trouv� d'utile. Si quelqu'un avait un d�but de piste...

    Mer�i d'avance.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par d�faut
    Premi�re piste, oui la corbeille est d�pendante de la session.

    Ensuite, pourquoi voudrait tu vider la corbeille d'autres sessions ?
    Ensuite, la raison pour laquelle ca ne "fonctionne" pas c'est pour une question �vidente de s�curit�. En effet, sur un compte limit� comme un compte invit�, ou utilisateur simple, (sur XP par exemple) il ne semble pas appropri� qu'une application puisse vider la corbeille de l'administrateur, n'est ce pas ?

    Enfin je sais pas, mais moi ca me semble logique. Donc comme l'application � priori n'a pas � savoir si elle est "administratrice" ou pas. Les r�gles de s�curit�s veulent que l'isolation se fasse.
    Voila une des raisons qui font que les corbeilles sont d�pendantes de la sessions et qu'on ne peut pas vider les corbeilles des autres sessions.

    Autre piste. quand tu te connecte en administrateur, ta d�j� essay� de vider les corbeilles des autres sans acc�der � leur session ?
    tu peux pas, en effet, tu ne vois que le contenu de ta propre corbeille, ce qui me semble assez logique.

    Bref, je vois pas de quel droit tu voudrais vider la corbeille des autres utilisateurs, seule la tienne suffit, puisque de toute facon tu ne peux rien ajout� ou retir� � la corbeille des autres, tu peux meme pas la consulter.

    Quand tu regarde le contenu du r�pertoire Recycled, oublie pas que l'explorer utilise le shell pour ca.. et comme par hasard, le shell ne lui retourne que les entit�s de la corbeille de la session en cours, pas celle des autres... voila pourquoi tu ne vois pas qu'il y a plusieurs corbeilles.

  3. #3
    Futur Membre du Club
    Inscrit en
    Ao�t 2006
    Messages
    4
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 4
    Par d�faut
    Je dois vider la corbeille des autres utilisateurs pour une raison tr�s simple: Ils ne le font pas...et il s'agit d'une station de travail avec beaucoup d'utilisateurs et un espace disque limit�.
    Le thread a les droits d'administrateurs bien entendu.
    Et si un administrateur a le droit de visionner les documents des autres profils (ou m�me de changer le mot de passe des autres sessions [Raison �vidente de s�curit�...], pourquoi ne pourrait-il pas modifier le contenu de la corbeille?
    Si un utilisateur supprimer un fichier sur une partition commune aux sessions, les autres utilisateurs ne peuvent pas le voir? Ca ne me semble pas tr�s logique non plus.
    Le shell renvoie bien un r�pertoire virtuel pour RECYCLER (r�pertoire qui ne contient pas les fichiers supprim�s mais un fichier INFO contenant des m�tadonn�es sur les fichier supprim�s).
    Personnellement j'ai du mal � croire que crosoft n'ai pas pr�vu quelque chose pour pallier aux utilisateurs ne vidant jamais leur corbeille.

  4. #4
    Membre exp�riment� Avatar de toniolol
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2005
    Messages
    281
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Chef de projet en SSII
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 281
    Par d�faut
    Citation Envoy� par hanuman
    j'ai du mal � croire que crosoft n'ai pas pr�vu quelque chose pour pallier aux utilisateurs ne vidant jamais leur corbeille.
    Un truc con mais tu peux r�gler la taille (en %) de la poubelle ou la d�sactiver, ce qui est supprim� est supprim� !

  5. #5
    Futur Membre du Club
    Inscrit en
    Ao�t 2006
    Messages
    4
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 4
    Par d�faut
    Oui, je sais malheureusement (et pour une raison farfelue), je ne peux pas emp�cher l'utilisateur de g�rer sa corbeille mais je peux la lui vider

  6. #6
    R�dacteur
    Avatar de abelman
    Inscrit en
    F�vrier 2003
    Messages
    1 106
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2003
    Messages : 1 106
    Par d�faut
    Salut,

    Tu peux toujours faire en sorte que ton code s'execute sous la session de l'utilisateur en question. Cela suppose que tu as la liste des utilisateurs en questions (login + mdpasse) ....

    - Soit tu le fais directement dans ton code: Ouvrir une session user avant de vider la corbeille. Il faut connaitre les API ou classes pour le faire (je ne maitrise pas).

    - Soit tu ne changes pas ton code mais tu cr�e une ptite appli qui lance ton code via l'utilitaire RunAs

    Bon courage

  7. #7
    Futur Membre du Club
    Inscrit en
    Ao�t 2006
    Messages
    4
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 4
    Par d�faut
    Je ne peux pas utiliser l'impersonalisation, je n'ai pas la liste des mot de passe (autant via Active directory que windows, il n'y a pas moyen de r�cup�rer la liste des mot de passe except� par une saisie au clavier de l'uilisateur. Pour info, la dll c'est shell32.dll et la fonction LogonUser).
    L'utilisateur n'est pas cens� devoir le faire lui-m�me et le programme doit pouvoir le faire m�me pour les sessions qui ne sont pas ouverte (pas de batch en background au d�marrage de session alors).
    (Entre nous, je ne comprend pas non plus trop l'inter�t mais bon....faut suivre les demandes du chef de projet).

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par d�faut
    en r�alit� le fichier de m�tainfo est stoqu� dans les donn�es de chaque session. Si tu connais tous les login et le nom du fichier incrimin�, tu peux lire ce fichier dans chaque session de facon incr�mentale et le "purger" manuellement.

    Seulement ca, c'est de la th�orie. car en pratique, et bien les probl�me s'amonceles. En effet, cela ne peut fonctionner que sur des sessions qui ne sont pas ouvertes, si une session est ouverte, ce fichier etant en cours d'utilisation par le systeme, tu ne peux pas y acc�der, surtout pas en �criture, le systeme se reserve ce droit de facon l�gitime. Ensuite, faut trouver le bon fichier, et l�, perso je sais pas du tout ou ils l'ont planqu�s, peut etre est t'il dans la base de registre, mais ca j'en doute s�rieusement car je ne me souviens pas avoir vu quelque chose de tel lors de mes fouilles. Et il se peut �galement que ces m�tadonn�es soient stoqu�es dans un fichier qui contient d'autres informations, comme un des fichiers dans la racine de chaque session.
    Pour l'instant � part cette solution, visiblement pas gagn�e d'avance je vois mal comment contourner la s�curit�.

    En ce qui concerne le RunAs, si mes souvenirs sont bons, une application/service avec privil�ges administrateurs n'a pas besoin du mot de passe de session pour y acc�der, apr�s tout, c'est totalement inutile. C'est comme un su user sous linux, il est inutile de sp�cifier le password si tu est administrateur, si mes souvenirs sont bons, c'est un peu le meme principe l� toutefois je peux me tromper ca fait tellement longtemps que j'ai pas jou� avec ses fonctionnalit�s

    Il y a d'ailleurs � ce sujet une piste � explorer. Malheureusement je doute que celle-ci soit r�alisable en manag�. L'id�e consiste � cr�er non pas une application mais un service d'arri�re plan, qui est install� et tourne TOUJOURS, hors session, un service non ratach� a une session, ainsi ce service fonctionne avec les privil�ge SYSTEME nettements sup�rieurs aux privil�ges administrateurs et dans ce cas, je pense qu'il est possible toujours par l'api Shell de faire quelque chose, mais l� encore, ce n'est qu'une id�e et une hypoth�se, si quelqu'un a deja essay�... qu'il se fasse connaitre, ca serait sympa.

Discussions similaires

  1. Comment vider la corbeille
    Par DelphiCool dans le forum Codes sources � t�l�charger
    R�ponses: 0
    Dernier message: 23/02/2013, 11h01
  2. R�ponses: 3
    Dernier message: 28/08/2009, 15h11
  3. Comment donner des droits sur tous les objets d'un sch�ma
    Par farenheiit dans le forum Administration
    R�ponses: 2
    Dernier message: 07/06/2007, 16h27
  4. R�ponses: 5
    Dernier message: 25/10/2006, 15h13
  5. comment vider une table de tous ses enregistrements ?
    Par bertrand_declerck dans le forum Bases de donn�es
    R�ponses: 3
    Dernier message: 29/07/2005, 10h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo