1

我有一个 PowerShell 脚本,它将所有列表中的所有项目和站点中所有文档库中的所有文件输出到 CSV 文件,如下所示:

function Get-DocInventory([string]$siteUrl) {
$web = Get-SPWeb "http://contoso.com/sites/Depts/HTG"
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"]
                        "Modified By" = $item["Editor"]
                        "Modified Date" = $item["Modified"]
                        "Item Name" = $item.File.Name
                        "URL"=$web.Site.MakeFullUrl("$($web.ServerRelativeUrl.TrimEnd('/'))/$($item.Url)");
}
New-Object PSObject -Property $data | Select "List Name", "Item Name", "Version", "Created By", "Created Date", "Modified By", "Modified Date", "URL"
}
}
$web.Dispose();
}
}


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

以下是此脚本输出的示例:

脚本的示例输出

在“脚本输出示例”中显示的输出中,Arc Items、Archived Stuff 和 Boats 是列表的名称。另一方面,Content Affiliate 和 Cross References 是文档库的名称。我的问题是脚本只输出文档库中的项目名称而不是列表。为了从列表中输出项目名称,我应该添加哪一行?换句话说,如何显示列表中包含的项目的名称?有人可以帮忙吗?

4

1 回答 1

1

我已经想通了。修改这一行:

"Item Name" = $item.File.Name

至:

"Item Name" = $item.Name

行得通。

于 2015-10-20T17:30:30.103 回答