As part of new employee workflow from within the identity management we needed to pre-provision Personal sites and OneDrive for Business.
After doing a quick research, I found the following article on the #msdn
https://msdn.microsoft.com/en-us/library/office/jj163783.aspx
which describes how using CSOM one can achieve the task.
After doing a quick research, I found the following article on the #msdn
https://msdn.microsoft.com/en-us/library/office/jj163783.aspx
which describes how using CSOM one can achieve the task.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Security; using Microsoft.SharePoint.Client; using Microsoft.SharePoint.Client.UserProfiles; namespace CreatePersonalSiteBulkConsole { class Program { static void Main(string[] args) { string userName = "administrator@contoso.onmicrosoft.com"; string passwordStr = "password"; string serverUrl = "https://contoso-admin.sharepoint.com/"; using (var clientContext = new ClientContext(serverUrl)) { SecureString password = new SecureString(); Array.ForEach(passwordStr.ToCharArray(), c => password.AppendChar(c)); var credentials = new SharePointOnlineCredentials(userName, password); clientContext.Credentials = credentials; var web = clientContext.Web; clientContext.Load(web); clientContext.ExecuteQuery(); ProfileLoader loader = ProfileLoader.GetProfileLoader(clientContext); if (loader == null) { throw new InvalidOperationException("Failed to get ProfileLoader"); } string[] userEmails = { "usera@contoso.onmicrosoft.com", "userb@contoso.onmicrosoft.com" }; loader.CreatePersonalSiteEnqueueBulk(userEmails); loader.Context.ExecuteQuery(); } } } }
As I want to mention very important requirements for using this code as the #msdn documentation does not say clearly.#The caller of the api must have a sharepoint user profile (means a sharepoint licenses assigned)#The caller of the api must be "Global Admin"#The machine from where the api would invoked must have following components installed on it;sharepointclientcomponents_16-4002-1211_x64-en-us.msihttps://www.microsoft.com/en-us/download/details.aspx?id=42038
Comments