Как добавить UserCustomAction в SPSite с помощью Powershell - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь добавить UserCustomAction к SPSite (НЕ SPWeb / SPList) с помощью Powershell, но, похоже, он не сохраняется в базе данных и, следовательно, он недоступен на моем сайте. .

Сразу после создания и выполнения $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 в теге, но ссылки там нет.

Ответы [ 2 ]

1 голос
/ 20 мая 2019

Чтобы связать файл JS на сайте SharePoint, вместо $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();
0 голосов
/ 21 мая 2019

Вы можете использовать PnP powershell для этого, я часто использовал скрипт ниже. ссылка для скачивания

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