Question Exchange 2003 creation boîte mail

Plus d'informations
il y a 14 ans 8 mois #1403 par Mickael Hornung
Bonjour à tous et Bonne Année 2008 ;) !

Je vous expose mon problème :

Je tente désespérement d'ecrire un script pour créer un utilisateurs ainsi que la boîte mail correspondant à ce dernier.

Pour l'utilisateur, ça roule mais pour ce qui concerne la creation de la boite sous Exchange 2003, c'est la grosse galère.

Je me suis inspiré de cette page :

www.codeguru.com/csharp/csharp/cs_misc/e.../article.php/c14009/

Voici un extrait de mon code :
[code:1]
## recherche de l'utilisateur précèdement créé ##
$ldapQuery = \"(SAMAccountName=$cn)\"
$de = new-object system.directoryservices.directoryentry
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findone()

[string]$dn = $complist.properties.distinguishedname
$domain_person = New-Object System.DirectoryServices.DirectoryEntry(\"$DOMAIN/$dn\" , $DOMAINE_SERVICE_ACCOUNT , $DOMAIN_SERVICE_ACCOUNT_PASSWORD)

########### EXCHANGE_MAIL STORES #############

$EXCHANGE_MS = \"CN=Banque de boîtes aux lettres (EXCHANGE),CN=Premier groupe de stockage,CN=InformationStore,CN=EXCHANGE,CN=Servers,CN=premier groupe d'administration,CN=Administrative Groups,CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=XXXXX,DC=YYYYY\"

######### CDOEXM REFERENCES ########

$ASSEMBLY = [Reflection.Assembly]::LoadFile(\"C:\Program Files\Exchsrvr\bin\Interop.CDOEXM.dll\"«»)
$ASSEMBLY_TYPE = $ASSEMBLY.GetType(\"CDOEXM.IMailboxStore\"«»)
$BINDING_FLAGS = [Reflection.BindingFlags] \"Public,InvokeMethod\"

$ASSEMBLY_TYPE.invokeMember(\"CreateMailbox\",$BINDING_FLAGS,$null,$domain_person.psbase.nativeobject,$EXCHANGE_MS)
$domain_person.psbase.commitchanges
[/code:1]

Voici l'erreur retournée :

[code:1]
Exception lors de l'appel de « InvokeMember » avec « 5 » argument(s) : « Méthode 'CDOEXM.IMailboxStore.CreateMailbox' introuvable. »
[/code:1]

Il me dit qu'il ne connait pas la méthode, là je sèche.

Merci d'avances pour votre aide ! :)

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

Plus d'informations
il y a 14 ans 8 mois #1407 par Robin Lemesle
Salut Kinder et bonne année !

On peut remarquer dans ton code que tu utilises la variable $DOMAINE_SERVICE_ACCOUNT , je pense qu'il faut la remplacer par $DOMAIN_SERVICE_ACCOUNT (sans \"E\"). De plus, on ne peut le voir dans ton programme, mais as-tu correctement initialisé ces valeurs au préalable ?

Robin MVP PowerShell

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

Plus d'informations
il y a 14 ans 8 mois #1408 par Mickael Hornung
Salut Robin !

Tout d'abord merci pour ton aide ! :)

Bien vu pour la faute ;), j'ai corrigé ça mais sans succès ...

J'ai bien entendu initialiser les variable au début de mon code comme ceci :

[code:1]
$DOMAIN = \"LDAP://EXCHANGE.xxxxxxx.xxxxxxx:389\"
$DOMAIN_SERVICE_ACCOUNT = \"administrateur\"
$DOMAIN_SERVICE_ACCOUNT_PASSWORD = \"xxxxxxx\"
[/code:1]

Ce que je ne comprend pas, c'est le fait que powershell me dit que la méthode est inconnue sachant qu'apparement la librairie Interop.CDOEXM.dll se charge correctement :blink: (j'ai du télécharger cette librairie sur un site car avec CDOEXM.dll cela ne marchait pas).

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

Plus d'informations
il y a 14 ans 8 mois #1409 par bordin
Salut Kinder,
Exchange 2007 est basé sur PS (c'est du PS enrobé de GUI) ! Est ce que l'on peut faire de même avec Exchange 2003, ie administration du serveur avec PS?
Je n'ai pas encore essayé. Si çà marche, je suis preneur.

A+

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

Plus d'informations
il y a 14 ans 8 mois #1414 par Arnaud Petitjean
Bonjour,

Eh non malheureusement il n'y a pas de commandelettes pour Exchange 2003. A moins de se les faire nous-même ! Ou de migrer sous Exchange 2007...

D'ailleurs dès que Kinder aura réglé son problème nous en ferons un script ou une fonction (pas encore une commandelette, pour cela il faudra attendre la v2) qui intégrera la bibliothèque.

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 ou d'un conseil ?

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

Plus d'informations
il y a 14 ans 8 mois #1415 par Arnaud Petitjean
Kinder,

Je me demande s'il ne faudrait pas installer les outils d'administration Exchange 2003 sur ta machine (d'où tu lances ton script PS) car si cela se trouve, la DLL est mal reconnue par le système. Je sais que certaines fois il faut les enregistrer dans la base de registres avec Regsvr32.

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 ou d'un conseil ?

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

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