Advertisement
Guest User

Untitled

a guest
Apr 30th, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.40 KB | None | 0 0
  1. param (
  2. [string]$UserName = $( Read-Host "Input UserName, please" ),
  3. [string]$Password = $( Read-Host "Input password, please" ),
  4. [string]$SiteUri = $( Read-Host "Input SiteUri, please" ),
  5. [string]$FromUser = $( Read-Host "Input FromUser, please" ),
  6. [string]$ToUser = $( Read-Host "Input ToUser, please" )
  7. )
  8. $host.Runspace.ThreadOptions = "ReuseThread"
  9.  
  10. #Definition of the function that gets all the SharePoint groups and Users per Group in a SharePoint site
  11. function Clone-SPOUserGroupPermissions
  12. {
  13. param ($sSiteColUrl,$Credential,$fromUser,$toUser)
  14. try
  15. {
  16.  
  17. #SPO Client Object Model Context
  18. $spCtx = New-Object Microsoft.SharePoint.Client.ClientContext($sSiteColUrl)
  19.  
  20. $spCtx.Credentials = $Credential
  21.  
  22. #Root Web Site
  23. $spRootWebSite = $spCtx.Web
  24. #Collecction of Sites under the Root Web Site
  25. $spSites = $spRootWebSite.Webs
  26.  
  27. #Loading Operations
  28. $spGroups=$spCtx.Web.SiteGroups
  29. $spCtx.Load($spGroups)
  30. $spCtx.ExecuteQuery()
  31.  
  32. #We need to iterate through the $spGroups Object in order to get individual Group information
  33. foreach($spGroup in $spGroups){
  34. $spCtx.Load($spGroup)
  35.  
  36. $spCtx.ExecuteQuery()
  37.  
  38. #Getting the users per group in the SPO Site
  39. $spSiteUsers=$spGroup.Users
  40. $spCtx.Load($spSiteUsers)
  41. $spCtx.ExecuteQuery()
  42.  
  43. foreach($spUser in $spSiteUsers){
  44. if ($spUser.Email -eq $fromUser)
  45. {
  46. Write-Host $spGroup.Title "," $spUser.Email
  47. Add-SPUsersToGroup -sSiteColUrl $sSiteColUrl -Credential $Credential -sGroup $spGroup.Title -sUserToAdd $toUser
  48. }
  49. }
  50. }
  51.  
  52. $spCtx.Dispose()
  53. }
  54. catch [System.Exception]
  55. {
  56. write-host -f red $_.Exception.ToString()
  57. }
  58. }
  59.  
  60.  
  61. function Add-SPUsersToGroup
  62. {
  63. param ($sSiteColUrl,$Credential,$sGroup,$sUserToAdd)
  64. try
  65. {
  66.  
  67. Write-Host "Adding User $sUserToAdd to group $sGroup in $sSiteColUrl" -foregroundcolor Green
  68. #SPO Client Object Model Context
  69. $spCtx = New-Object Microsoft.SharePoint.Client.ClientContext($sSiteColUrl)
  70.  
  71. $spCtx.Credentials = $Credential
  72.  
  73. #Getting the SharePoint Groups for the site
  74. $spGroups=$spCtx.Web.SiteGroups
  75. $spCtx.Load($spGroups)
  76. #Getting the specific SharePoint Group where we want to add the user
  77. $spGroup=$spGroups.GetByName($sGroup);
  78. $spCtx.Load($spGroup)
  79. #Ensuring the user we want to add exists
  80. #Write-Host " Buscando -> " $sUserToAdd
  81. $spUser = $spCtx.Web.EnsureUser($sUserToAdd)
  82. $spCtx.Load($spUser)
  83. $spUserToAdd=$spGroup.Users.AddUser($spUser)
  84. $spCtx.Load($spUserToAdd)
  85. $spCtx.ExecuteQuery()
  86.  
  87. Write-Host "SharePoint User $sUserToAdd added succesfully!!" -foregroundcolor Green
  88. $spCtx.Dispose()
  89. }
  90. catch [System.Exception]
  91. {
  92. write-host -f red $_.Exception.ToString()
  93. }
  94. }
  95.  
  96.  
  97. $SecurePassword = $Password | ConvertTo-SecureString -AsPlainText -Force
  98. $SPOCredentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $SecurePassword)
  99. Clone-SPOUserGroupPermissions -sSiteColUrl $SiteUri -Credential $SPOCredentials -fromUser $FromUser -toUser $ToUser
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement