2012-10-22 91 views
2

我正在修改一些PowerShell代碼,我發現它從文件中遞歸獲取元數據,但我無法訪問文件夾中的文件夾。我從\ share下直接列出的文件夾中獲取元數據,而不是那裏的文件夾和文件。我怎樣才能將這段代碼修改成文件夾內文件的元數據?PowerShell函數遞歸獲取元數據

此外,我試圖讓元數據導出到CSV,但我只是得到一個空文件。

編輯:我試圖從.pst文件中獲取數據。我還發現以下行,並想知道我是否可以在某種程度上添加它:

dir \ myserver \ share -Recurse -Include * .pst |選擇FullName

($folder = "\\myserver\share") #end param 
function funLine($strIN) 
{ 
$strLine = "=" * $strIn.length 
$hash | Export-Csv c:\pstdetails.csv -NoClobber -NoTypeInformation 
# Write-Host -ForegroundColor Yellow "`n$strIN" 
# Write-Host -ForegroundColor Cyan $strLine 
} #end funline 
function funMetaData() 
{ 
foreach($sFolder in $folder) 
{ 
    $a = 0 
    $objShell = New-Object -ComObject Shell.Application 
    $objFolder = $objShell.namespace($sFolder) 
    foreach ($strFileName in $objFolder.items()) 
    { FunLine("$($strFileName.name)") 
    for ($a ; $a -le 266; $a++) 
     { 
     if($objFolder.getDetailsOf($strFileName, $a)) 
     { 
     $hash += @{ ` 
       $($objFolder.getDetailsOf($objFolder.items, $a)) =` 
       $($objFolder.getDetailsOf($strFileName, $a)) 
     } #end hash 
     $hash 
     $hash.clear() 
      } #end if 
     } #end for 
    $a=0 
    } #end foreach 
} #end foreach 
} #end funMetadata 

回答

0

經過高低搜索,答案一直在我的面前。 (我以前搜索在這裏!)在這裏找到了答案:Recursive file search using PowerShell

我修改了它,我需要哪些列,所以這裏是我使用的代碼:

Get-ChildItem -Path \\Server\Folder -Filter *.pst -Recurse | Select-Object Directory, Name, Length, CreationTime, LastAccessTime, LastWriteTime | Export-Csv "c:\emails1.csv"