Question
[Résolu]savoir si un utilisateur existe
- olivia
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 75
- Remerciements reçus 0
il y a 15 ans 5 mois #8333
par olivia
[Résolu]savoir si un utilisateur existe a été créé par olivia
Bonjour,
je cherche à faire un script permettant de savoir si l'utilisateur existe ou pas
[code:1]####fct à tester pour savoir si utilsateur existant stopper le reste du prob ####
function userexist
{
param ($login)
$adsi = [ADSI]$path
$search = new-object system.directoryservices.directorysearcher $adsi
$search.filter = \"(objectCategory=user)\"
$userlist = $search.findall()
foreach($i in $userlist)
{
$cpt++
if($userlist[$i] -eq $login){ $exist = $true }
else{ $exist = $false }
}
return $exist
}
#####appel a la fonction###
$rep = userexist
if($rep -eq $false)
{
echo \"utilisateur n'existe pas !!\"
}
else{
echo \"utilisateur existe\"
}
[/code:1]
olivia
Message édité par: sam87, à: 16/12/10 10:51<br><br>Message édité par: sam87, à: 17/12/10 09:35
je cherche à faire un script permettant de savoir si l'utilisateur existe ou pas
[code:1]####fct à tester pour savoir si utilsateur existant stopper le reste du prob ####
function userexist
{
param ($login)
$adsi = [ADSI]$path
$search = new-object system.directoryservices.directorysearcher $adsi
$search.filter = \"(objectCategory=user)\"
$userlist = $search.findall()
foreach($i in $userlist)
{
$cpt++
if($userlist[$i] -eq $login){ $exist = $true }
else{ $exist = $false }
}
return $exist
}
#####appel a la fonction###
$rep = userexist
if($rep -eq $false)
{
echo \"utilisateur n'existe pas !!\"
}
else{
echo \"utilisateur existe\"
}
[/code:1]
olivia
Message édité par: sam87, à: 16/12/10 10:51<br><br>Message édité par: sam87, à: 17/12/10 09:35
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 5 mois #8338
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:savoir si un utilisateur existe
D'une part, je ne suis pas sûr du type de l'objet $login que tu passes à ta fonction, mais il faudrait que ce soit un objet ADSI, ça me paraît un peu contradictoire : en effet, il faudrait faire une connexion ADSI sur l'utilisateur exact dont on veut vérifier l'existence, ce qui ne peut marcher que si l'utilisateur existe. La fonction n'a donc aucun sens.
A ta place, je passerais plutôt en paramètre une propriété de l'utilisateur qui lui est unique, comme le distinguishedname ou le samAccountName. Le samAccountName me paraît plus approprié pour un test d'existence.
D'autre part, tu fais un FindAll() sur tous les utilisateurs pour ensuite comparer ton $user à la liste obtenue. Ce n'est vraiment pas optimal, et surtout tu risques de n'avoir qu'une liste partielle si tu as plusieurs milliers d'utilisateurs dans ton AD.
A ta place, je ferais directement un FindOne() en construisant le Search Filter pour qu'il me retourne l'utilisateur correspondant à mon critère.
Tout ça me donnerait la fonction suivante :
[code:1]
function userexist
{
param ($samAccountName)
$adsi = [ADSI]$path
$search = new-object system.directoryservices.directorysearcher $adsi
$search.filter = \"(&(objectCategory=user)(samAccountName=$samAccountName))\"
$user = $search.findone()
if ($user) {$true} else {$false}
}
[/code:1]
A ta place, je passerais plutôt en paramètre une propriété de l'utilisateur qui lui est unique, comme le distinguishedname ou le samAccountName. Le samAccountName me paraît plus approprié pour un test d'existence.
D'autre part, tu fais un FindAll() sur tous les utilisateurs pour ensuite comparer ton $user à la liste obtenue. Ce n'est vraiment pas optimal, et surtout tu risques de n'avoir qu'une liste partielle si tu as plusieurs milliers d'utilisateurs dans ton AD.
A ta place, je ferais directement un FindOne() en construisant le Search Filter pour qu'il me retourne l'utilisateur correspondant à mon critère.
Tout ça me donnerait la fonction suivante :
[code:1]
function userexist
{
param ($samAccountName)
$adsi = [ADSI]$path
$search = new-object system.directoryservices.directorysearcher $adsi
$search.filter = \"(&(objectCategory=user)(samAccountName=$samAccountName))\"
$user = $search.findone()
if ($user) {$true} else {$false}
}
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- olivia
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 75
- Remerciements reçus 0
il y a 15 ans 5 mois #8340
par olivia
Réponse de olivia sur le sujet Re:savoir si un utilisateur existe
merci janel
ca fonctionne mieux comme ça !!!
olivia
ca fonctionne mieux comme ça !!!
olivia
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.033 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu]savoir si un utilisateur existe