将get ChildItem与ACL powershell组合

将get ChildItem与ACL powershell组合,powershell,get-childitem,Powershell,Get Childitem,我正在寻找一些关于使用Power shell的文件信息的帮助,除了所有者信息之外,我们还获得了大部分需要的信息 下面的代码返回一个目录列表,这些目录的历史超过1年,但问题是我们似乎无法在其中显示所有者信息: gci -r "D:\Network Shares\ICT\ICT\Network Shares\ICT\Innovations\Robert Pitt" | ? { $_.LastWriteTime -lt (Get-Date).AddYears(-1)} >> D

我正在寻找一些关于使用Power shell的文件信息的帮助,除了所有者信息之外,我们还获得了大部分需要的信息

下面的代码返回一个目录列表,这些目录的历史超过1年,但问题是我们似乎无法在其中显示所有者信息:

gci -r 
"D:\Network Shares\ICT\ICT\Network Shares\ICT\Innovations\Robert Pitt" | ? 
{
    $_.LastWriteTime -lt (Get-Date).AddYears(-1)} >> D:\temp\ICTFileAge.txt
}
我们知道名为
getacl
的命令,但不确定如何将其绑定起来

有人有什么想法吗,谢谢诸如此类的东西

gci -r "D:\Network Shares\ICT\ICT\Network Shares\ICT\Innovations\Robert Pitt" |
? {$_.LastWriteTime -lt (Get-Date).AddYears(-1)} |
 % {$_ | add-member -name "Owner" -membertype noteproperty -value (get-acl $_.fullname).owner -passthru} |
  Select fullname,lastwritetime,owner

可以通过使用计算属性拉入ACL所有者字段来简化代码:

$Path = 'c:\'

Get-ChildItem $Path |
Select-Object *,@{name='owner';expression={
(get-acl $_.FullName).owner}}

非常感谢,虽然
-passthu
抛出了错误,但我们还是成功了,这是为什么,再次感谢:)对不起,那应该是“-passthru”。否则,在添加新成员后,它不会将对象沿管道传递。我更正了帖子中的代码。我们已将结果集导出到CSV电子表格中,该电子表格外观正常,看不到任何错误等,但是否有可能因此而缺少行?我不这么认为。它是否需要-passthru将取决于您的脚本是如何编写的,但它将是一个全有或全无的协议。你要么全部得到,要么什么都得不到。