Powershell函数以递归方式获取元数据

时间:2012-10-22 18:21:30

标签: powershell

我正在修改一些PowerShell代码,我发现这些代码可以递归地从文件中获取元数据,但是我无法访问文件夹中的文件夹。我从直接列在\ share下的文件夹中获取元数据,而不是那里的文件夹和文件。如何将此代码修改为文件夹中文件的元数据?

另外,我正在尝试将元数据导出为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 

1 个答案:

答案 0 :(得分: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"