powershell 如何添加信息到(gci -filter *.* -recurse).FullName(即:LastWrite、Modified By等)

ulydmbyx  于 2023-02-08  发布在  Shell
关注(0)|答案(1)|浏览(95)

我是一个绝对的noob当谈到Powershell。
目前,我运行一个简单的脚本来获取服务器上的文件列表。

(gci -filter *.xl* -recurse).FullName > AllExcel.txt

它给我的正是我要寻找的,一个目录路径和文件名都在一行中的所有子目录。
X:\00\此文件为1.xls
X:\00\此文件为2.xls
X:\aaa\此文件太大. xls
X:\aaa\此文件太2.xls
是否可以为每个项目添加上次修改文件的日期/时间?{$_.LastWriteTime}?
如果是,输出是否可以按此日期/时间排序?如果可能,最新的放在顶部。
是否也有选项来获得谁最后修改了一个文件?

dsekswqp

dsekswqp1#

我将结果存储在结构化的CSV文件中,而不是简单的文本文件。

Get-ChildItem -Path 'X:\' -Filter '*.xls*' -File -Recurse | 
Select-Object FullName, LastWriteTime |
Sort-Object LastWriteTime -Descending |
Export-Csv -Path 'X:\Somewhere\AllExcel.csv' -NoTypeInformation -UseCulture

这将生成一个结构化CSV文件,您可以在区域设置与您的计算机相同的计算机上打开该文件,以便在Excel中打开
至于最后修改文件的人:
您 * 可以 * 在每个文件上使用Get-Acl并获得所有者,但拥有该文件的人不一定是创建/修改该文件的人。除非事先启用file and folder auditing,否则您无法确定在Windows中进行最后更改的创建者或用户,因此您可以从审计日志中提取信息。

相关问题