尝试创建一个列出模式、文件(路径 ame)、CreationTime、LastWriteTime、LastAccessTime、长度以及列出的文件/目录的用户/所有者。我需要对主目录执行此操作,如果有子文件夹,也需要递归执行此操作(我知道“-recurse”,但由于 190 个字符的显示限制,路径通常会超出范围。
然后,我将所述结果复制/粘贴到 Excel 中,其中我有一些公式进行一些文本提取,最终产品是一个 Excel 工作表,其中所有字符串都在各自的小单元格中,日期在各自的小单元格中正确格式化(并作为日期)细胞。
由于每行 190 个字符的长度限制,我发现我必须运行两个命令而不是一个,然后将这两个命令组合在一起以获得我需要的所有信息。
到目前为止我已经做到了:
获取子项 |选择对象模式、PSPath、CreationTime、LastWriteTime、LastAccessTime |格式化表格-AutoSize
我正在尝试查找与 Windows 所谓的“所有者”相关的文件属性,以便我可以要求 PowerShell 在目录中创建一个漂亮的文件清单。我尝试过“所有者”和“用户”作为属性,但没有运气。 Windows 有修改日期和上次保存日期;在很大程度上,它们似乎是相同的,但我遇到过它们不是相同的情况,因此也分别寻找这两个属性。
此外,如果有人知道如何更改 PowerShell 的屏幕显示限制以便每行显示超过 190 个字符,我们也将不胜感激。
如评论所述,如果您想进一步使用检索到的数据,则不需要使用任何
Format-*
cmdlet。-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