Advertisement
Guest User

Untitled

a guest
Apr 28th, 2016
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Import-Module ActiveDirectory
  2. . .\Forums_Utility.ps1
  3.  
  4. function GetADGroupMembers($group)
  5. {
  6.     return Get-ADGroupMember -identity $group -Recursive | Get-ADUser -Property name, SAMaccountname, mail | Select Name, mail, @{Label="username";Expression={$_.SAMaccountname.ToLower()}}
  7.  
  8. }
  9.  
  10. function ADUserExistDiscourseGroup($ad_mail, $dis_group)
  11. {
  12.    return (GetGroupUsers $dis_group).email -contains $ad_mail.ToLower()
  13. }
  14.  
  15.  
  16. function DiscourseUserExistADGroup($dis_email, $ad_group)
  17. {
  18.    return (GetADGroupMembers $ad_group).mail -contains $dis_email.ToLower()
  19. }
  20.  
  21. function SyncADGrouptoDiscourse($ad_group, $dis_group){
  22.    
  23.     foreach($user in (GetADGroupMembers $ad_group))
  24.     {
  25.         if(!(ADUserExistDiscourseGroup $user.mail $dis_group))
  26.         {
  27.             AddUserToGroup $user.mail $dis_group
  28.             Write-Host "adding" $user.mail
  29.         }
  30.     }
  31.    
  32.  
  33.     foreach($user in (GetGroupUsers $dis_group))
  34.     {
  35.         if(!(DiscourseUserExistADGroup $user.email $ad_group))
  36.         {
  37.             RemoveUserFromGroup $user.email $dis_group
  38.             Write-Host "removing" $user.email
  39.         }
  40.     }
  41. }
  42.  
  43. #LIST GROUPS HERE TO BE SYNCED
  44. SyncADGrouptoDiscourse "discourse-grpname" "AD_GroupName"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement