Question
qui veux mettre la main dans la corbeille
- jojo
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 187
- Remerciements reçus 0
il y a 15 ans 4 mois #8107
par jojo
qui veux mettre la main dans la corbeille a été créé 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
merci
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
merci
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 15 ans 4 mois #8112
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:qui veux mettre la main dans la corbeille
Salut,
recherche sur le forum, il me semble qu'il y ait déjà eu cette demande.
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.
- jojo
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 187
- Remerciements reçus 0
il y a 15 ans 4 mois #8116
par jojo
Réponse de jojo sur le sujet Re:qui veux mettre la main dans la corbeille
Laurent Dardenne écrit:
merci Laurent, voici les liens:
powershell-scripting.com/index.php?optio...d=76&func=search
mais j'ai pas encore trouvé la solution..
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..
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 15 ans 4 mois #8122
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:qui veux mettre la main dans la corbeille
Le lien cité est erroné.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 3 mois #8147
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:qui veux mettre la main dans la corbeille
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.
[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.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 3 mois #8161
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:qui veux mettre la main dans la corbeille
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...
[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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- qui veux mettre la main dans la corbeille