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

Highlighted
Contributor

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

7 Replies
Highlighted

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}

 

Highlighted
Hi Nestori,

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

Mark Diaz
Highlighted

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}

 

Highlighted

I just recently published a script that does just that: https://gallery.technet.microsoft.com/Remove-user-from-all-8d44f772?redir=0

 

Use it with the -Verbose and -WhatIf parameter first to preview the exact changes that will be made, once you are satisfied with the results run it for real.

Highlighted

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

Highlighted

Hi Mark,

 

Did you got some error message? You need to connect to Exchange Online before running the script (see for example http://o365blog.com/powershell)

Highlighted

Hi Nestori,

 

It is now working Many Thanks !


@Nestori Syynimaa wrote:

Hi Mark,

 

Did you got some error message? You need to connect to Exchange Online before running the script (see for example http://o365blog.com/powershell)


Best Regards,

Mark Diaz