Il nous a été demandé de supprimer une centaine d'utilisateurs de divers groupes déjà défini. Notre problématique est que nous ne savons pas dans quel groupe ce trouvent les utilisateurs.
Nous devons donc tester chaque groupe et vérifier que l'utilisateurs ci trouve bien, et comparer les utilisateurs du groupe avec notre liste d'utilisateur.
Nous avons notre fichier CSV qui contient tous les utilisateurs que nous ne voulons pas sous cette forme :
Username,Name,Email,egabriel, Eriel GABRIEL, eriel.gabriel@gmail.comNous avons également un fichier CSV qui contient tous les groupes dans lequels nos utilisateurs sont potentiellement et que nous devons supprimer :
Groupvpn,Usernamevpn-cluj,evpn-hong-kong,evpn-london,evpn-paris,evpn-new-york,evpn-tokyo,evpn-manila,eNous devons donc lister tous les utilisateurs contenu dans les groupes et les comparer avec notre liste d'utilisateurs. Si le résultat match, nous pouvons supprimer l'utilisateur du groupe.
# Load powerShell Moduleimport-module activedirectory#####################################################################################Variable to the CSV file$duousers = import-csv c:\Tools\Duoexport\duousers.csv -Delimiter ","$groupDN = import-csv c:\Tools\Duoexport\vpngroup.csv -Delimiter ","##################################################################################### for each ligne on our CSV file compare it to the other CSVForEach ($data in $groupDN){ $duousers | ForEach-object { $grpusers = Get-ADGroupMember -Identity $data.Groupvpn | Select -ExpandProperty samaccountname if (($grpusers) -eq $_.Username ){ Remove-ADGroupMember -Identity $data.Groupvpn -Members $_.Username -confirm:$false Write-host $_.Username "have been deleted from the group" $data.Groupvpn } else { write-host $_.Username "is not in" $data.Groupvpn } }}