none
Code Signature Outlook RRS feed

  • Question

  • Bonjour a tous et à toutes,

    j'aimerai unifier notre signature Outlook mais je n'arrive pas à récupérer les noms et prénoms depuis l'AD avez vous une idée?

    Merci pour votre aide

    =====================================================================================

    Voici le code :

    ======================================================================================

    Set objSysInfo = CreateObject("ADSystemInfo")
    Set WshShell = CreateObject("WScript.Shell")
       
    strUserName = objSysInfo.UserName ' Nom de l'utilisateur connecté

    Set objUser = GetObject("LDAP://IP.AD" & strUserName) ' Connexion à l'annuaire LDAP

    ' On fixe les variables avec les informations que l'on désire
    strNom = objUser.FirstName & " " & objUser.LastName ' Correspond aux champs PRENOM et NOM des propriétés d'un objet AD
    strTitre = objUser.Description ' Correspond au champ DESCRIPTION des propriétés d'un objet AD, on l'utilisera pour définir la fontion de l'utilisateur
    strTel = objUser.TelephoneNumber ' Correspond au champ TELEPHONE
    strMobile = objUser.Mobile ' Correspond au champ PORTABLE
    strStandard = ""
    strPageWeb = ""

    Dim UserDataPath, FolderLocation, oFSO
    UserDataPath = WshShell.ExpandEnvironmentStrings("%appdata%")
    File = UserDataPath &"\Microsoft\Signatures\signature.htm"


    Set oFSO = CreateObject("Scripting.FileSystemObject")

    If not oFSO.FileExists(File) Then

    ' On créé la signature générale, c'est-à-dire, celle utilisée dans les nouveaux messages
    Set objWord = CreateObject("Word.Application")
    Set objDoc = objWord.Documents.Add()
    Set objSelection = objWord.Selection
    Set objEmailOptions = objWord.EmailOptions
    Set objSignatureObject = objEmailOptions.EmailSignature
    Set objSignatureEntries = objSignatureObject.EmailSignatureEntries

       objSelection.TypeText Chr(11)
       objSelection.Font.Name = "Calibri (Corps)"
       objSelection.Font.Size = 11
       objSelection.Font.Color = RGB(0,0,0)
       
       objSelection.TypeParagraph()
       objSelection.Font.Bold = True
       objSelection.TypeText strNom
       objSelection.Font.Bold = False
       objSelection.TypeText Chr(11)
       objSelection.Font.Italic = True
       objSelection.TypeText "Votre fonction (à modifier)"
       objSelection.Font.Italic = False
       objSelection.TypeText Chr(11)
       objSelection.InlineShapes.AddPicture "C:\Windows\Web\Wallpaper\ash-horizontal.jpg"
       objSelection.TypeText Chr(11)
       objSelection.TypeText ""
       objSelection.TypeText Chr(11)
       objSelection.TypeText ""
       objSelection.TypeText Chr(11)

       ' Si l'utilisateur à un numéro de téléphone, on l'affiche, sinon on affiche rien.
       IF (strTel) THEN
          objSelection.Font.Bold = True
          objSelection.TypeText "Tél. : "
          objSelection.Font.Bold = False
          objSelection.TypeText strTel
          objSelection.TypeText Chr(11)
       ELSE
          objSelection.Font.Bold = True
          objSelection.TypeText "Tél. : "
          objSelection.Font.Bold = False
          objSelection.TypeText strStandard
          objSelection.TypeText Chr(11)   
       END IF

       ' Si l'utilisateur à une page Web, on l'affiche, sinon on affiche rien.
       IF (strFax) THEN
          objSelection.Font.Bold = True
          objSelection.TypeText "Page Web : "
          objSelection.Font.Bold = False
          objSelection.TypeText strPageWeb
          objSelection.TypeText Chr(11)
       ELSE
          objSelection.Font.Bold = True
          objSelection.TypeText "Page Web : "
          objSelection.Font.Bold = False
          objSelection.TypeText strPageWeb
          objSelection.TypeText Chr(11)
       END IF

       ' Si l'utilisateur à un numéro de mobile, on l'affiche, sinon on affiche rien.
       IF (strMobile) THEN
          objSelection.Font.Bold = True
          objSelection.TypeText "Mobile : "
          objSelection.Font.Bold = False
          objSelection.TypeText strMobile
          objSelection.TypeText Chr(11)
       END IF

       objSelection.Font.Name = "Webdings"
       objSelection.Font.Size = 9
       objSelection.Font.Color = RGB(34,139,34)
       objSelection.TypeText "ü "
       objSelection.Font.Name = "Lucida Console"
       objSelection.TypeText "Merci de penser à l’environnement avant d’imprimer cet email."


       ' On nomme cette signature
       Set objSelection = objDoc.Range()
          objSignatureEntries.Add "", objSelection
          objSignatureObject.NewMessageSignature = ""
          objSignatureObject.ReplyMessageSignature = ""
          objDoc.Saved = True
          objWord.Quit
    ======================================================================================

    lundi 9 février 2015 08:14

Réponses

  • Je viens de tester ton script en entier.

    Ton problème se situe sur la ligne suivante :

    Set objUser = GetObject("LDAP://IP.AD" & strUserName) 

    Ta variable strUserName contient le chemin LDAP complet (CN=XXXX,OU=XXX,DC=XXX,DC=XXX). Tu ne dois pas ajouter le domaine ou l'IP de ton LDAP.

    Essayes avec la ligne corrigée :

    Set objUser = GetObject("LDAP://" & strUserName)
    
    Avec cette correction, ton script fonctionne chez moi.
    lundi 9 février 2015 10:32
  • Re-bonjour,

    Je ne sais pas sur quoi tu t'es basé pour écrire ce script, mais il est un peu à côté de la plaque !

    Voici les propriété que j'utilise et qui fonctionnent :

       strFirstName  = objUser.givenName
       strLastName   = objUser.sn
       strFullName   = objUser.displayname
       strTitle      = objUser.title
       strEmail      = LCase(objuser.emailaddress)
       strCompany    = objuser.Company
       strTel        = objuser.telephoneNumber
       strFax        = objuser.facsimileTelephoneNumber
       strIPPhone    = objuser.ipPhone
       strGSM        = objuser.mobile
       strDepartment = objUser.Department
    

    Avec ça, tu devrais avoir tout se dont tu as besoin !
    lundi 9 février 2015 10:46

Toutes les réponses

  • Bonjour Emmanuel,

    As-tu essayé objUser.givenName et objUser.sn respectivement pour "FirstName" et "LastName" ?

    Tu as à disposition la propriété displayName, qui correspond au nom affiché dans le menu démarrer de l'utilisateur aussi.

    Cordialement,

    Sylvain

    lundi 9 février 2015 08:59
  • Bonjour Sylvain,

    merci pour ta réponse je vais essayer tout ça :)

    Cordialement

    Emmanuel

    lundi 9 février 2015 09:04
  • Merci de revenir vers nous pour nous dire si cela a fonctionné et de marquer le thread comme résolu!
    lundi 9 février 2015 09:09
  • Re bonjour,

    cela ne marche pas! Au niveau de quelle ligne je dois modifier le code?

    Merci

    lundi 9 février 2015 09:59
  • Au niveau de la ligne suivante :

    strNom = objUser.givenName & " " & objUser.sn

    Pour t'aider, voici un petit script qui lit tous les utilisateurs de l'OU "Utilisateurs" dans un domaine "TONDOMAINE.loc" et qui affiche les noms et prénoms des utilisateurs :

       Dim objSysInfo, objUser
    
       Set objSysInfo = CreateObject("ADSystemInfo")
       Set oDomain = GetObject("LDAP://OU=Utilisateurs,DC=TONDOMAINE,DC=loc")
    
       For Each oUser in oDomain
    
          Set objUser    = GetObject("LDAP://" & oUser.Get("distinguishedName"))
          wscript.echo "" & oUser.givenName & " " & oUser.sn
    
       Next



    lundi 9 février 2015 10:13
  • Bonjour,

    ça ne marche pas! Je continue de voir ça. Merci pour ton aide en tout cas

    Cordialement

    Emmanuel

    lundi 9 février 2015 10:24
  • Je viens de tester ton script en entier.

    Ton problème se situe sur la ligne suivante :

    Set objUser = GetObject("LDAP://IP.AD" & strUserName) 

    Ta variable strUserName contient le chemin LDAP complet (CN=XXXX,OU=XXX,DC=XXX,DC=XXX). Tu ne dois pas ajouter le domaine ou l'IP de ton LDAP.

    Essayes avec la ligne corrigée :

    Set objUser = GetObject("LDAP://" & strUserName)
    
    Avec cette correction, ton script fonctionne chez moi.
    lundi 9 février 2015 10:32
  • Super ça marche, merci pour ton aide efficace.

    J'en étais pas loin ;)

    Cordialement

    Emmanuel

    lundi 9 février 2015 10:37
  • A ton service!
    lundi 9 février 2015 10:38
  • Par contre, je n'ai pas la fonction, ni le mail de la personne qui apparaît!
    lundi 9 février 2015 10:41
  • Re-bonjour,

    Je ne sais pas sur quoi tu t'es basé pour écrire ce script, mais il est un peu à côté de la plaque !

    Voici les propriété que j'utilise et qui fonctionnent :

       strFirstName  = objUser.givenName
       strLastName   = objUser.sn
       strFullName   = objUser.displayname
       strTitle      = objUser.title
       strEmail      = LCase(objuser.emailaddress)
       strCompany    = objuser.Company
       strTel        = objuser.telephoneNumber
       strFax        = objuser.facsimileTelephoneNumber
       strIPPhone    = objuser.ipPhone
       strGSM        = objuser.mobile
       strDepartment = objUser.Department
    

    Avec ça, tu devrais avoir tout se dont tu as besoin !
    lundi 9 février 2015 10:46
  • OK, merci beaucoup Sylvain.

    Je débute ;) c'est pour ça, c'est pas parfait

    Mais merci pour ton aide précieuse

    Cordialement

    Emmanuel

    lundi 9 février 2015 10:49