Toon posts:

[SBS 2003] Handtekening maken vanuit AD

Pagina: 1
Acties:
  • 227 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

ben al een tijdje aan het zoeken naar een fuctionele handtekening voor ons bedrijf. Het idee van mijn baas was om de gegevens uit Active Directory te halen.

Daar staat je naam, functie en telefoonnummer, enz. in
Dan hoef je maar 1 handtekening te maken en de rest wordt automatisch gegenereerd. Mocht er iemand van functie veranderen of een ander telefoonnummer krijgen, dan wordt dit automatisch aangepast.

Via LDAP kan je volgens mij info uit Active Derectory halen, maar hier snap ik nog niet veel van.

Verder kon ik nergens iets vinden wat mij verder kan helpen.

We hebben SBS 2003 NL.

Hebben jullie een idee?

  • Dunka
  • Registratie: Augustus 2005
  • Laatst online: 19-02 21:52
In welk programma moet die handtekening komen? Ik heb zelf een klein script om gebruikersgegevens in Word in te vullen. Dit script wordt bij logon uitgevoerd:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
option explicit

dim objSysInfo, strUser, objUser, objWord

Set objSysInfo = CreateObject("ADSystemInfo")

strUser = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUser)

Set objWord = CreateObject("Word.Application")
objWord.UserName = objUser.Initials & " " & objUser.SN
objWord.UserInitials = Left(objUser.givenName, 1) & Left(objUser.SN, 1)
objWord.Quit

Wscript.Quit


Hierna heb ik een template in Word gemaakt voor een brief waarbij aan de hand van de gebruikersgegevens de handtekening gemaakt wordt.

Verwijderd

Topicstarter
Dunka schreef op vrijdag 28 oktober 2005 @ 13:44:
In welk programma moet die handtekening komen? Ik heb zelf een klein script om gebruikersgegevens in Word in te vullen. Dit script wordt bij logon uitgevoerd:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
option explicit

dim objSysInfo, strUser, objUser, objWord

Set objSysInfo = CreateObject("ADSystemInfo")

strUser = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUser)

Set objWord = CreateObject("Word.Application")
objWord.UserName = objUser.Initials & " " & objUser.SN
objWord.UserInitials = Left(objUser.givenName, 1) & Left(objUser.SN, 1)
objWord.Quit

Wscript.Quit


Hierna heb ik een template in Word gemaakt voor een brief waarbij aan de hand van de gebruikersgegevens de handtekening gemaakt wordt.
Iedereen gebruikt Outlook 2003. Kan je deze code in je loginscript gebruiken?

[ Voor 7% gewijzigd door Verwijderd op 28-10-2005 14:00 ]


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 20-02 15:44
Als ik het goed begrijp krijg je hierdoor dus niet de eerste keer dat je Word start de vraag of je een naam in wilt voeren?

  • Dunka
  • Registratie: Augustus 2005
  • Laatst online: 19-02 21:52
Verwijderd schreef op vrijdag 28 oktober 2005 @ 13:58:
[...]


Iedereen gebruikt Outlook 2003. Kan je deze code in je loginscript gebruiken?
Je kunt deze code als .vbs script in je login gebruiken. Voor Outlook kan je Word een document laten genereren met de ingevoerde variabelen. Dit document dan op laten slaan in de map met handtekeningen als tekstbestand en in outlook dit bestand als handtekening kiezen.

Verwijderd

Topicstarter
Ik ga het uitproberen, BEDANKT

  • mutsje
  • Registratie: September 2000
  • Laatst online: 19-02 13:21

mutsje

Certified Prutser

als je het loginscript klaar hebt en het werkt post dat dan ook ff hier zodat andere mensen hier ook dankbaar gebruik van kunnen maken!!

  • QuadrifoglioVerde
  • Registratie: April 2002
  • Laatst online: 28-07-2024
Zelf heb ik er geen ervaring mee maar er bestaan enkele tooltjes die doen wat jij vraagt: http://www.slipstick.com/addins/sig.htm

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Ik heb zoiets soortgelijks gemaakt maar dan in twee delen. Ik heb één scriptje dat de signatures genereerd, en ik heb één script dat de signatures koppelt aan de user accounts.

Het signature creeeerende script kan ik niet laten zien omdat het teveel van andere code afhangt die ik niet mag publiceren, het andere script is ongeveer dit (ruwweg, de productie versie heb ik niet bij de hand op het moment):

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
' On Error Resume Next

'
' Outlook 2003 signature setter - this sets the signature for all accounts
'

Const HKCU = &H80000001 'HKEY_CURRENT_USER
Const PROFPATH = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles" ' OL profile path

' Create an registry object
Set objReg = GetObject("winmgmts:root/default:StdRegProv")

'
' List all profiles configured for MAPI
'
Sub ListProfiles() 
  ' Open the registry
  rCode = objReg.EnumKey(HKCU, _
                         PROFPATH, _
                         regKeys)
                            
  ' Now loop through all configured profiles
  For Each sKey in regKeys
    ScanMapiServices PROFPATH, sKey
  Next
End Sub

' 
' Returns the current user as a string
'
Function GetCurrentUser()
  Set tmpObj = CreateObject("WScript.Network")
  

End Function 

' 
' Found an profile, lets find the exchange provider
'
Sub ScanMapiServices(baseKey, sKey) 
  ' Determine the base
  baseKey = baseKey & "\" & sKey & "\9375CFF0413111d3B88A00104B2A6676"
  
  ' Open the registry
  rCode = objReg.EnumKey(HKCU, _
                         baseKey, _
                         regKeys)
                            
  ' Now loop through all configured profiles
  For Each tmpKey in regKeys
  
    ' Enumerate the value of the configured MAPI Providers
    objReg.GetDWORDValue HKCU, _
                         baseKey & "\" & tmpKey, _
                         "MAPI Provider", _
                         mapiProvider
                          
    ' if we found an '5' - its the Exchange provider, and we add our signature
    If( mapiProvider = 5 ) Then
      AddSignature baseKey & "\" & tmpKey
    End If
    
  Next
End Sub

'
' Converts a string value to an binary array
' function taken from: http://groups.google.nl/groups?hl=nl&lr=&selm=OqSpLYCkEHA.1764%40TK2MSFTNGP10.phx.gbl
'
Function ToByteArray(ByVal sString)

   ReDim aBytes(Len(sString) * 2 + 1)

   iIndex = -1
   For iPos = 1 To Len(sString)
     iIndex = iIndex + 1
     aBytes(iIndex) = Asc(Mid(sString, iPos, 1))
     ' add a 0 after each letter
     iIndex = iIndex + 1
     aBytes(iIndex) = 0
   Next

   ' add two closing 0's
   iIndex = iIndex + 1
   aBytes(iIndex) = 0
   iIndex = iIndex + 1
   aBytes(iIndex) = 0

   ToByteArray = aBytes
End Function

'
' Found the Exchange MAPI Provider - change the signature in it
'
Sub AddSignature(baseKey)
   tmpSig = GetCurrentUser() & "_Group_Signature"
   
   objReg.SetBinaryValue HKCU, _
                         baseKey, _
                         "New Signature", _
                         ToByteArray( tmpSig )
                            
End Sub
                          
ListProfiles
Pagina: 1