Доступ к дате последнего сохранения с помощью PowerShell

Я пытаюсь получить доступ к дате последнего сохранения файла xls с помощью PowerShell. Он находится на странице сведений и является скорее скрытым атрибутом файла. Фото прилагается для справки.

Дата последнего сохранения

РЕДАКТИРОВАТЬ: Спасибо за помощь. Оба решения работают, но я нахожусь в ограниченном языковом режиме, поэтому не могу их использовать :(


person Charles Davis    schedule 21.07.2021    source источник


Ответы (2)


Спустился немного в кроличью нору для этого, но я нашел ниже.

Атрибут не является частью свойств файла. Это часть свойств рабочих листов (как и многие атрибуты).

Полная заслуга принадлежит Эду Уилсону и Крейгу Либендорферу, сценаристам — https://devblogs.microsoft.com/scripting/hey-scripting-guy-how-can-i-read-microsoft-excel-metadata/

$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$workbook = $excel.Workbooks.Open("C:\temp\Test.xlsx")
$binding = "System.Reflection.BindingFlags" -as [type]

Foreach($property in $workbook.BuiltInDocumentProperties){
    if ([System.__ComObject].invokemember("name",$binding::GetProperty,$null,$property,$null) -eq "Last save time"){
        [System.__ComObject].invokemember("value",$binding::GetProperty,$null,$property,$null)
    }
}
$excel.quit()
person Otter    schedule 21.07.2021

Ранее у меня был ответ, в котором обсуждалось, как получить основную информацию о файле, но для доступа к информации о файле Office вам нужно проделать немного больше работы...

Используя этот ответ из предыдущего вопроса, я сделал функцию PowerShell, чтобы упростить вам задачу.

Источник Здесь, на github

Usage

Get-OfficeFileInfo  C:\temp\UsersOfabc.comDomain.xlsx 

Name             Exp                  
----             ---                  
Title                                 
Subject                               
Author                                
Keywords                              
Comments                              
Template                              
Last author      Stephen Owen         
Revision number                       
Application name Microsoft Excel      
Creation date    7/21/2021 11:30:51 AM
Last save time   7/21/2021 11:30:51 AM
Security         0                    
Category                              
Format                                
Manager                               
Company                               
Hyperlink base                        
Content type                          
Content status                        
Language                              
Document version 

Получение конкретного свойства, которое вы хотите

$fileInfo = Get-OfficeFileInfo  C:\temp\UsersOfabc.comDomain.xlsx 
$dateSaved = $fileInfo | ? Name -eq "Last save time"

C:\temp\> $dateSaved.Exp

Wednesday, July 21, 2021 11:30:51 AM

person FoxDeploy    schedule 21.07.2021
comment
.DateModified это не то, что я ищу. Я загружаю файл .xls, и когда я загружаю его, .DateModified — это время загрузки. Я ищу дату последнего сохранения файла. Я вижу это свойство в свойствах файла, но не могу получить к нему доступ через PowerShell. - person Charles Davis; 21.07.2021
comment
Я переделал свой ответ, я неправильно истолковал вопрос раньше. - person FoxDeploy; 21.07.2021