如何使用Powershell向SPSite添加UserCustomAction

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (9)

我正在尝试使用Powershell 将UserCustomAction添加到SPSite(非SPWeb / SPList),但它似乎没有保存到数据库,因此,它在我的网站上不可用。

创建和执行后$newUCA.Update(),可以使用以下命令找到新的UserCustomAction

$site.UserCustomActions | ? {$_.Title -eq "myUCATitle"}

在处置并$site重新获得后,新的UCA不可用$site.UserCustomActions,这意味着它没有被保存。

我正在使用SharePoint 2016 SharePoint Management Shell(Powershell v.5)。

这是我正在使用的代码:

$site = Get-SPSite "Site_Url"
$newUCA = $site.UserCustomActions.Add()
$newUCA.Title = "myUCATitle"
$newUCA.Location = "ScriptLink"
$newUCA.Sequence = 200
$newUCA.Url = "~sitecollection/myLibrary/myJSfile.js"
$newUCA.Update();

当我打开我的网站时,右键单击并选择“查看页面源”,我应该能够myJSfile.js在标签中看到对文件的引用,但链接不在那里。

提问于
用户回答回答于

你可以使用PnP powershell,我经常使用下面的脚本。下载链接

Connect-PNPOnline -Url http://sp:12001
Add-PnPJavaScriptLink -Name "ScriptLinkGetListItem" -Url /siteassets/ScriptLinkGetListItem.js -Sequence 9999 -Scope Site
用户回答回答于

若要链接SharePoint网站上的JS文件,而不是$newUCA.Url,我们需要使用该$newUCA.ScriptSrc属性。

$site = Get-SPSite "Site_Url"
$newUCA = $site.UserCustomActions.Add()
$newUCA.Title = "myUCATitle"
$newUCA.Location = "ScriptLink"
$newUCA.Sequence = 200
$newUCA.ScriptSrc = "~sitecollection/myLibrary/myJSfile.js"
$newUCA.Update();

扫码关注云+社区

领取腾讯云代金券