Question exception lors de la récupération ......

Plus d'informations
il y a 17 ans 6 mois #2811 par michault
J’ai un script pour créer des utilisateurs à partir d’un fichier .csv.
Le 1er fonctionne très bien.


[code:1]
# Récupération fichier paramètres
$var=Import-Csv 'c:\PWRSHELL\ListeUser.csv'

#Spécifier l'unité d'organisation
$objOU= [ADSI]\"LDAP://localhost:389/OU=DSI,OU=lyon,OU=comptes,DC=xxxx,DC=org\"

$domain = \",DC=xxxx,DC=org\"
$objGroupe = [ADSI]\"LDAP://localhost:389/CN=G_Collaborateurs DSI,OU=groupes,DC=xxxx,DC=org\"
$dont_expire_password = 65536

foreach($v in $var)
{
$nomcomplet= $v.prenom+\" \"+$v.nom
$cn=\"CN=\" + $nomcomplet
$user = \"LDAP://localhost:389/\" + $cn +\",OU=DSI,OU=lyon,OU=comptes,DC=xxxx,DC=org\"
$objUser= $objOU.Create(\"user\", $cn)

# sAMAccountName est le seul attribut obligatoire
# à spécifier pour créer un compte
$objUser.put(\"sAMAccountName\", $v.nom)
# à spécifier pour bénéficier d'une ouverture de session Kerberisée
$objUser.put(\"userprincipalName\", $v.nom)
# prénom
$objUser.put(\"givenName\", $v.prenom)
# nom
$objUser.put(\"sn\", $v.nom)
# Numéro de téléphone
$objUser.put(\"telephoneNumber\", $v.tel)
# Description
$objUser.put(\"description\", $v.description)
# Nom affiché : nom qui sera visible dans l'annuaire Exchange
$objUser.put(\"displayName\", $nomcomplet)
$objUser.SetInfo()
# Activation du compte après création
$objUser.psbase.InvokeSet('AccountDisabled',$false)
# Définition du mot de passe
$objUser.setpassword($v.password)
# le mot de passe n'expire jamais
$objUser.useraccountcontrol= $dont_expire_password

$objUser.SetInfo()

# Membre de
$ObjGroupe.Add($user)

write-host \"User \" $nomcomplet \" créé avec succès!\"
}[/code:1]

Le 2ème provoque le message d’erreur suivant :
Exception lors de la récupération du membre « create » : L’objet ne se trouve pas sur le serveur.
J’essaye contrairement au 1er script de ne plus avoir lUO en dur mais à partir du fichier .csv auquel j’ai rajouté une colonne.


[code:1]
# Récupération fichier paramètres
$var=Import-Csv 'c:\PWRSHELL\ListeUser.csv'

#Spécifier l'unité d'organisation

$domain = \",DC=xxxx,DC=org\"
$dont_expire_password = 65536

foreach($v in $var)
{
$nomcomplet= $v.prenom+\" \"+$v.nom
$cn=\"CN=\" + $nomcomplet
$OU=\"LDAP://localhost:389/OU=\" + $v.ou + $domain
$objOU=[ADSI] $OU

$objUser= $objOU.create(\"user\", $cn)

$objUser.SetInfo()

# sAMAccountName est le seul attribut obligatoire
# à spécifier pour créer un compte
$objUser.put(\"sAMAccountName\", $v.nom)

# à spécifier pour bénéficier d'une ouverture de session Kerberisée
$objUser.put(\"userprincipalName\", $v.nom)

# prénom
$objUser.put(\"givenName\", $v.prenom)

# nom
$objUser.put(\"sn\", $v.nom)

# Numéro de téléphone
$objUser.put(\"telephoneNumber\", $v.tel)

# Description
$objUser.put(\"description\", $v.description)

# Nom affiché : nom qui sera visible dans l'annuaire Exchange
$objUser.put(\"displayName\", $nomcomplet)

$objUser.SetInfo()

# Activation du compte après création
$objUser.psbase.InvokeSet('AccountDisabled',$false)

# Définition du mot de passe
$objUser.setpassword($v.password)

# le mot de passe n'expire jamais
$objUser.useraccountcontrol= $dont_expire_password

$objUser.SetInfo()



# Membre de
$user = \"LDAP://localhost:389/\" + $cn +\",OU=\" +$v.ou +$domain
$ObjGroupe.Add($user)

write-host \"User \" $nomcomplet \" créé avec succès!\"
}[/code:1]

Quelqu’un peut-il m’aider ?
Merci d’avance
<br><br>Message édité par: Arnaud, à: 17/09/08 22:24

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

Plus d'informations
il y a 17 ans 6 mois #2812 par Robin Lemesle
Salut chm69.

Alors, deux questions bêtes mais qui peuvent éviter de tourner en rond pour rien :

- Tes OU sont bien déjà créées ?
- Ton objet $objOU est-il Null ?<br><br>Message édité par: Robin, à: 17/09/08 15:22

Robin MVP PowerShell

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

Plus d'informations
il y a 17 ans 6 mois #2813 par michault
Salut Robin

Quelle réactivité!

Mes OU sont créées.
Ma variable $OU est bien chargée par contre je ne sais pas si $objOU = [ADSI] $OU renvoi une valeur Null

Comment puis-je m'en assurer?
Voilà le message d'erreur suivant:
+ $objUser = &lt;&lt;&lt;&lt; $objOU.create(\&quot;user\&quot;, $cn)
Vous ne pouvez pas appeler de méthode sur une expression ayant la valeur Null.<br><br>Message édité par: chm69, à: 17/09/08 17:42

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

Plus d'informations
il y a 17 ans 6 mois #2814 par Arnaud Petitjean
Salut Chm69 et bienvenue sur le forum !

Il doit y avoir probablement un problème avec ton import de fichier CSV. La structure n'est peut-être pas correcte.
Pourrais tu en poster un extrait dans le forum stp ?

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 17 ans 6 mois #2815 par michault
Salut Arnaud,

Comme demandé voilà mon fichier csv

nom,prenom,tel,description,password,ou
nom1,prenom1,0478111111,description1,password1,users
nom2,prenom2,0478111112,description2,password2,users
nom3,prenom3,0478111113,description3,password3,users

Contrairement à mon 1er script, j'ai voulu faire un test avec l'OU Users

@+<br><br>Message édité par: chm69, à: 18/09/08 08:21

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

Plus d'informations
il y a 17 ans 5 mois #2842 par michault
Je n'arrive toujours pas à passer mes OU à partir du fichier csv lors de la création de mes users.

Quelqu'un a-t-il une idée?

Merci d'avance

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

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