我在调试此脚本时遇到问题。它是基于早期关于SO的问题而且它几乎正在发挥作用。
要求: 该脚本循环遍历Web应用程序上的每个文档库,创建一个名为“Detailed”的视图并将其设置为默认视图。
问题: 它似乎无法遍历网站集。它将在第一个网站集及其库上成功创建视图,但在后续网站集上失败。
希望这只是一件简单的事情。任何帮助深表感谢。
谢谢,
阿什利
Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
$siteURL = "http://dev1share"
$site = Get-SPSite($siteURL)
foreach($web in $site.AllWebs) {
$listCounter = $web.Lists.Count
for($i=0;$i -le $listCounter;$i++) {
$list = $web.Lists[$i]
if($list.BaseType -eq "DocumentLibrary") {
$newList = $web.Lists.item($list.ID);
$viewfields = New-Object System.Collections.Specialized.StringCollection
$viewfields.Add("DocIcon")
$viewfields.Add("LinkFilename")
$viewfields.Add("_UIVersionString")
$viewfields.Add("Modified")
$viewfields.Add("Created")
$viewfields.Add("Editor")
$viewfields.Add("FileSizeDisplay")
[void]$newList.Views.Add("Detailed", $viewfields, "", 100, $true, $true)
$newList.Update();
$view=$newList.Views["Detailed"]
$view.DefaultView = $true
$view.Update()
}
}
$web.Dispose();
}
$site.Dispose();
答案 0 :(得分:2)
您的脚本仅在名为[http://dev1share][1]
如果要循环所有网站集,则必须获取Web应用程序对象,而不是Sharepoint层次结构模型中较低的SP-Site。
获取webapplication对象并进行迭代 - 使用如下代码:
$webapplication = Get-SPWebApplication "Webapplication Name"
foreach($site in $webapp.Sites){
foreach($web in $site.AllWebs){
// Your script with creating views
}
}