2012-10-22 60 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"