Hi all! I am planning a project to deploy Sharepoint Online to both faculty and students at a K-12 school. We have certain needs for this and the provided Powershell Module is not meeting those needs.
First my goals:
1. Provide cloud file storage with sharing/collaboration
2. Report on the environment and prevent abuse
Goal 1 is obvious - I can just assign Sharepoint licenses and users will have OneDrive Pro to store files in.
Goal 2 is a bit harder. Once a user has a SP license they have essentially been transported to the Wild West. They are provisioned a personal site with full control meaning they can share with anyone and create subsites under that site. One thing I have tested is removing the user from the site collection adminstrators which prevents creation of subsites. I can then grant them Edit permissions which still allows sharing and modification but this cannot be done in bulk. So I am left with two sub-goals:
1. How to discover all sites
2. Setting permissions on all these sites
I landed on the Sharepoint Client Components SDK to try to bridge this gap. For background, I manage our AD, MSOL, and Exchange Online and am fairly well versed in Powershell. However, I'm nearly clueless on the Sharepoint side so I don't want to waste too much time barking up the wrong tree. So far with the SDK I can enter a URL for a site that I have permission to and return the site properties, but that's about all. I am still working through some of the C# examples and to determine exactly how I would enumerate all the sites (particularly personal sites and their subsites if any) and set permissions on those sites. Has anyone else done anything like this or do you have any methods you could recommend? Thanks!