Question
Move compte AD et suppression des groupes
- Galadan
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 75
- Remerciements reçus 0
il y a 5 ans 2 semaines #28693
par Galadan
Réponse de Galadan sur le sujet Re:Move compte AD et suppression des groupes
Parfait!
Par contre c'est le nom complet du groupe qui apparaît: CN=GDL_,OU=Bla,DC=bla,DC=bla,DC=.com
j'ai fait un $groupname=$adgroups.name mais rien ne s'affiche.
Par contre c'est le nom complet du groupe qui apparaît: CN=GDL_,OU=Bla,DC=bla,DC=bla,DC=.com
j'ai fait un $groupname=$adgroups.name mais rien ne s'affiche.
Connexion ou Créer un compte pour participer à la conversation.
- Sinjk
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 99
- Remerciements reçus 0
il y a 5 ans 2 semaines #28694
par Sinjk
Réponse de Sinjk sur le sujet Re:Move compte AD et suppression des groupes
Oui, le seul moyen que j'ai trouvé est d'utiliser
[code:1]add-content -path \"tonpathverstonfichierlog\" -value \"$($groups.split(\",\"«»)[0]) has been deleted\"[/code:1]
pour garder que le CN=NomDuGroup Mais il y'a surement moyen de gérer ça autrement, comme l'utilisation de regex par exemple.
Bon courage
[code:1]add-content -path \"tonpathverstonfichierlog\" -value \"$($groups.split(\",\"«»)[0]) has been deleted\"[/code:1]
pour garder que le CN=NomDuGroup Mais il y'a surement moyen de gérer ça autrement, comme l'utilisation de regex par exemple.
Bon courage
Connexion ou Créer un compte pour participer à la conversation.
- Galadan
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 75
- Remerciements reçus 0
il y a 5 ans 2 semaines #28695
par Galadan
Réponse de Galadan sur le sujet Re:Move compte AD et suppression des groupes
Et en mettant un Get-adgroup dans la boucle? Il récupère bien toute les entrée y compris le name ?
Connexion ou Créer un compte pour participer à la conversation.
- Sinjk
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 99
- Remerciements reçus 0
il y a 5 ans 2 semaines #28698
par Sinjk
Réponse de Sinjk sur le sujet Re:Move compte AD et suppression des groupes
Hello,
Bien sûr, il faut juste voir le script d'une autre manière en itérant dans chaque groupe pour voir si l'utilisateur existe.
[code:1]
$Groups=Get-ADGroup -filter {(Name -like \"GDL_*\"«») -or (Name -like \"GRP_LIC*\"«»)} -Properties * | select Name,Members | where{$_.Members -like \"*$Name*\"}
foreach($groups in $Groups){Remove-ADGroupMember -Identity $groups.Name -Members $DistinguishedName -Confirm:$false
add-content -path gr.txt -Value \"The group $($groups.Name.split(\",\"«»)[0]) has been deleted deleted\"
}
[/code:1]
Dans ce cas là tu auras juste le nom du groupe.
Bon courage
Bien sûr, il faut juste voir le script d'une autre manière en itérant dans chaque groupe pour voir si l'utilisateur existe.
[code:1]
$Groups=Get-ADGroup -filter {(Name -like \"GDL_*\"«») -or (Name -like \"GRP_LIC*\"«»)} -Properties * | select Name,Members | where{$_.Members -like \"*$Name*\"}
foreach($groups in $Groups){Remove-ADGroupMember -Identity $groups.Name -Members $DistinguishedName -Confirm:$false
add-content -path gr.txt -Value \"The group $($groups.Name.split(\",\"«»)[0]) has been deleted deleted\"
}
[/code:1]
Dans ce cas là tu auras juste le nom du groupe.
Bon courage
Connexion ou Créer un compte pour participer à la conversation.
- Galadan
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 75
- Remerciements reçus 0
il y a 5 ans 2 semaines #28699
par Galadan
Réponse de Galadan sur le sujet Re:Move compte AD et suppression des groupes
Super merci, tous fonctionne comme je le souhaite!
Voici le script final:
[code:1]#================================= Variables
$OUsearch = 'OU=Utilisateurs,DC=bla,DC=blabla,DC=com' # OU ou l'on recherche les comptes AD
$OUdest = 'OU=Désactivé,OU=Utilisateurs,DC=bla,DC=blabla,DC=com' # OU ou l'on déplace les comptes AD
$iM = 0 # Compteur d'utilisateurs supprimés / reset à 0 en début de boucle pour le comptage
$TodayTime = Get-Date -UFormat \"%d-%m-%Y\" # Utilisé pour le nom du rapport
$Day = Get-Date -Format g # Utilisé pour modifier la description des comptes AD
$RapportTxt = 'c:\temp\' + $TodayTime + '_Account_deleted.txt' # Localisation du rapport
$Admin = Read-Host -Prompt \"Please enter your login \" #Login de l'administrateur
#================================= En tête du rapport à générer
Write-Output \"#\" >> $RapportTxt
Write-Output \"# Generated report of $admin on $Day\" >> $RapportTxt
Write-Output \"#\" >> $RapportTxt
Write-Output \"#\" >> $RapportTxt
Write-Output \"#\" >> $RapportTxt
Write-Output \"# List of Users account desactivated and moved : \" >> $RapportTxt
#================================= Traitement
Import-module ActiveDirectory
$UserToDel = Get-ADUser -filter {(Enabled -eq 'False')} -searchbase $OUSearch -Properties * | Where-Object { ($_.distinguishedname -notlike '*Désactivé*') }
foreach($user in $UserToDel){
$DistinguishedName = $user.DistinguishedName
$Name = $user.Name
$ADGroups= $user.memberof | Where-Object {$_ -like \"*Groupe 1*\" -or $_ -like \"*Groupe 2\"}
Write-Output \"#==========================================\" >> $RapportTxt
add-content -path $RapportTxt -value \"Account = $Name \"
Set-ADUser -identity $DistinguishedName -Description \"Disabled by $Admin le $Day\"
$Groups = Get-ADGroup -filter {(Name -like \"Groupe 1\"«») -or (Name -like \"Groupe 2\"«»)} -Properties * | select Name,Members | where{$_.Members -like \"*$Name*\"}
foreach($groups in $Groups){
Remove-ADGroupMember -Identity $groups.Name -Members $DistinguishedName -Confirm:$false
add-content -path $RapportTxt -Value \"The group $($groups.Name.split(\",\"«»)[0]) has been deleted deleted from $Name account\"
}
Move-ADObject -identity $DistinguishedName -targetpath $OUdest
$iM++ # incrémente le compteur
}
#================================= Fin du rapport à générer
Write-Output \"#\" >> $RapportTxt
Write-Output \"#\" >> $RapportTxt
Write-Output \"$iM Account deleted\" >> $RapportTxt
Write-Output \"#\" >> $RapportTxt
Write-Output \"#\" >> $RapportTxt
#================================= Envoi par email du rapport
$MailTo = \"@.com\"
$MailCC = \"@.com\"
$MailFrom = \" < @.com >\"
$MailSmtp = \"smtp-gateway\"
Send-MailMessage -From $MailFrom -To $MailTo -CC $MailCC -Subject \"Account deleted \" -Body \"Voir le fichier de log en PJ\" -Attachment $RapportTxt -SmtpServer $MailSmtp
#================================= Suppression du rapport
Remove-Item -Path $RapportTxt -force
#=================================[/code:1]
Voici le script final:
[code:1]#================================= Variables
$OUsearch = 'OU=Utilisateurs,DC=bla,DC=blabla,DC=com' # OU ou l'on recherche les comptes AD
$OUdest = 'OU=Désactivé,OU=Utilisateurs,DC=bla,DC=blabla,DC=com' # OU ou l'on déplace les comptes AD
$iM = 0 # Compteur d'utilisateurs supprimés / reset à 0 en début de boucle pour le comptage
$TodayTime = Get-Date -UFormat \"%d-%m-%Y\" # Utilisé pour le nom du rapport
$Day = Get-Date -Format g # Utilisé pour modifier la description des comptes AD
$RapportTxt = 'c:\temp\' + $TodayTime + '_Account_deleted.txt' # Localisation du rapport
$Admin = Read-Host -Prompt \"Please enter your login \" #Login de l'administrateur
#================================= En tête du rapport à générer
Write-Output \"#\" >> $RapportTxt
Write-Output \"# Generated report of $admin on $Day\" >> $RapportTxt
Write-Output \"#\" >> $RapportTxt
Write-Output \"#\" >> $RapportTxt
Write-Output \"#\" >> $RapportTxt
Write-Output \"# List of Users account desactivated and moved : \" >> $RapportTxt
#================================= Traitement
Import-module ActiveDirectory
$UserToDel = Get-ADUser -filter {(Enabled -eq 'False')} -searchbase $OUSearch -Properties * | Where-Object { ($_.distinguishedname -notlike '*Désactivé*') }
foreach($user in $UserToDel){
$DistinguishedName = $user.DistinguishedName
$Name = $user.Name
$ADGroups= $user.memberof | Where-Object {$_ -like \"*Groupe 1*\" -or $_ -like \"*Groupe 2\"}
Write-Output \"#==========================================\" >> $RapportTxt
add-content -path $RapportTxt -value \"Account = $Name \"
Set-ADUser -identity $DistinguishedName -Description \"Disabled by $Admin le $Day\"
$Groups = Get-ADGroup -filter {(Name -like \"Groupe 1\"«») -or (Name -like \"Groupe 2\"«»)} -Properties * | select Name,Members | where{$_.Members -like \"*$Name*\"}
foreach($groups in $Groups){
Remove-ADGroupMember -Identity $groups.Name -Members $DistinguishedName -Confirm:$false
add-content -path $RapportTxt -Value \"The group $($groups.Name.split(\",\"«»)[0]) has been deleted deleted from $Name account\"
}
Move-ADObject -identity $DistinguishedName -targetpath $OUdest
$iM++ # incrémente le compteur
}
#================================= Fin du rapport à générer
Write-Output \"#\" >> $RapportTxt
Write-Output \"#\" >> $RapportTxt
Write-Output \"$iM Account deleted\" >> $RapportTxt
Write-Output \"#\" >> $RapportTxt
Write-Output \"#\" >> $RapportTxt
#================================= Envoi par email du rapport
$MailTo = \"@.com\"
$MailCC = \"@.com\"
$MailFrom = \" < @.com >\"
$MailSmtp = \"smtp-gateway\"
Send-MailMessage -From $MailFrom -To $MailTo -CC $MailCC -Subject \"Account deleted \" -Body \"Voir le fichier de log en PJ\" -Attachment $RapportTxt -SmtpServer $MailSmtp
#================================= Suppression du rapport
Remove-Item -Path $RapportTxt -force
#=================================[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Sinjk
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 99
- Remerciements reçus 0
il y a 5 ans 2 semaines #28700
par Sinjk
Réponse de Sinjk sur le sujet Re:Move compte AD et suppression des groupes
Cool
Merci pour le script final il peut être très interessant à utiliser. Je le garde sous le coude !
Merci pour le script final il peut être très interessant à utiliser. Je le garde sous le coude !
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.089 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Move compte AD et suppression des groupes