Flash info

"Problems cannot be solved by the same level of thinking that created them."

- Albert Einstein
 
Accueil arrow Bibliothèque de scripts arrow MS Office arrow Word : Récupérer les propriétés étendues d'un document
Word : Récupérer les propriétés étendues d'un document
Écrit par Arnaud Petitjean [MVP]   
04-09-2017

Dans le même état d'esprit que le billet nommé "Excel : Récupérer les propriétés étendues d'un document ", voici une petite fonction s'appuyant sur les objets COM de Microsoft Office qui permet de récupérer entre autres les méta données suivantes sur un fichier :

  • Nom de l'auteur,
  • Nom de l'auteur l'ayant enregistré pour la dernière fois,
  • Numéro de révision,
  • Date de création,
  • Date de dernier enregistrement,
  • Date de la dernière impression,
  • Temps total d'édition,
  • Etc.

Pour que la fonction puisse s'exécuter correctement, vous devez disposer du pack Office sur votre machine.

Voici le code : 

#Requires -Version 2
# Get-WordDocumentMetadata.ps1
# Arnaud PETITJEAN - 
 Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir
 
[CmdletBinding()]
Param (
[Parameter(Mandatory=$true)]
[String] $FilePath
)
$application = New-Object -ComObject word.application
$application.Visible = $false
$document = $application.documents.open($FilePath)
$binding = "System.Reflection.BindingFlags" -as [type]
$properties = $document.BuiltInDocumentProperties
$hash = @{}
foreach($property in $properties) {
$hash += @{
[System.__ComObject].invokemember("name",$binding::GetProperty,$null,$property,$null) = & { 
try {
[System.__ComObject].invokemember("value",$binding::GetProperty,$null,$property,$null)
}
catch { 'N/A'}
}    
}
}
$application.quit([Ref]([Microsoft.Office.Interop.Word.WdSaveOptions]::wdDoNotSaveChanges))
New-Object -TypeName PSObject -Property $hash 
Dernière mise à jour : ( 04-09-2017 )
 
© 2017 PowerShell-Scripting.com