Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $siteURL = "https://contoso.sharepoint.com/sites/test"
- $userName = "admin@contoso.sharepoint.com"
- $Password = "SuperSecretPassword"
- # ----------------------------------------------------------------------------
- $ScriptPath = split-path -parent $MyInvocation.MyCommand.Definition
- Add-Type -Path "C:Gitoffice-365Losse Apps365ApplibSharePointOnlineMicrosoft.SharePoint.Client.dll"
- Add-Type -Path "C:Gitoffice-365Losse Apps365ApplibSharePointOnlineMicrosoft.SharePoint.Client.Runtime.dll"
- function Add-SPPermissionToListGroup
- {
- param (
- [Parameter(Mandatory=$true)][string]$Url,
- [Parameter(Mandatory=$true)][string]$ListName,
- [Parameter(Mandatory=$true)][string]$GroupName,
- [Parameter(Mandatory=$true)][string]$PermissionLevel
- )
- #$web = Get-SPOWeb -Identity $Url
- $list = $Context.web.Lists.GetByTitle($ListName)
- if ($list -ne $null)
- {
- # Ensure that the permissions are not being inherited.
- if ($list.HasUniqueRoleAssignments -eq $False)
- {
- $list.BreakRoleInheritance($True)
- }
- # Modify the permissions.
- if ($Context.web.SiteGroups[$GroupName] -ne $null)
- {
- $group = $Context.web.SiteGroups[$GroupName]
- $roleAssignment = new-object Microsoft.SharePoint.SPRoleAssignment($group)
- $roleDefinition = $Context.web.RoleDefinitions[$PermissionLevel];
- $roleAssignment.RoleDefinitionBindings.Add($roleDefinition);
- $list.RoleAssignments.Add($roleAssignment)
- $list.Update();
- Write-Host "Successfully added $PermissionLevel permission to $GroupName group in $ListName list. " -foregroundcolor Green
- }
- else
- {
- Write-Host "Group $GroupName does not exist." -foregroundcolor Red
- }
- }
- }
- Function CreateDocumentLibrary {
- [CmdletBinding()]
- Param (
- [Parameter(Mandatory=$true)][string]$Name
- )
- $listTitle = $Name
- $listDescription = $Name
- $listTemplate = 101
- # Creating client context object
- $context = New-Object Microsoft.SharePoint.Client.ClientContext($siteURL)
- $context.credentials = $SPOCred
- #create list using ListCreationInformation object (lci)
- $lci = New-Object Microsoft.SharePoint.Client.ListCreationInformation
- $lci.title = $listTitle
- $lci.description = $listDescription
- $lci.TemplateType = $listTemplate
- $list = $context.web.lists.add($lci)
- $context.load($list)
- #send the request containing all operations to the server
- try {
- $context.executeQuery()
- write-host "info: Created $($listTitle)" -foregroundcolor green
- }
- catch {
- write-host "info: $($_.Exception.Message)" -foregroundcolor red
- }
- }
- $SPOPass = ConvertTo-SecureString $Password -AsPlainText -Force
- $SPOCred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($userName, $SPOPass)
- $Context = New-Object Microsoft.SharePoint.Client.ClientContext($siteURL)
- $Context.credentials = $SPOCred
- Import-CSV $ScriptPathDocumentLibraries.csv | ForEach-Object {
- $DocLib = $_.DocumentLibrary
- $Group = $_.Group
- #CreateDocumentLibrary -Name $DocLib
- Add-SPPermissionToListGroup -Url $siteURL -ListName $DocLib -GroupName 'Domain Admins' -PermissionLevel 'Full Control'
- Add-SPPermissionToListGroup -Url $siteURL -ListName $DocLib -GroupName $Group -PermissionLevel Contribute
- }
- $Context.Dispose()
- DocumentLibrary,Group
- Test1, CustomerLocation-Doc-Test1
- Test2, CustomerLocation-Doc-Test2
- Test3, CustomerLocation-Doc-Test3
- Test4, CustomerLocation-Doc-Test4
- Test5, CustomerLocation-Doc-Test5
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement