如何用PowerShell获取文件/目录所有者及修改时间等属性
解决Get-ChildItem的需求方案
1. 完整命令(含所有者、递归、指定属性)
要获取文件/目录的所有者,需通过Get-Acl读取权限信息;添加-Recurse参数实现递归遍历。针对Date Modified和Date Last Saved的区分:前者对应系统层面的LastWriteTime(所有文件/目录都有),后者是仅Office文档等特定文件具备的扩展元数据,需通过Shell对象读取。
基础版(含所有者、递归)
Get-ChildItem -Recurse | Select-Object Mode, @{Name='FullPath'; Expression={$_.FullName}}, CreationTime, @{Name='DateModified'; Expression={$_.LastWriteTime}}, LastAccessTime, Length, @{Name='Owner'; Expression={(Get-Acl $_.FullName).Owner}} | Format-Table -AutoSize
进阶版(添加Date Last Saved)
注意:Date Last Saved仅对支持元数据的文件有效,普通文件会返回空值:
Get-ChildItem -Recurse | Select-Object Mode, @{Name='FullPath'; Expression={$_.FullName}}, CreationTime, @{Name='DateModified'; Expression={$_.LastWriteTime}}, LastAccessTime, Length, @{Name='Owner'; Expression={(Get-Acl $_.FullName).Owner}}, @{Name='DateLastSaved'; Expression={ $shell = New-Object -ComObject Shell.Application $folder = $shell.Namespace($_.DirectoryName) $item = $folder.ParseName($_.Name) # 155为英文系统下Date Last Saved的索引,中文系统可自行验证替换 $folder.GetDetailsOf($item, 155) }} | Format-Table -AutoSize -Wrap
2. 修改PowerShell行显示字符上限
临时生效(当前会话)
执行命令调整缓冲区宽度为所需数值(例:800):
$Host.UI.RawUI.BufferSize = New-Object Management.Automation.Host.Size(800, $Host.UI.RawUI.BufferSize.Height)
永久生效(所有会话)
- 打开PowerShell配置文件:
notepad $PROFILE - 将上述临时修改命令添加到文件中,保存退出
- 重启PowerShell后生效
3. 更适配Excel的处理方式
无需复制粘贴,直接导出为CSV文件,Excel可直接打开并自动分栏:
Get-ChildItem -Recurse | Select-Object Mode, @{Name='FullPath'; Expression={$_.FullName}}, CreationTime, @{Name='DateModified'; Expression={$_.LastWriteTime}}, LastAccessTime, Length, @{Name='Owner'; Expression={(Get-Acl $_.FullName).Owner}} | Export-Csv -Path "文件列表.csv" -Encoding UTF8 -NoTypeInformation
Date Last Saved索引验证方法
若155索引无效,可通过以下命令查找对应系统的属性索引:
$shell = New-Object -ComObject Shell.Application $folder = $shell.Namespace("C:\你的测试目录路径") for ($i=0; $i -le 300; $i++) { $propName = $folder.GetDetailsOf($folder.Items, $i) if ($propName -match "Date Last Saved|上次保存时间") { Write-Host "索引 $i : $propName" } }
内容的提问来源于stack exchange,提问作者deep_submerge42
相关产品推荐
相关产品推荐

