Это не так просто, как можно было бы надеяться. Вы можете легко открыть документ Word из Powershell с помощью
$word = New-Object -COM Word.Application
$word.Visible = $false #to prevent the document you open to show
$doc = $word.Document.Open("path-to-document")
Но свойства Document хранятся в свойстве BuiltInDocumentProperties, которые сами по себе являются динамическими COM-объектами (и, следовательно, не доступны напрямую)
Метод, который я использовал, состоит в том, чтобы обойти каждое из этих свойств и затем получить значение:
$binding = "System.Reflection.BindingFlags" -as [type]
Foreach($property in $doc.BuiltInDocumentProperties) {
try {
$pn = [System.__ComObject].invokemember("name",$binding::GetProperty,$null,$property,$null)
if ($pn -eq "Last save time") {
$lastSaved = [System.__ComObject].invokemember("value",$binding::GetProperty,$null,$property,$null)
}
}
catch { }
}
Вы можете получить имена всех доступных свойств, просто напечатав переменную $ pn.