2009-06-26 6 views
2

Puis-je rechercher un lecteur pour afficher tous les documents créés par un utilisateur particulier? Je pensais que Powershell est la voie à suivre ... mais peut-être une autre approche est-elle possible?powershell recherche de documents créés par l'utilisateur?

Fondamentalement, je veux rechercher un lecteur et trouver tous les fichiers * .doc ou * .docx et accéder aux propriétés de mot pour voir qui a créé le fichier (auteur).

Répondre

2

Dans ce cas, vous devez ouvrir tous les documents Word avec Word lui-même, en utilisant l'objet COM Word.Application. Ensuite, vous pouvez regarder les métadonnées du document en utilisant la collection ContentTypeProperties sur l'objet Document. Le nom de l'auteur, s'il est présent, figurerait dans cette collection.

Cela prendra un certain temps, cependant, peut-être pourriez-vous jeter un oeil aux ACL du système de fichiers pour déterminer qui a créé le fichier? Mais cela ne vous indique que l'utilisateur qui a créé le fichier, pas la personne qui a créé le document.

Une autre option serait probablement d'utiliser Windows Search à partir de Powershell. Apparemment, vous pouvez l'utiliser avec un fournisseur OLE DB. Et je pense que Windows Search est capable de rechercher des informations sur les auteurs à partir de documents Word.

+0

Impossible d'utiliser System.IO.FileInfo à partir de powershell (ou juste C# droit) pour examiner les propriétés de fichier dans un dossier? –

+1

Et que liras-tu de cela? Allez-y, mais l'auteur, etc. sont des métadonnées spécifiées différemment pour chaque format de fichier qui les supporte. Ce ne sont pas des métadonnées de système de fichiers. Donc, utiliser un FileInfo (ce que Powershell vous donne de toute façon avec Get-ChildItem) ne vous aidera pas ici. _À moins que vous ne souhaitiez réellement utiliser le nom d'utilisateur du créateur, pas le nom d'auteur spécifié dans le document lui-même. – Joey

+0

Bon point. http://www.microsoft.com/technet/scriptcenter/resources/qanda/aug08/hey0813.mspx semble être la solution, mais je ne peux pas le faire fonctionner –

2

Jetez un oeil à ce blog post. Il a un peu plus de moyens PowerShelly de le faire. :-)

Questions connexes