从一个站点- Powershell的所有列表中检索所有项目



我有一个PowerShell脚本,从一个站点(web)范围内的所有库中输出所有文档到下面列出的CSV文件:

 function Get-DocInventory([string]$siteUrl) {
$site = New-Object Microsoft.SharePoint.SPSite $siteUrl
$web = Get-SPWeb "http://contoso.com/sites/Depts/HTG"
foreach ($list in $web.Lists) {
if ($list.BaseType -eq “DocumentLibrary”) {
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();
}
$site.Dispose()
}
}

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

我还有最后一件事需要做,那就是,除了从所有库输出所有文档之外,我还需要添加脚本,以便从上述脚本中列出的同一站点http://contoso.com/sites/Deptss/HTG的所有列表中提取所有项目。有人能告诉我怎么做吗?这件事我真的需要别人的帮助。

注意:我知道要遍历所有列表,我可以更改下面的行,它最初遍历文档库:

if ($list.BaseType -eq “DocumentLibrary”)

到下面这个来遍历list:

if ($list.BaseType -eq “GenericList”)

我想循环遍历文档库和列表。我该怎么做呢?

正如您正确识别的那样,这行代码中的条件导致脚本只循环遍历文档库:

if ($list.BaseType -eq “DocumentLibrary”)

要遍历所有列表,无论其类型如何,只需完全删除if子句(及其相应的开/闭大括号)。

相关内容

  • 没有找到相关文章

最新更新