显示正确的修改者和修改的时间和日期

时间:2015-11-02 20:38:34

标签: date powershell sharepoint-2010

我有一个脚本,可以将所有列表中的所有项目和以下所有库中的所有文件输出到CSV:

function Get-DocInventory([string]$siteUrl) {
  #$site = New-Object Microsoft.SharePoint.SPSite $siteUrl
  $web = Get-SPWeb "http://contoso.com/sites/Depts3/HBG"
  foreach ($list in $web.Lists) {
    foreach ($item in $list.Items) {
      foreach($version in $item.Versions){
        $data = @{
          "Version" = $version.VersionLabel
          "List Name" = $list.Title
          "Created By" = $item["Author"]
          "Created Date" = ($item["Created"] -as [datetime]).DateTime
          "Modified By" = $item["Editor"]
          "Modified Date" = ($item["Modified"] -as [datetime]).DateTime
          "Item Name" = $item.Name
        }
        New-Object PSObject -Property $data | Select "List Name", "Item Name", "Version", "Created By", "Created Date", "Modified By", "Modified Date"
      }
    }
    $web.Dispose();
  }
  #$site.Dispose()
}

Get-DocInventory | Export-Csv -NoTypeInformation -Path C:\GenerateReport.csv

以下是脚本的示例输出: enter image description here

上面显示的是一个共有3个版本的文件(Lions.pdf)。版本3是文件的当前版本,Modified ByModified Date的数据显示为Doe,John。

当我转到版本历史时,我发现了一个问题:

  • 对于文件的第2版,它由Parayno,Frank修改,修改日期为10/25/11 5:15 PM
  • 对于该文件的版本1,它由Doe,John修改,修改日期为6/28/11 11:23 AM。

该脚本似乎使用修改该文件的最新用户填充以前的版本,在本例中为Doe,Jane。此外,对于修改日期列,它显示从版本3到版本2和1的相同日期/时间。我可以对脚本执行哪些操作以显示列Modified By和列{0}}的正确用户和日期/时间Modified Date

以下是脚本所需的输出:

enter image description here

0 个答案:

没有答案