Bannière

Métadonnées du document:
[ Auteur : Clockover ][ Création le : 27/06/2012 ][ Dernière modification le : 03/02/2013 ][ Version : 1.1 ]

Générer des signatures Outlook normalisées [VBS]

Etat du script: Fonctionnel

Présentation:

Ce script VBS permet de déployer des signatures normalisées basées sur les données des attributs des objets utilisateurs de Active Directory.
Pour cela, les fichiers default.* (txt/rtf/htm) sont créés dans %APPDATA%\Microsoft\Signatures\ et la signature est mise par défaut dans Outlook.

Pour adapter la signature, je conseille de créer la signature modèle depuis un Outlook et t'intégrer les lignes brut des fichiers générés (en modifiant uniquement les données variables).
Il ne faut pas être impressionné par le nombre de ligne que peut comporter un fichier .rtf ou .htm.
Le script devra ensuite être appliqué par GPO sur les objets utilisateurs.

Le script:

'Deploiement signature Outlook locale et normalisée avec les données des attributs AD
'20111013 by Clockover

Function GetUserDN(BYVAL UN, BYVAL DN)
Set ObjTrans = CreateObject("NameTranslate")
objTrans.init 1, DN
objTrans.set 3, DN & "\" & UN
strUserDN = objTrans.Get(1)
GetUserDN = strUserDN
End Function

Set objUser = CreateObject("WScript.Network")
userName = objUser.UserName
domainName = objUser.UserDomain

Set objLDAPUser = GetObject("LDAP://" & GetUserDN(userName,domainName))

'Préparation à la création des fichiers de signature
Dim objFSO, objWsh, appDataPath, pathToCopyTo, plainTextFile, plainTextFilePath, richTextFile, richTextFilePath, htmlFile, htmlFilePath
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWsh = CreateObject("WScript.Shell")
appDataPath = objWsh.ExpandEnvironmentStrings("%APPDATA%")
pathToCopyTo = appDataPath & "\Microsoft\Signatures\"
regPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\00000003"	'Chemin vers la ruche registre définissant la signautre par défaut
'Suppression des signatures pré-existantes
objFSO.DeleteFile(pathToCopyTo & "\*.*")

'Création du fichier .txt
plainTextFilePath = pathToCopyTo & "Default.txt"
Set plainTextFile = objFSO.CreateTextFile(plainTextFilePath, TRUE)
plainTextFile.WriteLine(objLDAPUser.DisplayName)
plainTextFile.WriteLine(objLDAPUser.title)
plainTextFile.WriteLine(objLDAPUser.company)
plainTextFile.WriteLine(objLDAPUser.streetAddress)
plainTextFile.WriteLine("Tel: " & objLDAPUser.telephoneNumber)
plainTextFile.WriteLine("GSM : " & objLDAPUser.mobile)
plainTextFile.WriteLine("Fax : " & objLDAPUser.facsimileTelephoneNumber)
plainTextFile.WriteLine("Email : " & objLDAPUser.mail)
plainTextFile.WriteLine("Web :")
plainTextFile.Close

'Création du fichier .rtf
richTextFilePath = pathToCopyTo & "Default.rtf"
Set richTextFile = objFSO.CreateTextFile(richTextFilePath, TRUE)
richTextFile.WriteLine("{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1036\deflangfe1036\themelang1036\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset1\fprq2{\*\panose 02040503050406030204}Cambria Math;}")
richTextFile.WriteLine("\par \hich\af31506\dbch\af31505\loch\f31506 Tel\~:\~\~\~\~\~\~\~\~\~\~\~\~\~" & objLDAPUser.telephoneNumber & "}{\rtlch\fcs1 \af31507\afs16 \ltrch\fcs0 \fs16\cf18\lang1033\langfe1036\langnp1033\insrsid4004981")
richTextFile.WriteLine("\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;")
richTextFile.Close

'Création du fichier .html
htmlFilePath = pathToCopyTo & "Default.htm"
Set htmlFile = objFSO.CreateTextFile(htmlFilePath, TRUE)
htmlfile.WriteLine("< html xmlns:o=""urn:schemas-microsoft-com:office:office""	")
htmlfile.WriteLine("mso-ansi-language:EN-US'>" & objLDAPUser.title)
htmlfile.close

'====================================================================== Modification registre
'Mettre la nouvelle signature par défaut
'Modification du chemin contenant la signature dans la base de registre basée sur la version d'outlook
Const HKEY_CURRENT_USER = &H80000001
Set objRegistry = GetObject("Winmgmts:root\default:StdRegProv")

uBinary = Array(&H44, &H00, &H65, &H00, &H66, &H00, &H61, &H00, &H75, &H00, &H6C, &H00, &H74, &H00, &H00, &H00)
Return = objRegistry.SetBinaryValue(HKEY_CURRENT_USER, regPath, "New Signature", uBinary)
Return = objRegistry.SetBinaryValue(HKEY_CURRENT_USER, regPath, "Reply-Forward Signature", uBinary)

TODO Liste:

-Vide

Historique:

flecheflecheVersion 0.1 (2011/10/13)
-Création du script.


Il y a 0 commentaire(s) sur ce sujet.
L'intégralité du portail est placé sous licence Creative Commons License NC v2.0 (sauf mentions contraires indiquées sur les pages et/ou documents concernés !). Version: 4.2
Ce portail répond normalement aux critères de compatibilité XHTML v1.1 et CSS v2.0 du W3C:
Valid XHTML 1.1! Valid CSS 2.0!

Page générée en 0.007 secondes