Forum Discussion
Adding SharePoint Site Owner in PowerShell
- Aug 31, 2017
You can use the "Add-PnPUserToGroup" PnP Powershell cmdlet to handle this.
https://github.com/SharePoint/PnP-PowerShell/blob/master/Documentation/AddPnPUserToGroup.md
Link to download powershell cmdlets:
https://github.com/SharePoint/PnP-PowerShell/releases
Hi Drew Madelung,
I did try this before and it added my user to the Owner group, but it still says ''access denied'' when I try to apply the provisioning template.
Perhaps it could be that the access token has not been refreshed/renewed?
- Marc DepelteauAug 31, 2017Copper Contributor
Drew Madelung That's correct. I have been digging a little bit more and I believe the problem is related to the template itself. I think the site has not been completely created just yet when I am applying the template.
I have the following nodes:<pnp:Files> <pnp:File src="..\SiteAssets\Test.txt" Folder="SiteAssets" /> <pnp:File src="..\SiteAssets\logo.png" Folder="SiteAssets" /> </pnp:Files>And see this in the detailed logs: "Creating folder 'SiteAssets' under Web '/sites/MyModernSite19/'"
2017-08-31 10:31:15.0785 [Files] [13] [Debug] Code execution scope started 0ms 8614b127-0a77-4b98-942b-c298d9ac31e9
2017-08-31 10:31:16.1248 [OfficeDevPnP.Core] [0] [Information] Creating folder 'SiteAssets' under Web '/sites/MyModernSite19/'. 0ms
2017-08-31 10:31:16.2582 [Files] [13] [Debug] Code execution scope ended 1180ms 8614b127-0a77-4b98-942b-c298d9ac31e9
2017-08-31 10:31:16.2592 [Provisioning] [13] [Debug] Code execution scope ended 6993ms 8614b127-0a77-4b98-942b-c298d9ac31e9I believe the access Denied error means that I cannot create the folder SiteAssets under Web, not that I can't apply the template.
- Marc DepelteauAug 31, 2017Copper Contributor
Update: The Site Assets folder is only created once the user browses to the site (in the UI).
Would there be a way to fake that browsing action? Possibly a Web Request?- Marc DepelteauSep 05, 2017Copper Contributor
Update 2:
This worked for me$context = Get-PnPContext $web = Get-PnPWeb $web.Lists.EnsureSiteAssetsLibrary() $web.Context.ExecuteQuery()