Skip to main content

Adding Site Administrators to a Site Collection


If you want to add a SiteAdministrator to a SiteCollection you can't add the user to the SPUserCollection SPWeb.SiteAdministrators.
SPWeb.SiteAdministrators.Add()
SPUserCollection SPWeb.SiteAdministrators is of type SPUserCollectionType.UCT_SiteAdmins (6), which appears that SharePoint is not taking care of.
If it's a bug, i don't know.

Instead you have to set the property IsSiteAdmin of the SPUser to True;
SPWeb web = SPContext.Current.Web;
SPUser user = web.AllUsers["loginName"];
user.IsSiteAdmin = true;
user.Update();

Comments

  1. Can I do this via REST API or any webservice? I'm using Office365, and I need to add a user (who is NOT a site user) as Site Collection Admin on the OneDrive (my site) for another tenant user. I can do this via Powershell but I wish to achieve this through APIs. How can I achieve this?

    ReplyDelete

Post a Comment

Popular posts from this blog

The form cannot be submitted because of an error

Problem I created a reusable approval workflow in SharePoint Designer 2010. I initiated the workflow. Then when I filled in the Assigned To field I got an error pop up saying: "The form cannot be submitted because of an error". Solution Uninstall the KB2553322 for SharePoint Designer. I didn't uninstall KB2553322 for Microsoft Office. Restart SharePoint Designer. Recreate the workflow.

Enable PowerShell commandlets for SharePoint 2013 in PowerShell ISE

Open the PowerShell ISE and create a profile by running the following code: if (!(test-path $profile.AllUsersAllHosts)) { new-item -type file -path $profile.AllUsersAllHosts-force } Open the newly created profile with the following command: psEdit $profile.AllUsersAllHosts The profile will be open in the PowerShell ISE. Add the following code to the profile: (If the profile for some reason doesn't open then you can get it here: C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1) if ((Get-PSSnapIn -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ) { Add-PSSnapIn -Name Microsoft.SharePoint.PowerShell } Save the profile. Next time you open the PowerShell ISE you will have all the Microsoft.SharePoint.PowerShell commandlets.

Error when running Register-SPAppPrincipal

Problem You get the error, "Cannot find an SPWeb object with Id or Url" , when trying to get the RootWeb of the SPSite object when you register a new app with the Register-SPAppPrincipal PowerShell cmdl. Register-SPAppPrincipal -NameIdentifier $appPrincipalIdentifier -Site $site.RootWeb -DisplayName 'ProviderHostedApp' The cause could be The user who is running the script is NOT a farm administrator. Fix the problem Add the user to the farm administrator group