Advertisement
Guest User

Untitled

a guest
Sep 5th, 2016
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.56 KB | None | 0 0
  1. $siteURL = "https://contoso.sharepoint.com/sites/test"
  2. $userName = "admin@contoso.sharepoint.com"
  3. $Password = "SuperSecretPassword"
  4.  
  5. # ----------------------------------------------------------------------------
  6.  
  7. $ScriptPath = split-path -parent $MyInvocation.MyCommand.Definition
  8.  
  9. Add-Type -Path "C:Gitoffice-365Losse Apps365ApplibSharePointOnlineMicrosoft.SharePoint.Client.dll"
  10. Add-Type -Path "C:Gitoffice-365Losse Apps365ApplibSharePointOnlineMicrosoft.SharePoint.Client.Runtime.dll"
  11.  
  12. function Add-SPPermissionToListGroup
  13. {
  14. param (
  15. [Parameter(Mandatory=$true)][string]$Url,
  16. [Parameter(Mandatory=$true)][string]$ListName,
  17. [Parameter(Mandatory=$true)][string]$GroupName,
  18. [Parameter(Mandatory=$true)][string]$PermissionLevel
  19. )
  20.  
  21. #$web = Get-SPOWeb -Identity $Url
  22.  
  23. $list = $Context.web.Lists.GetByTitle($ListName)
  24.  
  25. if ($list -ne $null)
  26. {
  27. # Ensure that the permissions are not being inherited.
  28. if ($list.HasUniqueRoleAssignments -eq $False)
  29. {
  30. $list.BreakRoleInheritance($True)
  31. }
  32.  
  33. # Modify the permissions.
  34. if ($Context.web.SiteGroups[$GroupName] -ne $null)
  35. {
  36. $group = $Context.web.SiteGroups[$GroupName]
  37. $roleAssignment = new-object Microsoft.SharePoint.SPRoleAssignment($group)
  38. $roleDefinition = $Context.web.RoleDefinitions[$PermissionLevel];
  39. $roleAssignment.RoleDefinitionBindings.Add($roleDefinition);
  40. $list.RoleAssignments.Add($roleAssignment)
  41. $list.Update();
  42. Write-Host "Successfully added $PermissionLevel permission to $GroupName group in $ListName list. " -foregroundcolor Green
  43. }
  44. else
  45. {
  46. Write-Host "Group $GroupName does not exist." -foregroundcolor Red
  47. }
  48.  
  49. }
  50. }
  51.  
  52. Function CreateDocumentLibrary {
  53. [CmdletBinding()]
  54.  
  55. Param (
  56. [Parameter(Mandatory=$true)][string]$Name
  57. )
  58.  
  59. $listTitle = $Name
  60. $listDescription = $Name
  61. $listTemplate = 101
  62.  
  63. # Creating client context object
  64. $context = New-Object Microsoft.SharePoint.Client.ClientContext($siteURL)
  65. $context.credentials = $SPOCred
  66.  
  67. #create list using ListCreationInformation object (lci)
  68. $lci = New-Object Microsoft.SharePoint.Client.ListCreationInformation
  69. $lci.title = $listTitle
  70. $lci.description = $listDescription
  71. $lci.TemplateType = $listTemplate
  72. $list = $context.web.lists.add($lci)
  73. $context.load($list)
  74.  
  75. #send the request containing all operations to the server
  76. try {
  77. $context.executeQuery()
  78. write-host "info: Created $($listTitle)" -foregroundcolor green
  79. }
  80.  
  81. catch {
  82. write-host "info: $($_.Exception.Message)" -foregroundcolor red
  83. }
  84. }
  85.  
  86. $SPOPass = ConvertTo-SecureString $Password -AsPlainText -Force
  87. $SPOCred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($userName, $SPOPass)
  88.  
  89. $Context = New-Object Microsoft.SharePoint.Client.ClientContext($siteURL)
  90. $Context.credentials = $SPOCred
  91.  
  92. Import-CSV $ScriptPathDocumentLibraries.csv | ForEach-Object {
  93. $DocLib = $_.DocumentLibrary
  94. $Group = $_.Group
  95.  
  96. #CreateDocumentLibrary -Name $DocLib
  97. Add-SPPermissionToListGroup -Url $siteURL -ListName $DocLib -GroupName 'Domain Admins' -PermissionLevel 'Full Control'
  98. Add-SPPermissionToListGroup -Url $siteURL -ListName $DocLib -GroupName $Group -PermissionLevel Contribute
  99.  
  100. }
  101.  
  102. $Context.Dispose()
  103.  
  104. DocumentLibrary,Group
  105. Test1, CustomerLocation-Doc-Test1
  106. Test2, CustomerLocation-Doc-Test2
  107. Test3, CustomerLocation-Doc-Test3
  108. Test4, CustomerLocation-Doc-Test4
  109. Test5, CustomerLocation-Doc-Test5
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement