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

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

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.

No effect when adding a domain name to an existing SAN certificate

You have an existing SAN certificat installed in yor IIS and you want to add a domain name to the certificate. Problem When you install the updated certificate in the IIS the new domain name doesn't appear in the certificate when you are viewing the certificate from the Security report (the lock) next to the address bar in the browser. Fix the problem Check if the "Print Spooler" and "Windows Remote Management" Services are started or not. Delete the old certificate from the IIS Import the new certificate to the IIS Run IISRESET /stop Run net stop http Run net start http Run IISRESET /start Verify that the "Print Spooler" and "Windows Remote Management" Services are started or stoped depending on the result in step 1.