I am new to SharePoint and CSOM, but I am comfortable in PowerShell and .NET. I'm trying to do the following tasks in SharePoint Online:
- Get the list of users in a particular named group
- For each user, create a folder
- For each folder created, break inheritance with the parent folder and assign exclusive access to its respective user
For the first task, I've tried the following code:
# Get a specific group by name $allGroups = $web.SiteGroups $ctx.Load($allGroups) $ctx.ExecuteQuery() $group = $allGroups.GetByName('My Group') # Get all users in the group 'My Group' $users = $group.Users $ctx.Load($users) $ctx.ExecuteQuery()
GroupCollection.GetByName method always gives me a "collection has not been initialized" error. I know that
$allGroups is initialized because I am able to query other properties such as
$allGroups.Count. What am I doing wrong? Is there another way to retrieve a particular group by name?
The second task should be straightforward. I already have successfully created new folders, so I just need to use a foreach loop to accomplish this step.
I haven't been able to test the third task yet, but I have seen plenty of code samples online for breaking inheritance, and I expect that adding a permission for a user won't be too difficult. I'll edit this question if I run into problems, but in the meantime, some sample code to get me started would be very appreciated.