SharePoint 2013 PowerShell脚本运行无效果 修改WebPart标题失败如何解决
你的脚本未生效主要存在以下核心问题:
- 核心对象未初始化:
$webpartdefinition、$site、$web、$Page这些操作需要的核心变量全程没有赋值,所有修改逻辑都没有作用到实际站点资源 - 变量值为空:
$sourcewebURL、$siteURL仅设置为占位符,没有填写实际站点地址,无法定位到要修改的站点和页面 - 属性修改逻辑错误:修改WebPart的Title属性不需要调用
Properties.Add方法,该方法仅用于新增自定义属性,无法覆盖原有标题属性 - 操作顺序错误:
AllowUnsafeUpdates需要在修改操作之前开启,你现在的设置顺序在修改逻辑之后,不会生效 - 缺少保存步骤:修改WebPart属性后没有执行保存WebPart变更、签入页面、发布页面的步骤,修改仅停留在内存中不会同步到实际站点
你可以参考修正后的脚本使用:
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue # 替换为实际环境参数 $webURL = "http://你的站点地址" $pageRelativePath = "/SitePages/目标页面名称.aspx" $targetWebPartTitle = "project links" $web = Get-SPWeb $webURL $file = $web.GetFile($pageRelativePath) # 先签出页面 if ($file.CheckOutStatus -eq "None") { $file.CheckOut() } $webPartManager = $file.GetLimitedWebPartManager([System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared) # 定位目标WebPart $targetWebPart = $webPartManager.WebParts | Where-Object { $_.Title -eq $targetWebPartTitle } | Select-Object -First 1 if ($targetWebPart) { $web.AllowUnsafeUpdates = $true $spNewLink = Read-Host "输入新的WebPart标题" $targetWebPart.Title = $spNewLink # 保存WebPart修改 $webPartManager.SaveChanges($targetWebPart) $web.AllowUnsafeUpdates = $false Write-Host "WebPart标题修改成功" } else { Write-Host "未找到指定的project links WebPart" } # 签入并发布页面 $file.CheckIn("修改WebPart标题", [Microsoft.SharePoint.SPCheckinType]::MajorCheckIn) if ($web.PublishingWeb) { $file.Publish("页面修改自动发布") $file.Approve("修改自动审批") } $web.Dispose()
内容的提问来源于stack exchange,提问作者HCyber
相关产品推荐
相关产品推荐

