Removing a user from all DLs on a server
Removing a user from all DLs on a server
Problem:
Removing a user from all DLs on a server
Solution:
We can do this using a combination of zmsoap and zmprov
1).'zmsoap' will get a list of all the distribution lists the user is a member of. So for 'user@example.com':
zmsoap -z GetAccountMembershipRequest/account=user@example.com @by=name
2).Use this to make a 'zmprov' script that will run 'zmprov rdlm dl@example.com user@example.com' for all the DLs:
zmsoap -z GetAccountMembershipRequest/account=user@example.com @by=name | sed -n 's/.*name="\(.[^"]*\)".*/rdlm \1 user@example.com/p' > /tmp/rdlm.zmprov
The above creates a file '/tmp/rdlm.zmprov', which contains multiple lines in the form of 'rdlm dl@example.com user@example.com'.
3).This file is then 'fed' into zmprov, like so, removing the user from all the DLs:
zmprov < /tmp/rdlm.zmprov
Shashank