Question [Résolu] Script AD, filtrage d'OU

Plus d'informations
il y a 5 ans 7 mois #27571 par PatriceLT
Réponse de PatriceLT sur le sujet Re:Script AD, filtrage d'OU
Non, entre autre 2 solutions :

1 - Soit tu passes par un SearchScope OneLevel, qui va uniquement te donner le contenu de l'OU que tu auras mis dans ton SearchBase.

2 - Soit, mais ça sera quand tu comprendras un peu mieux, les rouages de powershell, passer par un Get-ADOraganizationalUnit, afin de récupérer les OUs que tu souhaites (une ou plusieurs), de les variabiliser, et ensuite, d'utiliser cette variable, dans ta recherche.

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

Plus d'informations
il y a 5 ans 7 mois #27572 par AM
Réponse de AM sur le sujet Re:Script AD, filtrage d'OU
Finalement, j'ai repris mon script de base, et j'ai juste récupéré [code:1]where{$_.name -ne \"EXT\"[/code:1]

Voici donc mon code complet :

[code:1]Import-Module ActiveDirectory

#Search user in AD with filter to ignore EXT OU
$Users = Get-ADUser -filter \"enabled -eq 'false'\" -property WhenChanged -SearchBase \"OU=SSP,OU=Users Actif,OU=Entreprise,DC=fr,DC=domain,DC=local\" | where {$_.WhenChanged -le (Get-Date).AddDays(-21)} | where{$_.name -ne \"EXT\"}
#
# REPORTING
#
# Export results to CSV
$Users | Export-Csv C:\Temp\InactiveUsers.csv -NoTypeInformation[/code:1]

Je reviendrais mettre à jour mon script plus tard.<br><br>Message édité par: Shadowman, à: 19/09/18 15:44

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

Plus d'informations
il y a 5 ans 7 mois #27573 par PatriceLT
Réponse de PatriceLT sur le sujet Re:Script AD, filtrage d'OU
Pour moi, voici le résultat (à tester de ton côté) :

[code:1]

Import-Module ActiveDirectory

#Search user in AD with filter to ignore EXT OU
$Users = Get-ADUser -filter \&quot;enabled -eq 'false'\&quot; -property WhenChanged -SearchBase \&quot;OU=SSP,OU=Users Actif,OU=Entreprise,DC=fr,DC=domain,DC=local\&quot; -SearchScope OneLevel | where {$_.WhenChanged -le (Get-Date).AddDays(-21)} | foreach {$_.SamAccountName}

# le foreach {$_.SamAccountName} te permet simplement de récupérer le nom de chaque utilisateur.

#
# REPORTING
#
# Export results to CSV
$Users | Export-Csv C:\Temp\InactiveUsers.csv -NoTypeInformation

[/code:1]

Je viens de tester de mon côté, mon code fonctionne (repris du tiens), en y ajoutant, le SearchScope et le SamAccountName et cela fonctionne.

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

Plus d'informations
il y a 5 ans 7 mois #27574 par AM
Réponse de AM sur le sujet Re:Script AD, filtrage d'OU
Je testerais plus tard, mais en tout cas merci de m'avoir aidé !

Ensuite,selon ce même script, je vais devoir supprimer le dossier de l'utilisateur qui sera inutilisé pour le coup.

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

Plus d'informations
il y a 5 ans 7 mois #27576 par Philippe
Réponse de Philippe sur le sujet Re:Script AD, filtrage d'OU
salut Shadowman

PatriceLT je crois que Shadowman a d'autre OU que EXT après SP et donc ton code ne fonctionne pas

la réponse qu'a rédigé unfamOus basé sur la réponse de PatriceLT avec le Get-ADOrganizationalUnit qui filtre(enlève) avec | where{$_.name -ne \&quot;ext\&quot;} l'OU \&quot;EXT\&quot; est une bonne solution

le filtre -Filter {(objectClass -eq \&quot;organizationalUnit\&quot;)} est en trop puisque Get-ADOrganizationalUnit ne renvoie que ce type d'objet
je pense aussi que -SearchScope \&quot;Subtree\&quot; est une erreur.
c'est à testé, et mettre -SearchScope \&quot;OneLevel\&quot; à la place si tu a des doublons dans ta liste d'utilisateurs

tiens nous au courant Shadowman B)

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

Plus d'informations
il y a 5 ans 7 mois #27578 par Philippe
Réponse de Philippe sur le sujet Re:Script AD, filtrage d'OU
salut Shadowman

En bonus, je devrais intégrer dans ce script un déplacement des users non-actifs dans une OU existante appellée Users Inactifs, tout en conservant leur arborescence, mais vu comment je pêche actuellement, ça ne sera pas pour tout de suite !

pour le déplacement un Move-ADObject devrait te suffire

exemple en une ligne qui déplace tous les comptes désactiver de l'AD :
[code:1]Get-ADUser -Filter {enabled -eq $false} | ft name, enabled | Move-ADObject -TargetPath \&quot;OU=Users Inactifs,OU=Entreprise,DC=fr,DC=domain,DC=local\&quot;
[/code:1]

pour l'arborescence je comprend la logique mais avec le temps on s'aperçois que c'est inutile mais tu peut toujours l'inscrire dans la description ou ailleurs si besoin

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

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