У меня небольшие проблемы со сценарием, над которым я работаю для SharePoint 2010. Я новичок в Powershell, поэтому не смог обнаружить, без сомнения, очевидную и явную проблему.
Желание сценария состоит в том, чтобы циклически проходить по каждому веб-сайту в каждом семействе сайтов, создавать представление только для библиотек документов и устанавливать это представление по умолчанию.
Issue 1) В настоящее время кажется, что он перечисляет библиотеки документов, но затем создает представление несколько раз в первой найденной библиотеке. Что-то не так с циклами foreach, но я не знаю, что.
Выпуск 2) Мне нужно интегрировать этот раздел, чтобы я мог установить представление по умолчанию, но я не очень уверен, куда его вставить, чтобы он просматривался с изменениями в каждой библиотеке.
$site= New-Object Microsoft.SharePoint.SPSite $siteURL
$web=$site.OpenWeb()
$list=$web.Lists["$list"]
$view=$list.Views["Detailed"]
$view.DefaultView = $true
$view.Update()
$list.Update()
Любая помощь по этим двум вопросам будет очень полезна :-). Спасибо, Эшли
Полный сценарий:
Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
$siteURL = "http://sp14fdev01/"
$site = Get-SPSite($siteURL)
foreach($web in $site.AllWebs) {
foreach($list in $web.Lists) {
if($list.BaseType -eq "DocumentLibrary") {
$site = New-Object Microsoft.SharePoint.SPSite($SiteURL) ;
$web = $site.OpenWeb($SiteURL);
$list = $web.Lists.item($listname);
$viewfields = New-Object System.Collections.Specialized.StringCollection
$viewfields.Add("DocIcon")
$viewfields.Add("LinkFilename")
$viewfields.Add("_UIVersionString")
$viewfields.Add("FileSizeDisplay")
$viewfields.Add("Created")
$viewfields.Add("Modified")
$viewfields.Add("Editor")
[void]$list.Views.Add("Detailed", $viewfields, "", 100, $true, $true)
$list.Update();
}}
$web.Dispose();
$site.Dispose();
}