Question
recherche compte désactivé.
- rodriguez
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 61
- Remerciements reçus 0
Ok pour le chemin.
Concernant DeleteTree, voir ceci , cette méthode n'attend aucun paramètre. Et je ne pense pas que l'appel se fasse sur le bon objet puisque le nom de l'utilisateur provient d'une collection, de plus la méthode Delete n'existe pas dans la classe DirectoryEntry.
Merci beaucoup !!
Effectivement le Deletetree n'a besoin de rien...
Cela fonctionne !
Une bonne chose de faite:
Maintenant je cherche a trouver l'attribut qui peut me donner le:
Profile Path de l'onglet Terminal services Profile
le but étant de supprimer tous les partages et répertoire associé a l'utilisateur.
Du style:
[code:1]
$ldapquery = [ADSI] 'LDAP://OU=Users,OU=LAV,OU=rEU,OU=client,DC=in1,DC=ad,DC=innovene,DC=com'
$objrechercher = New-object system.directoryservices.directorysearcher($ldapQuery)
$objrechercher.filter ='(&(objectClass=person)(objectCategory=person))'
$boucle = $objrechercher.findall()
foreach ($user in $boucle)
{
$chemin = $user.properties.homedirectory
$code = $user.Properties.useraccountcontrol
$cn = $user.Properties.cn
$profilepath = $user.Properties.TerminalServicesProfilePath
#recherche code pour savoir si desactivé
if ($code -eq 514)
{
$chemin >> c:\chemin.txt
$profilepath >> c:\profilepath.txt
$ldapquery.Deletetree()
}
}
[/code:1]
Mais \"user.Properties.TerminalServicesProfilePath\" est vide alors que les champs dans l'AD sont bien renseignés.
Malheureusement quand je fais une recherche de toutes les attributs de Properties de $user je n'en trouve pas un qui pourrait être le bon.
Encore une mystère.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
C'était également le bon objet ?Effectivement le Deletetree n'a besoin de rien...
noxydius écrit:
essaie ceci, trouvé sur le net :Mais \"user.Properties.TerminalServicesProfilePath\" est vide alors que les champs dans l'AD sont bien renseignés.
[code:1]$objUser.psbase.InvokeGet(\"terminalservicesprofilepath\"«»)[/code:1]
noxydius écrit:
Non je ne pense pas, de ce que je comprend c'est un choix de conception, ADSI ne rapatrie pas toutes les informations d'un compte.Encore une mystère.
Regarde aussi l'avant dernier post de cette discussion .
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- rodriguez
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 61
- Remerciements reçus 0
C'était également le bon objet ?
Oui c'etait le bon objet ca a parfaitement fonctionner.
Laurent Dardenne écrit:
Le probleme c'est que dans l'état actuel du script.$objUser.psbase.InvokeGet(\"terminalservicesprofilepath\")
si je lance cette commande:
$profilepath = $User.psbase.InvokeGet(\"terminalservicesprofilepath\")
est en fait un System.DirectoryServices.SearchResult.
et non pas un :
System.DirectoryServices.DirectoryEntry qui contient bien InvokeGet
Il faut que je cherche comment trouver cet objet.
Connexion ou Créer un compte pour participer à la conversation.
- TimCruz
- Hors Ligne
- Membre junior
-
- Messages : 25
- Remerciements reçus 0
Pour ne pas avoir à me battre avec la fonction InvokeGet, lors de ta recherche ADSI, ajoute dans ton filtre que tu ne désire avoir que les groupe desactivé. Pour cela tu rajoute la propriété suivante à ton filtre : (!userAccountControl:1.2.840.113556.1.4.803:=2)
Voici le code que moi j'utilise :
[code:1]$domaineAD = [ADSI] 'LDAP://DC=cerap,DC=fr'
$rechercheAD = New-Object System.DirectoryServices.DirectorySearcher($domaineAD)
$rechercheAD.Filter = '(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))'
$UserAD=$rechercheAD.FindAll()
[/code:1]
\\"Il n\'y a pas de problème, il n\'y a que des solutions\\"
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- recherche compte désactivé.