Question Move compte AD et suppression des groupes

Plus d'informations
il y a 5 ans 1 semaine #28686 par Galadan
message d'erreur:

[code:1]Remove-ADGroupMember : Impossible de convertir « System.Object[] » en type « Microsoft.ActiveDirectory.Management.ADGroup », requis par le paramètre « Identity ». La méthode spécifiée n'est pas prise en charge.
Au caractère Ligne:33 : 36
+ Remove-ADGroupMember -Identity $groups -Member $DistinguishedName ...
+ ~~~~~~~
+ CategoryInfo : InvalidArgument : (:«») [Remove-ADGroupMember], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.RemoveADGroupMember
[/code:1]

Je pense que c'est ma variable groups qui pose pb non?
En fait je veux vérifier dans tous les groupes commençant par \&quot;GRP_LIC\&quot; et \&quot;GDL_\&quot; que l'utilisateur ne s'y trouve pas et si tel est le cas le supprimer du ou des groupes.<br><br>Message édité par: Galadan, à: 8/04/19 10:27

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

Plus d'informations
il y a 5 ans 1 semaine #28687 par Sinjk
C'est normal tu met plusieurs groupes et en plus les wildcards de marcheront pas.

Soit tu fais un Remove-ADGroupMember par groupe

Soit si tu veux vraiment utiliser le wildcard tu vas devoir faire le tri dans le $user.memberof

[code:1]

foreach($user in $UserToDel){



$DistinguishedName = $user.DistinguishedName

$Name = $user.Name

$Groups= $user.memberof | where{$_ -like \&quot;$GRP_LIC_*\&quot; -or $_ -like \&quot;*GDL_*\&quot;}

Move-ADObject -identity $DistinguishedName -targetpath $OUdest

foreach($groups in $Groups){Remove-ADGroupMember -Identity $groups -Member $DistinguishedName -Confirm:$false
}
$iM++ # incrémente le compteur



}
[/code:1]

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

Plus d'informations
il y a 5 ans 1 semaine #28688 par Galadan
Alors voici le code avec ton aide:

[code:1] 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 \&quot;GRP_LIC_*\&quot; -or $_ -like \&quot;GDL_*\&quot;}
Set-ADUser -identity $DistinguishedName -Description \&quot;Disabled by $Admin $Day\&quot;
foreach($groups in $ADGroups){
Remove-ADGroupMember -Identity $groups -Member $DistinguishedName -Confirm:$false
}
Move-ADObject -identity $DistinguishedName -targetpath $OUdest
$iM++ # incrémente le compteur
}[/code:1]

Cela fonctionne mais seulement pour un groupe, si le compte fait parti de de\&quot;ux ou plus il le supprime que du premier qu'il trouve apriori.

Message édité par: Galadan, à: 8/04/19 11:33<br><br>Message édité par: Galadan, à: 8/04/19 11:34

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

Plus d'informations
il y a 5 ans 1 semaine #28690 par Sinjk
Je viens de tester en ayant crée les groupes GRP_LIC_TEST et GDL_TEST et ça marche.

Essaye avec cette ligne ci
[code:1] $ADGroups= $user.memberof | Where-Object {$_ -like \&quot;*GRP_LIC_*\&quot; -or $_ -like \&quot;*GDL_*\&quot;}[/code:1]

Le wildcard avant le nom de groupe est la seule différence que j'ai ajouté à ton exemple.

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

Plus d'informations
il y a 5 ans 1 semaine #28691 par Galadan
En effet cela fonctionne! Merci !

Dernier chose, comment je peux intégrer sur le rapport généré le nom du compte avec le nom des groupes auxquels il a était supprimé?

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

Plus d'informations
il y a 5 ans 1 semaine #28692 par Sinjk
Bien sûr,

Bon c'est pas la plus belle des manières ^^ mais ça devrait faire l'affaire:

[code:1]foreach($user in $UserToDel){

$DistinguishedName = $user.DistinguishedName

$Name = $user.Name

$ADGroups= $user.memberof | Where-Object {$_ -like \&quot;GRP_LIC_*\&quot; -or $_ -like \&quot;GDL_*\&quot;}
add-content -path \&quot;tonpathverstonfichierlog\&quot; -value \&quot;$Name deleting groups\&quot;
Set-ADUser -identity $DistinguishedName -Description \&quot;Disabled by $Admin $Day\&quot;

foreach($groups in $ADGroups){

Remove-ADGroupMember -Identity $groups -Member $DistinguishedName -Confirm:$false
add-content -path \&quot;tonpathverstonfichierlog\&quot; -value \&quot;$groups has been deleted\&quot;

}[/code:1]

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

Temps de génération de la page : 0.086 secondes
Propulsé par Kunena