我正在尝试使用Powershell将 UserCustomAction 添加到SPSite(不是SPWeb / SPList),但是它似乎没有保存到数据库,因此在我的数据库上不可用网站。
在创建并完成$newUCA.Update()
之后,可以使用以下命令找到新的 UserCustomAction :
$site.UserCustomActions | ? {$_.Title -eq "myUCATitle"}
处置并再次获得$site
后,新的UCA在$site.UserCustomActions
下不可用,这意味着它没有保存。
我正在使用SharePoint 2016 SharePoint命令行管理程序(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
文件的引用,但链接不存在。
答案 0 :(得分:1)
要链接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();
答案 1 :(得分:0)
您可以为此使用PnP powershell,我经常使用以下脚本。 download link
Connect-PNPOnline -Url http://sp:12001
Add-PnPJavaScriptLink -Name "ScriptLinkGetListItem" -Url /siteassets/ScriptLinkGetListItem.js -Sequence 9999 -Scope Site