Question
Problème avecFindOne() (Résolu)
- michault
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 128
- Remerciements reçus 0
il y a 17 ans 5 mois #2839
par michault
Problème avecFindOne() (Résolu) a été créé 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
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.
- PASCAULT
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 78
- Remerciements reçus 0
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.
Ta variable $cngroupe ne va pas être interprètée, ta recherche va donc se faire sur un object ldap \"$cngroupe\".
De plus, tu instancies ta variable $cngroupe
Essaie cela:
[code:1]$objFind.filter=’(&(objectClass=group) ('+$cngroupe+'))’[/code:1]
Je pense que cela vient tout simplement de ton filtre de recherche qui n'est pas bon.
$objFind.Filter=’(&(objectClass=group) (cn=$cngroupe))’
Ta variable $cngroupe ne va pas être interprètée, ta recherche va donc se faire sur un object ldap \"$cngroupe\".
De plus, tu instancies ta variable $cngroupe
Tu spécifies donc déja \"CN=nom_du_groupe\" dans cette variable, ne pas mettre encore donc dans le filtre \"CN=\"$cngroupe=\"CN=\" + $v.groupe
Essaie cela:
[code:1]$objFind.filter=’(&(objectClass=group) ('+$cngroupe+'))’[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- michault
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 128
- Remerciements reçus 0
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.
@+
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Problème avecFindOne() (Résolu)