我正在尝试使用PowerShell更新SharePoint网站上的节点标题:
$web = Get-SPWeb "http://dev:18792/sites/devsite/"
foreach ($webs in $web.Webs)
{
$nodes = $webs.Navigation.QuickLaunch
foreach ($node in $nodes)
{
$nodeTitle = $node.Title
if ($nodeTitle.ToString().Contains("First node"))
{
foreach ($nodeChild in $node.Children) {
$nodeChildTitle = $nodeChild.Title
if ($nodeChildTitle.ToString().Contains("Original childnode title")) {
$nodeChild.Title = "Changed title"
$nodeChild.Update()
Write-Host "done."
}
}
}
$webs.Dispose()
}
$web.Dispose()
}
如果我再试一次并改变
.Contains("Original childnode title")
为:
.Contains("Changed title")
确实输入了if语句,但是在GUI中看不到更改。
我在这里错过了什么吗?
答案 0 :(得分:0)
可能是因为您激活了发布功能吗?在发布网站中操纵快速启动有点不同。这是一些C#代码示例:
PublishingWeb pubWeb = PublishingWeb.GetPublishingWeb(oWeb);
SPNavigationNodeCollection nodes = pubWeb.Navigation.CurrentNavigationNodes;
foreach (SPNavigationNode node in nodes)
{
if (node.Title == "Original Title")
{
node.Title = "New Title";
node.Update();
break;
}
}
否则尝试调用$ webs.Update()方法