Forum Discussion

Mark Louie Diaz's avatar
Mark Louie Diaz
Copper Contributor
Jul 16, 2018

Powershell script to get all group membership(UG or DL) and remove that user only to that group

Hi,

 

May I ask for your assistance to edit this script from Microsoft instead of checking every group that a user is member of maybe I could use the variable $filter in removing the user also?

 

Best Regards,

Mark

  • You can combine the two scripts as follows. Here you search the groups where the user is member and then removes the user from those groups.

     

    $email= read-host -prompt "user@domain.com"
    $Mailbox=get-Mailbox $email
    $DN=$mailbox.DistinguishedName
    $Filter = "Members -like ""$DN"""
    Get-DistributionGroup -ResultSize Unlimited -Filter $Filter | %{Remove-DistributionGroupMember -identity $_.name -Member $email -confirm:$false}
    Get-UnifiedGroup -ResultSize Unlimited -Filter $Filter | %{Remove-UnifiedGroupLinks -Identity $_.name -LinkType Members -Links $email -Confirm:$false}

     

    • Mark Louie Diaz's avatar
      Mark Louie Diaz
      Copper Contributor

      Hi Nestori,

       

      Tried this but seem it doesn't work, I like this code as it is simple.


      Nestori Syynimaa wrote:

      You can combine the two scripts as follows. Here you search the groups where the user is member and then removes the user from those groups.

       

      $email= read-host -prompt "user@domain.com"
      $Mailbox=get-Mailbox $email
      $DN=$mailbox.DistinguishedName
      $Filter = "Members -like ""$DN"""
      Get-DistributionGroup -ResultSize Unlimited -Filter $Filter | %{Remove-DistributionGroupMember -identity $_.name -Member $email -confirm:$false}
      Get-UnifiedGroup -ResultSize Unlimited -Filter $Filter | %{Remove-UnifiedGroupLinks -Identity $_.name -LinkType Members -Links $email -Confirm:$false}

       


       

      Best Regards

      Mark Diaz

    • Mark Louie Diaz's avatar
      Mark Louie Diaz
      Copper Contributor
      Hi Nestori,

      How can I export the membership first so that I have backup for evidence before we removed it?
      Best Regards,

      Mark Diaz
      • Nestori Syynimaa's avatar
        Nestori Syynimaa
        MVP

        For that scenario, use the first script as-is: it will save the groups in two csv files.

         

        The you can simply read the files and delete user from those groups. The script below should do the trick, but I didn't had time to test it.

        $email= read-host -prompt "user@domain.com"
        Import-CSV "C:\Scripts\TestDL.csv" | %{Remove-DistributionGroupMember -identity $_.name -Member $email -confirm:$false}
        Import-CSV "C:\Scripts\TestUG.csv" | %{Remove-UnifiedGroupLinks -Identity $_.name -LinkType Members -Links $email -Confirm:$false}

         

Resources