2011-06-02 103 views
1

我正在尋找一些關於使用Power shell的文件信息的幫助,當我們需要除了所有者信息之外,我們獲得了大部分信息。將get-ChildItem與ACL powershell結合使用

下面的代碼返回年紀大了再1年目錄的列表,但問題是,我們似乎無法獲得業主信息在那裏顯示:

gci -r 
"D:\Network Shares\ICT\ICT\Network Shares\ICT\Innovations\Robert Pitt" | ? 
{ 
    $_.LastWriteTime -lt (Get-Date).AddYears(-1)} >> D:\temp\ICTFileAge.txt 
} 

我們知道命令叫Get-ACL ,但不確定如何配合。

任何人有任何想法,謝謝

回答

5

這樣的事情?

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 
+0

三江源非常多,我們得到了它的工作雖然'-passthu'被扔錯誤的,什麼這是爲了,再次感謝:) – RobertPitt 2011-06-02 14:48:20

+0

對不起,應該是「-passthru」。沒有這一點,它將不會在添加新成員之後將對象向下傳遞。我糾正了帖子中的代碼。 – mjolinor 2011-06-02 14:54:33

+0

我們已經將結果集導出到CSV擴展表中,看起來沒問題,看不到任何錯誤等,但是有可能是因爲這些而丟失了行嗎? – RobertPitt 2011-06-02 15:01:28

0

的代碼可以通過使用計算特性在ACL所有者場拉來簡化:

$Path = 'c:\' 

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