Question Move compte AD et suppression des groupes

Plus d'informations
il y a 5 ans 2 semaines #28693 par Galadan
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.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 ans 2 semaines #28694 par Sinjk
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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 ans 2 semaines #28695 par Galadan
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.

Plus d'informations
il y a 5 ans 2 semaines #28698 par Sinjk
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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 ans 2 semaines #28699 par Galadan
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]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 ans 2 semaines #28700 par Sinjk
Cool :)
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.086 secondes
Propulsé par Kunena