[exchange 2003] créer une adresse par script

Le
Jerome
Bonjour,

Quelqu'un peut'il m'expliquer comment créer une adresse de messagerie d'un
contact en passant par la ligne de commande ? Je sais le faire par
l'interface graphique ("tâches exchange") mais pas par script.

Merci pour votre aide
Jérôme
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Stephen ROUX
Le #1876365
Bonjour,

Il faut utiliser des interfaces spécifiques pour cela, que l'on appelle via
des scripts généralement.

Je peux vous indiquer des scripts de ce type mais pourvez vous détailler
votre besoin ?

"Jerome" news:uy0UJR$
Bonjour,

Quelqu'un peut'il m'expliquer comment créer une adresse de messagerie d'un
contact en passant par la ligne de commande ? Je sais le faire par
l'interface graphique ("tâches exchange") mais pas par script.

Merci pour votre aide
Jérôme





Jerome
Le #1876529
J'ai X contacts a créer : j'utilise "dsadd contact" puis "dsmod group" pour
créer un contact et le rajouter dans une liste de distribution. L
l'option "-email " dans "dsadd contact" ne crée pas
automatiquement la boite aux lettres dans exchange. Il me faut pour cela une
autre commande que je ne connais pas. J'ai trouver des scripts sur internet
pour exchange 2007 mais là je suis sous 2003 : d'où ma demande initiale...

RAPPEL : je ne veux pas utiliser le mode graphique (MMC) car j'ai plusieurs
centaines de contacts a générer.

Jérôme

"Stephen ROUX" news: O9isec$
Bonjour,

Il faut utiliser des interfaces spécifiques pour cela, que l'on appelle
via des scripts généralement.

Je peux vous indiquer des scripts de ce type mais pourvez vous détailler
votre besoin ?

"Jerome" news:uy0UJR$
Bonjour,

Quelqu'un peut'il m'expliquer comment créer une adresse de messagerie
d'un contact en passant par la ligne de commande ? Je sais le faire par
l'interface graphique ("tâches exchange") mais pas par script.

Merci pour votre aide
Jérôme








Stephen ROUX
Le #1876528
Ok.

Vous trouverez ci joint un script vbs qui prend comme paramètre un fichier
texte contenant les logins des comptes à activer pour la messagerie.
Il faut remplacer les valeurs de DCTOUSE et sHomeMDBUrl bien sûr.

Il suffit de copier coller le texte suivant dans un fichier
createmailbox.wsf
Ensuite, il suffit de faire en ligne de commande : cscript createmailbox.wsf
nomdufichiertexte.txt

C'est succinct comme explications mais j'espère que ca ira.

Bon courage.

<package>
<script language="VBScript">

CONST DCTOUSE = "fqdndudclocal"

Dim Array


On Error Resume Next

' ------------------------------------------------
' Est-ce qu'on passe un fichier en paramètre
' ------------------------------------------------

If WScript.Arguments.Count > 0 Then
sSourceFile = WScript.Arguments.Item(0)
Else
WScript.Quit(1)
End If

WScript.Echo "Création des BAL à partir de " & sSourceFile


' ----------------------------
' On initialise les objets
' ----------------------------

set oFS = CreateObject("Scripting.FileSystemObject")
set oInputFile = oFS.OpenTextFile(sSourceFile)

Set oDNSInfo = CreateObject("ADSystemInfo")
Set oNTInfo = CreateObject("WinNTSystemInfo")
Set oRootDSE = GetObject("LDAP://RootDSE")

sServer = oNTInfo.ComputerName
sDNSDomainName = oDNSInfo.DomainDNSName
sDomainName = oRootDSE.Get("defaultNamingContext")

Set oCommand = CreateObject("ADODB.Command")
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Provider = "ADsDSOObject"
oConnection.Open "Active Directory Provider"
oCommand.ActiveConnection = oConnection

sBase = "<LDAP://" & sDomainName & ">"
sFilter =
"(&(objectClass=user)(objectCategory=person)(sAMAccountName=%USERLOGIN%))"
sAttributes = "ADsPath"
sQuery = sBase & ";" & sFilter & ";" & sAttributes & ";subtree"

sHomeMDBUrl =
"CN=nomdelabanque,CN=nomdusg,CN=InformationStore,CN=nomduserveur,CN=Servers,CN=nomdugroupeadministration,CN­ministrative
Groups,CN=nomorg,CN=Microsoft
Exchange,CN=Services,CN=Configuration,DC=nwtraders,DC=msft"

Err.Clear
Set oExchangeServer = CreateObject("CDOEXM.ExchangeServer")
If Err.Number <> 0 Then WScript.Quit(8)

' ----------------------------
' On parse le fichier
' ----------------------------

Do Until oInputFile.AtEndOfStream

sUserName = ""

array = Split(oInputFile.ReadLine, ";")

If Len(array(1)) > 0 Then

sUserName = array(1)
sNewQuery = Replace(sQuery, "%USERLOGIN%", sUserName)

oCommand.CommandText = sNewQuery
oCommand.Properties("Page Size") = 100
oCommand.Properties("Timeout") = 30
oCommand.Properties("Cache Results") = False

Set oRecordSet = oCommand.Execute

If Not oRecordSet.EOF Then

sADsPath = oRecordSet.Fields("ADSPath")
sADsPath = Replace(sADsPath, "LDAP://", "LDAP://" & DCTOUSE & "/")

WScript.Echo sADsPath

Set oUser = GetObject(sADsPath)
Set oMailboxStore = oUser
Set oRecipient = oUser

Err.Clear
oMailboxStore.CreateMailbox sHomeMDBUrl

If Err.Number = 0 Then
oUser.Put "msExchHideFromAddressLists", FALSE
Err.Clear
oUser.SetInfo
End If

If Err.Number = 0 Then
oMailboxStore.EnableStoreDefaults = TRUE
oRecipient.OutgoingLimit = -1
oRecipient.IncomingLimit = -1
Err.Clear
oUser.SetInfo
End If

If Err.Number = 0 Then
WScript.Echo oUser.DisplayName & " : Ok"
Else
WScript.Echo oUser.DisplayName & "Erreur --> " & Chr(13) &
Err.Number & Chr(13) & Err.Description
End If

End If

End If

Loop

</script>
</Job>
</package>



"Jerome" news:u3hi6$$
J'ai X contacts a créer : j'utilise "dsadd contact" puis "dsmod group"
pour créer un contact et le rajouter dans une liste de distribution. L
l'option "-email " dans "dsadd contact" ne crée pas
automatiquement la boite aux lettres dans exchange. Il me faut pour cela
une autre commande que je ne connais pas. J'ai trouver des scripts sur
internet pour exchange 2007 mais là je suis sous 2003 : d'où ma demande
initiale...

RAPPEL : je ne veux pas utiliser le mode graphique (MMC) car j'ai
plusieurs centaines de contacts a générer.

Jérôme

"Stephen ROUX" news: O9isec$
Bonjour,

Il faut utiliser des interfaces spécifiques pour cela, que l'on appelle
via des scripts généralement.

Je peux vous indiquer des scripts de ce type mais pourvez vous détailler
votre besoin ?

"Jerome" news:uy0UJR$
Bonjour,

Quelqu'un peut'il m'expliquer comment créer une adresse de messagerie
d'un contact en passant par la ligne de commande ? Je sais le faire par
l'interface graphique ("tâches exchange") mais pas par script.

Merci pour votre aide
Jérôme












Jerome
Le #1876684
Merci, je vais essayer.

Jérôme


"Stephen ROUX" news:
Ok.

Vous trouverez ci joint un script vbs qui prend comme paramètre un fichier
texte contenant les logins des comptes à activer pour la messagerie.
Il faut remplacer les valeurs de DCTOUSE et sHomeMDBUrl bien sûr.

Il suffit de copier coller le texte suivant dans un fichier
createmailbox.wsf
Ensuite, il suffit de faire en ligne de commande : cscript
createmailbox.wsf nomdufichiertexte.txt

C'est succinct comme explications mais j'espère que ca ira.

Bon courage.

<package>
<script language="VBScript">

CONST DCTOUSE = "fqdndudclocal"

Dim Array


On Error Resume Next

' ------------------------------------------------
' Est-ce qu'on passe un fichier en paramètre
' ------------------------------------------------

If WScript.Arguments.Count > 0 Then
sSourceFile = WScript.Arguments.Item(0)
Else
WScript.Quit(1)
End If

WScript.Echo "Création des BAL à partir de " & sSourceFile


' ----------------------------
' On initialise les objets
' ----------------------------

set oFS = CreateObject("Scripting.FileSystemObject")
set oInputFile = oFS.OpenTextFile(sSourceFile)

Set oDNSInfo = CreateObject("ADSystemInfo")
Set oNTInfo = CreateObject("WinNTSystemInfo")
Set oRootDSE = GetObject("LDAP://RootDSE")

sServer = oNTInfo.ComputerName
sDNSDomainName = oDNSInfo.DomainDNSName
sDomainName = oRootDSE.Get("defaultNamingContext")

Set oCommand = CreateObject("ADODB.Command")
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Provider = "ADsDSOObject"
oConnection.Open "Active Directory Provider"
oCommand.ActiveConnection = oConnection

sBase = "<LDAP://" & sDomainName & ">"
sFilter =
"(&(objectClass=user)(objectCategory=person)(sAMAccountName=%USERLOGIN%))"
sAttributes = "ADsPath"
sQuery = sBase & ";" & sFilter & ";" & sAttributes & ";subtree"

sHomeMDBUrl =
"CN=nomdelabanque,CN=nomdusg,CN=InformationStore,CN=nomduserveur,CN=Servers,CN=nomdugroupeadministration,CN­ministrative
Groups,CN=nomorg,CN=Microsoft
Exchange,CN=Services,CN=Configuration,DC=nwtraders,DC=msft"

Err.Clear
Set oExchangeServer = CreateObject("CDOEXM.ExchangeServer")
If Err.Number <> 0 Then WScript.Quit(8)

' ----------------------------
' On parse le fichier
' ----------------------------

Do Until oInputFile.AtEndOfStream

sUserName = ""

array = Split(oInputFile.ReadLine, ";")

If Len(array(1)) > 0 Then

sUserName = array(1)
sNewQuery = Replace(sQuery, "%USERLOGIN%", sUserName)

oCommand.CommandText = sNewQuery
oCommand.Properties("Page Size") = 100
oCommand.Properties("Timeout") = 30
oCommand.Properties("Cache Results") = False

Set oRecordSet = oCommand.Execute

If Not oRecordSet.EOF Then

sADsPath = oRecordSet.Fields("ADSPath")
sADsPath = Replace(sADsPath, "LDAP://", "LDAP://" & DCTOUSE & "/")

WScript.Echo sADsPath

Set oUser = GetObject(sADsPath)
Set oMailboxStore = oUser
Set oRecipient = oUser

Err.Clear
oMailboxStore.CreateMailbox sHomeMDBUrl

If Err.Number = 0 Then
oUser.Put "msExchHideFromAddressLists", FALSE
Err.Clear
oUser.SetInfo
End If

If Err.Number = 0 Then
oMailboxStore.EnableStoreDefaults = TRUE
oRecipient.OutgoingLimit = -1
oRecipient.IncomingLimit = -1
Err.Clear
oUser.SetInfo
End If

If Err.Number = 0 Then
WScript.Echo oUser.DisplayName & " : Ok"
Else
WScript.Echo oUser.DisplayName & "Erreur --> " & Chr(13) &
Err.Number & Chr(13) & Err.Description
End If

End If

End If

Loop

</script>
</Job>
</package>



"Jerome" news:u3hi6$$
J'ai X contacts a créer : j'utilise "dsadd contact" puis "dsmod group"
pour créer un contact et le rajouter dans une liste de distribution. L
l'option "-email " dans "dsadd contact" ne crée pas
automatiquement la boite aux lettres dans exchange. Il me faut pour cela
une autre commande que je ne connais pas. J'ai trouver des scripts sur
internet pour exchange 2007 mais là je suis sous 2003 : d'où ma demande
initiale...

RAPPEL : je ne veux pas utiliser le mode graphique (MMC) car j'ai
plusieurs centaines de contacts a générer.

Jérôme

"Stephen ROUX" news: O9isec$
Bonjour,

Il faut utiliser des interfaces spécifiques pour cela, que l'on appelle
via des scripts généralement.

Je peux vous indiquer des scripts de ce type mais pourvez vous détailler
votre besoin ?

"Jerome" news:uy0UJR$
Bonjour,

Quelqu'un peut'il m'expliquer comment créer une adresse de messagerie
d'un contact en passant par la ligne de commande ? Je sais le faire par
l'interface graphique ("tâches exchange") mais pas par script.

Merci pour votre aide
Jérôme















Publicité
Poster une réponse
Anonyme