2014-07-08 85 views
0

本質上,我試圖使用PowerShell在今年6月1日或之後創建的網絡驅動器上查找具有某些文件擴展名的文件。我想我可以做到這一點與以下聲明:Powershell網絡驅動器Get-ChildItem問題

Get-ChildItem NETWORKPATH *。 -recurse -include .xlsx |位置對象{$ _ CREATIONTIME -GE「2014年6月1日」}

我遇到兩個問題:

  1. 該命令只返回在從根文件,一個文件夾網絡驅動器,此網絡驅動器上有超過100個文件夾
  2. 該命令在6/1/14之後創建的5個文件中返回3,並且在創建時間日期之前創建了一個。

我有權訪問網絡驅動器上的所有文件夾。當我運行Windows 7搜索時,它會查找所有文件。如果我以管理員身份運行Powershell並不重要。無論我從我的機器(Windows 7)還是從我們的2008服務器之一運行它都沒關係。我試圖搜索的網絡驅動器位於2003文件服務器上。我究竟做錯了什麼?

+0

@StephenP感謝您的及時響應,它看起來像問題2)是一個非問題,因爲該文件的創建日期比修改日期更新(這顯然可以發生在複製文件而不移動文件時) 。 –

+0

這仍然留下問題1.它看起來像權限問題,但在以下所有情況下我都得到相同的結果:1)以我自己的用戶身份登錄(有權訪問至少查看此驅動器上的所有文件)並運行PowerShell作爲管理員2)相同1但運行程序不是管理員3)登錄在我的網絡管理員帳戶運行PowerShell作爲管理員4)相同3但運行不是管理 –

+0

嘗試了更多的東西,沒有一個幫助包括: 1)添加-force。 2)刪除-include * .xlsx並將路徑末尾的通配符更改爲* .xlsx 3)包含-path,然後將我的網絡路徑放入 4)在網絡中使用映射的驅動器或UNC路徑路徑部分 –

回答

1

確保向通配符添加通配符。你也不應該使用字符串進行日期比較。請參閱here的示例。請嘗試以下操作:

$testDate = new-object DateTime (2014,06,01) 
Get-ChildItem NETWORKPATH*. -recurse -include *.xlsx | Where-Object { $_.CreationTime -ge $testDate } 

另請注意,標記爲隱藏的文件和文件夾不會顯示出來,除非您將-force添加到get-childitem。不知道這是否是問題的一部分。

0

gci -path PATH -tracurse |其中{$ _。extension -match「xlsx」}是所有這一切的銀彈。