如何使用PowerShell访问xls文件的Date Last Saved隐藏属性
提问内容
我尝试使用PowerShell访问xls文件的Date Last Saved属性,该属性属于文件的隐藏属性,可在文件详情页中查看,参考截图如下:
补充说明:感谢大家提供的帮助,两种解决方案均有效,但我当前环境处于受限语言模式,无法使用这些方案。
解决方案
针对PowerShell受限语言模式的权限限制,可使用以下兼容方案读取对应属性:
该方案仅调用PowerShell原生允许的cmdlet和核心.NET类,无需调用受限COM对象,可直接在受限语言模式下运行:
# 替换为你的xls文件实际路径 $xlsFilePath = "替换为目标xls文件路径" # 读取文件前100字节,足以覆盖存储Date Last Saved的头部区域 $fileHeader = Get-Content -Path $xlsFilePath -Encoding Byte -TotalCount 100 # 读取BIFF8格式xls固定偏移位置0x1E的4字节日期数据,存储格式为OLE自动化日期 $dateRawData = $fileHeader[0x1E..0x21] $oleDateValue = [System.BitConverter]::ToUInt32($dateRawData, 0) # 转换为标准可读日期格式 $dateLastSaved = [DateTime]::FromOADate($oleDateValue) # 输出结果 Write-Host "Date Last Saved:$dateLastSaved"
补充说明
- 上述代码默认适配绝大多数使用BIFF8格式的xls文件,若遇到更早版本的BIFF5/BIFF7格式文件,仅需将读取偏移量调整为
0x1C即可。 - 无需额外安装任何模块或工具,完全适配受限语言模式的权限要求。
内容的提问来源于stack exchange,提问作者Charles Davis
相关产品推荐
相关产品推荐

