Question qui veux mettre la main dans la corbeille

Plus d'informations
il y a 15 ans 4 mois #8107 par jojo
bonjour les PowerShelleurs,

j'ai une question pour les gurus...

comment savoir l'emplacement initiales des fichiers se trouvant dans la corbeille ?

donc supposant que j'ai des fichiers dans la corbeille, y'a t'il une classe .NET ou bien un objet WMI qui me permet de trouver leurs emplacement initial

la seule chose que j'ai trouvé c'est comment explorer visuellement le dossier corbeille mais avec une manière VBS-Like en utilisant le composant \"Shell.Application\"

[code:1]$comobj = new-object -com \"Shell.Application\"
$nms=$comobj.Namespace(0xA)
$expo=$nms.Self
$expo.InvokeVerbEx(\"Explore\"«»)
[/code:1]

y'a t'il une solution à mon problème ou c'est impossible :dry:

merci

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #8112 par Laurent Dardenne
Salut,
recherche sur le forum, il me semble qu'il y ait déjà eu cette demande.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #8116 par jojo
Laurent Dardenne écrit:

Salut,
recherche sur le forum, il me semble qu'il y ait déjà eu cette demande.


merci Laurent, voici les liens:
powershell-scripting.com/index.php?optio...d=76&func=search


mais j'ai pas encore trouvé la solution..:huh:

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #8122 par Laurent Dardenne
Le lien cité est erroné.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 mois #8147 par Jacques Barathon
Jojo, tu y étais presque avec ta recherche dans l'objet Shell.Application. Tout est là :

[code:1]
$nms.Items()|ft @{n=\"Name\";e={$nms.GetDetailsOf($_,0)}}, @{n=\"Path\";e={$nms.GetDetailsOf($_,1)}}
[/code:1]

En clair :

1. Le contenu du dossier Recycle Bin peut être énuméré via la méthode Items().
2. Les détails sur chaque élément peuvent être obtenus via la méthode GetDetailsOf() de l'objet $nms.

Arguments de la méthode GetDetailsOf() :

1. L'élément sur lequel on veut obtenir des détails.
2. Le numéro du détail qui nous intéresse.

Le 2e argument est le plus tordu. En effet, la méthode ne retourne qu'une info à la fois, et encore faut-il connaître le numéro de chaque info.

Après une rapide exploration sur mon poste, j'ai constaté que les numéros 0 à 13 sont utiles, et particulièrement les 2 premiers, 0 et 1, qui désignent respectivement le nom et le chemin original de l'élément.

Les numéros suivants permettent de retrouver notamment (et en vrac) les dates de création, de modif, etc, la taille du fichier, son type, et son propriétaire.

Avec un tout petit peu d'huile de coude on doit donc pouvoir se mettre tout ça en forme dans quelques fonctions plus pratiques à manipuler que les lignes ci-dessus.

Travail pratique idéal pour un dimanche après-midi maussade. :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 mois #8161 par Jacques Barathon
Pour info, voici un script Get-RecycleBinItem.ps1 qui permet de récupérer les détails du contenu de la Corbeille :

[code:1]
# Get-RecycleBinItem

$shell = new-object -com Shell.Application
$recycler = $shell.Namespace(0xA)
$recycler.Items() | foreach {
$item = $_
1,2,4,6,7,8,9,10,11,12,13 | foreach {
$PropertyName = $recycler.GetDetailsOf($recycler, $_)
$PropertyValue = $recycler.GetDetailsOf($item, $_)
if ($PropertyName -match \"Date\"«»)
{
$PropertyValue = ($PropertyValue -replace \"\u200f|\u200e\",\"\"«») -as [DateTime]
}
$item = add-member -in $item NoteProperty $PropertyName $PropertyValue -passthru
}
$item
}
[/code:1]

Exemple d'usage :

[code:1]
PS> Get-RecycleBinItem | where {$_.\"Date deleted\" -lt [DateTime]::Now.AddDays(-7)} | ft name, \"Date deleted\", \"Original location\" -a
[/code:1]

Cet exemple affiche au format table tous les éléments qui ont été supprimés il y a plus de 7 jours.

Enjoy ! :)

PS. J'ai essayé de publier ce script dans la Bibliothèque de scripts du site, mais j'ai lamentablement échoué. Avec l'aide d'Arnaud, ça devrait être en ligne dans les prochains jours...

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.042 secondes
Propulsé par Kunena