Question Problème avecFindOne() (Résolu)

Plus d'informations
il y a 17 ans 5 mois #2839 par michault
Bonjour,

Voici un script pour créer des groupes avec test au préalable de l'existence.


# Récupération fichier paramètres
$var=Import-Csv 'c:\PWRSHELL\ListeGroup.csv'

#Spécifier l'unité d'organisation
$objOU= [ADSI]\"LDAP://localhost:389/OU=groupes,DC=xxxxx,DC=xxx\"

$objDomaine = [ADSI]’’
$objFind = New-Object system.DirectoryServices.DirectorySearcher($objDomaine)

foreach($v in $var)
{
$cngroupe=\"CN=\" + $v.groupe
$objFind.Filter=’(&(objectClass=group) (cn=$cngroupe))’
$result=$objFind.FindOne()

If ($result -eq $Null)
{$objGroupe = $objOU.Create(\"group\", $cngroupe)
$objGroupe.Put(\"sAMAccountName\", $v.groupe)
$objGroupe.Put(\"groupType\", $v.type)
$objGroupe.SetInfo()
write-host \"Groupe \" $v.groupe \" créé avec succès!\"
}
else {write-host \"Groupe \" $v.groupe \"existe déjà!\"
}
}


Visiblement quand mes groupes existent déjà, la variable $result ne contient pas ce que je crois.

Est ce quelqu'un à une idée?

Merci

PS: Voilà mon fichier csv
groupe,type
G_Diff2,2
G_secu1,-2147483646<br><br>Message édité par: Robin, à: 28/09/08 17:17

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

Plus d'informations
il y a 17 ans 5 mois #2848 par PASCAULT
Réponse de PASCAULT sur le sujet Re:Problème avecFindOne()
Bonjour,

Je pense que cela vient tout simplement de ton filtre de recherche qui n'est pas bon.

$objFind.Filter=’(&amp;(objectClass=group) (cn=$cngroupe))’


Ta variable $cngroupe ne va pas être interprètée, ta recherche va donc se faire sur un object ldap \&quot;$cngroupe\&quot;.
De plus, tu instancies ta variable $cngroupe

$cngroupe=\&quot;CN=\&quot; + $v.groupe

Tu spécifies donc déja \&quot;CN=nom_du_groupe\&quot; dans cette variable, ne pas mettre encore donc dans le filtre \&quot;CN=\&quot;

Essaie cela:
[code:1]$objFind.filter=’(&amp;(objectClass=group) ('+$cngroupe+'))’[/code:1]

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

Plus d'informations
il y a 17 ans 5 mois #2850 par michault
Réponse de michault sur le sujet Re:Problème avecFindOne()
salut gremlinsy

Super pour ta rapidité et pour ta réponse
T'as mis dans le mille:S Je ne suis pas familier de la syntaxe et à force mes yeux se croisent.

@+

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

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