如何通过 PowerShell 查找文件/目录的“用户/所有者”和“修改日期”?

问题描述 投票:0回答:1

尝试创建一个列出模式、文件(路径 ame)、CreationTime、LastWriteTime、LastAccessTime、长度以及列出的文件/目录的用户/所有者。我需要对主目录执行此操作,如果有子文件夹,也需要递归执行此操作(我知道“-recurse”,但由于 190 个字符的显示限制,路径通常会超出范围。

然后,我将所述结果复制/粘贴到 Excel 中,其中我有一些公式进行一些文本提取,最终产品是一个 Excel 工作表,其中所有字符串都在各自的小单元格中,日期在各自的小单元格中正确格式化(并作为日期)细胞。

由于每行 190 个字符的长度限制,我发现我必须运行两个命令而不是一个,然后将这两个命令组合在一起以获得我需要的所有信息。

到目前为止我已经做到了:

获取子项 |选择对象模式、PSPath、CreationTime、LastWriteTime、LastAccessTime |格式化表格-AutoSize

我正在尝试查找与 Windows 所谓的“所有者”相关的文件属性,以便我可以要求 PowerShell 在目录中创建一个漂亮的文件清单。我尝试过“所有者”和“用户”作为属性,但没有运气。 Windows 有修改日期和上次保存日期;在很大程度上,它们似乎是相同的,但我遇到过它们不是相同的情况,因此也分别寻找这两个属性。

此外,如果有人知道如何更改 PowerShell 的屏幕显示限制以便每行显示超过 190 个字符,我们也将不胜感激。

powershell parsing directory command-line-arguments file-properties
1个回答
0
投票

如评论所述,如果您想进一步使用检索到的数据,则不需要使用任何

Format-*
cmdlet。
由于您想在 Excel 中打开它,最好的方法是使用 Export-Csv 并附加
-UseCulture
开关,这样您只需双击该文件即可在 Excel 中打开它。

要获取文件或目录的所有者,您需要一个名为“Owner”的额外计算属性以及使用

Get-Acl
获得的值。

$sourcePath = 'D:\Test'              # enter your path here
$outputPath = 'D:\Test\output.csv'   # and the path for the output file here

Get-ChildItem -Path $sourcePath -Recurse | 
Select-Object Mode, FullName, CreationTime, LastWriteTime, LastAccessTime,
              @{Name = 'Owner'; Expression = {(Get-Acl -Path $_.FullName).Owner}} |
Export-Csv -Path $outputPath -UseCulture -NoTypeInformation

附注

LastWriteTime
就是
Date Modified

© www.soinside.com 2019 - 2024. All rights reserved.