Signatur mit VBscript

  • VBScript

Es gibt 46 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    In was für einem Format liegen die Daten der Mitarbeiter vor? Ich denke, das einfachste wird sein, eine RTF-Datei zu erstellen.

    BjöNi schrieb:

    In was für einem Format liegen die Daten der Mitarbeiter vor? Ich denke, das einfachste wird sein, eine RTF-Datei zu erstellen.

    Die Daten der Mitarbeiter holt sich das Script dan aus dem AD, es werden im Script also nur "Variablen" erstellt damit jeder Mitarbeiter logischerweiße seine richtigen Kontaktdaten die im AD hinterlegt sind bekommt!

    alpagen schrieb:

    Wird in Outlook 2010 verwenden
    Die Signaturen befinden sich in
    %APPDATA%\Microsoft\Signatures

    Wenn du selber welche anlegst: jeweils im Format RTF, HTML und TEXT

    Die Standard-Signatur ist Signature.htm.
    Du kannst mal versuchen, diese zu modifizieren.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    petaod schrieb:

    alpagen schrieb:

    Wird in Outlook 2010 verwenden
    Die Signaturen befinden sich in
    %APPDATA%\Microsoft\Signatures

    Wenn du selber welche anlegst: jeweils im Format RTF, HTML und TEXT

    Die Standard-Signatur ist Signature.htm.
    Du kannst mal versuchen, diese zu modifizieren.

    meinst du mit modifizieren, bearbeiten?
    wen ich die .htm bearbeite öffnet sich das mit word, weiß nicht wirklich wie mir das hilft, wie ich das im script so formatiere wie es sein soll ..

    alpagen schrieb:

    wen ich die .htm bearbeite öffnet sich das mit word
    Du kannst sie ja auch in Notepad reinziehen, dann siehst du das Rohformat.

    meinst du mit modifizieren, bearbeiten?
    Mit modifizieren meinte ich eher, dass du aus deinem Programm heraus den darin befindlichen HTML-Code anpasst.
    Du solltest dann aber schon wissen, was du tust und dich ein wenig mit HTML auskennen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    petaod schrieb:

    alpagen schrieb:

    wen ich die .htm bearbeite öffnet sich das mit word
    Du kannst sie ja auch in Notepad reinziehen, dann siehst du das Rohformat.

    meinst du mit modifizieren, bearbeiten?
    Mit modifizieren meinte ich eher, dass du aus deinem Programm heraus den darin befindlichen HTML-Code anpasst.
    Du solltest dann aber schon wissen, was du tust und dich ein wenig mit HTML auskennen.

    ok jetzt verstehe ich was du meinst, Problem von html hab ich sehr sehr wenig Ahnung, das VBscript steht jetzt mitlerweile zu 80% aber eben komplet unformatiert ..

    petaod schrieb:

    Wenn du dir in Outlook eine neue (zusätzliche) Signatur anlegst, findest du sie in allen drei Fornaten im Signatures-Verzeichnis.
    Diese würde ich als Template verwenden und für die User modifizieren.
    Hi,

    das ist mir klar ich hab mir das auch schon angeschaut, allerdings will ich das ja nicht für jeden User händisch anlegen, das funktioniert ja jetzt schon super jeder User bekommt automatisch seine Signatur mit den eigenen Kontaktdaten aus dem AD mit dem Skript das dan in die netlogon reinkommt das einzige was eben noch fehlt sind die kleinen formatierungen die muss ich doch auch noch im vbs direkt machen können .. oder?
    Ich glaube er möchte dir folgendes sagen:
    1. Erstell eine Sigantur (z.B. deine eigene) in Outlook, genau so wie das Endresultat aussehen sollte
    2. Geh ins Verzeichnis der Signaturen und öffne sie mit Notepad (Verz: "C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Signatures")
    3. Lösche alle deine persönlichen Daten raus
    4. Nun die Automatisierung: Jetzt muss du nur die entsprechenden Daten in die richtigen Lucken füllen

    Vorteil? Formatierung stimmt zu 100%

    Ich hab hier meine Signatur (Geschäft). Diese gibts in den genannten 3 Formen (txt, htm, rtf).
    Textdatei:
    Spoiler anzeigen

    Quellcode

    1. COOP
    2. Daniel BlubbBlubb
    3. Lernender J2EE
    4. Telefon: +00 00 000 00 00
    5. blubblubb@coop.ch


    Htm:
    Spoiler anzeigen

    HTML-Quellcode

    1. <html xmlns:o="urn:schemas-microsoft-com:office:office"
    2. xmlns:w="urn:schemas-microsoft-com:office:word"
    3. xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
    4. xmlns="http://www.w3.org/TR/REC-html40">
    5. <head>
    6. <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
    7. <meta name=ProgId content=Word.Document>
    8. <meta name=Generator content="Microsoft Word 14">
    9. <meta name=Originator content="Microsoft Word 14">
    10. <link rel=File-List href="Standard-Dateien/filelist.xml">
    11. <!--[if gte mso 9]><xml>
    12. <o:DocumentProperties>
    13. <o:Template>NormalEmail.dotm</o:Template>
    14. <o:Revision>0</o:Revision>
    15. <o:Pages>1</o:Pages>
    16. <o:Words>17</o:Words>
    17. <o:Characters>112</o:Characters>
    18. <o:Company>COOP</o:Company>
    19. <o:Lines>1</o:Lines>
    20. <o:Paragraphs>1</o:Paragraphs>
    21. <o:CharactersWithSpaces>128</o:CharactersWithSpaces>
    22. <o:Version>14.00</o:Version>
    23. </o:DocumentProperties>
    24. <o:OfficeDocumentSettings>
    25. * Hier fehlt ein Teil, da die Nachricht sonst über 15'000 Zeichen wäre..
    26. mso-ascii-theme-font:minor-latin;
    27. mso-fareast-font-family:"Times New Roman";
    28. mso-fareast-theme-font:minor-fareast;
    29. mso-hansi-font-family:Calibri;
    30. mso-hansi-theme-font:minor-latin;
    31. mso-bidi-font-family:"Times New Roman";
    32. mso-bidi-theme-font:minor-bidi;}
    33. @page WordSection1
    34. {size:612.0pt 792.0pt;
    35. margin:70.85pt 70.85pt 2.0cm 70.85pt;
    36. mso-header-margin:36.0pt;
    37. mso-footer-margin:36.0pt;
    38. mso-paper-source:0;}
    39. div.WordSection1
    40. {page:WordSection1;}
    41. -->
    42. </style>
    43. <!--[if gte mso 10]>
    44. <style>
    45. /* Style Definitions */
    46. table.MsoNormalTable
    47. {mso-style-name:"Normale Tabelle";
    48. mso-tstyle-rowband-size:0;
    49. mso-tstyle-colband-size:0;
    50. mso-style-noshow:yes;
    51. mso-style-priority:99;
    52. mso-style-parent:"";
    53. mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
    54. mso-para-margin:0cm;
    55. mso-para-margin-bottom:.0001pt;
    56. mso-pagination:widow-orphan;
    57. font-size:11.0pt;
    58. font-family:"Calibri","sans-serif";
    59. mso-ascii-font-family:Calibri;
    60. mso-ascii-theme-font:minor-latin;
    61. mso-hansi-font-family:Calibri;
    62. mso-hansi-theme-font:minor-latin;
    63. mso-bidi-font-family:"Times New Roman";
    64. mso-bidi-theme-font:minor-bidi;}
    65. </style>
    66. <![endif]-->
    67. </head>
    68. <body lang=DE-CH link=blue vlink=purple style='tab-interval:35.4pt'>
    69. <div class=WordSection1>
    70. <p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
    71. font-family:"Arial","sans-serif"'>COOP<br>
    72. Daniel Blubb</span><span style='font-size:12.0pt;font-family:"Times New Roman","serif"'><br>
    73. </span><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Lernender
    74. J2EE</span><span style='font-size:12.0pt;font-family:"Times New Roman","serif"'><br>
    75. </span><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Telefon:
    76. +00 00 000 00 00</span><span style='font-size:12.0pt;font-family:"Times New Roman","serif"'><br>
    77. </span><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
    78. color:black'><a href="mailto:blubbblubb@coop.ch">blubbblubb@coop.ch</a></span><span
    79. style='font-size:10.0pt;font-family:"Arial","sans-serif"'><o:p></o:p></span></p>
    80. <p class=MsoNormal><o:p>&nbsp;</o:p></p>
    81. </div>
    82. </body>
    83. </html>


    Alle Formatierungen hinterlegt. Was du jetzt machst ist den ganzen Text bis "COOP" in eine Variable "part1" zu schreiben. Der zweite Teil wäre nach "COOP" bis zur nächsten persönlichen Info (In meinem Fall der Name "Daniel Blubb").
    Somit musst du in deinem Skript nicht mehr viel mehr machen als:
    part1 + GESCHÄFTSNAME + part2 + NAME + part3 + VORNAME + .. und so weiter.
    Das ganze in einer Schelife für jeden Datensatz (Mitarbeiter).

    Dann musste nur noch im richtigen Format abspeichern ;)

    Hoffe du hast es nun verstanden :P
    Falls du Hilfe benötigst, darfst du mir gern eine PN schreiben.

    Wenn du dich vorstellen möchtest, hier der Link zum Vorstellungs Thread:
    Sammelthread - Vorstellung neuer User

    Greez Dancger
    MESS WITH THE BEST, DIE LIKE THE REST! :evil:
    n'paar Links: DNS Tools, Steal WA DB, Droidsheep...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dancger“ ()

    Dancger schrieb:

    3. Lösche alle deine persönlichen Daten raus
    4. Nun die Automatisierung: Jetzt muss du nur die entsprechenden Daten in die richtigen Lucken füllen
    Genau so.

    Oder vielleicht noch besser:
    3. Ersetze alle deine persönliche Daten durch universelle Platzhalter (z.B. xxxNAMExxx, xxxTELEFONxxx...), die du im 4. Schritt gegen die Userdaten ersetzt.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Doppelpost, sorry.

    Hab dir das Grundgerüst erstellt. Da ich noch nie mit "Activ Directory" gearbeitet habe, kann ich dir diesen Teil nicht schreiben.
    Das Skript hab ich getestet und es funktioniert. Es ist vielleicht nicht sauber programmiert, weil es zusammenkopiert ist. Da es aber nix beständiges ist, spielt das ja keine Rolle.

    Visual Basic-Quellcode

    1. 'Einstellungen
    2. Dim pth_template
    3. pth_template = "Dein Pfad" 'Pfad zum Template
    4. 'Konstanten
    5. Const ForReading = 1
    6. Const ForWriting = 2
    7. 'Objekte
    8. Set objFSO = CreateObject("Scripting.FileSystemObject")
    9. Set objFile = objFSO.OpenTextFile(pth_template, ForReading)
    10. 'Variablen
    11. Dim template
    12. 'Auslesen des Templates
    13. Dim arrFileLines()
    14. i = 0
    15. Do Until objFile.AtEndOfStream
    16. Redim Preserve arrFileLines(i)
    17. arrFileLines(i) = objFile.ReadLine
    18. i = i + 1
    19. Loop
    20. objFile.Close
    21. 'Template auslesen und in Variable zwischen speichern
    22. For Each strLine in arrFileLines
    23. template = template + strLine
    24. Next
    25. 'SCHLEIFE START
    26. 'HIER MUSS DU ALLE DATEN DER ACTIVE DIRECTORY IM ZUGRIFF HABEN.
    27. 'FÜR JEDEN SCHRITT DER SCHLEIFE EINEN DATENSATZ BEREIT STELLEN
    28. 'NUR ZUM TEST. HIER MUSST DU ZUGRIFF AUF DIE EINZELNEN WERTE DER MITARBEITER HABEN (z.B. Name, Vorname, Position, etc.)
    29. Dim Firma, Name, Abteilung, Telefon, Email
    30. Firma = "COOP"
    31. Name = "Blubb Daniel"
    32. Abteilung = "Lehrlender J2EE"
    33. Telefon = "079 871 00 00"
    34. Email = "test@text.ch"
    35. 'Kopie des Templates erstellen
    36. 'SO WIRD DEIN ORIGINAL NICHT ANGERÜHRT
    37. Dim template_copy
    38. template_copy = template
    39. 'Variablen im kopierten Template ersetzen
    40. 'ZEILE KOPIEREN, UND DEINEN PLATZHALTER (xxxNAMExxx) DURCH DEN MITARBEITERNAMEN AUS DER 'AD' ersetzen
    41. 'template_copy = Replace(template_copy, --> PLATZHALTER <--, --> WERT <--)
    42. template_copy = Replace(template_copy,"xxxFIRMAxxx", Firma)
    43. template_copy = Replace(template_copy,"xxxNAMExxx", Name)
    44. template_copy = Replace(template_copy,"xxxABTEILUNGxxx", Abteilung)
    45. template_copy = Replace(template_copy,"xxxTELEFONxxx", Telefon)
    46. template_copy = Replace(template_copy,"xxxEMAILxxx", Email)
    47. 'Kopiertes Template abspeichern (Endprodukt)
    48. 'HIER MUSST DU NOCH DEN PFAD ANPASSEN, SONST WIRD ÜBERSCHRIEBEN (Am besten speicherst du den Namen mit
    49. Dim Speicherzusatz, FileName
    50. Speicherzusatz = "NAME & VORNAME DES MITARBEITERS AUS 'AD' LESEN"
    51. FileName = "C:\Users\gasda\AppData\Roaming\Signatur_" + Speicherzusatz + ".htm"
    52. Dim fso, MyFile
    53. Set fso = CreateObject("Scripting.FileSystemObject")
    54. Set MyFile = fso.CreateTextFile(FileName, True)
    55. MyFile.WriteLine(template_copy)
    56. MyFile.Close
    57. 'SCHELIFE ENDE
    58. 'Programm beenden
    59. WScript.Quit


    Edit: Kriegst du's selbst zusammen gebastelt? Ansonsten guck ich mir AD noch an..?

    Greez Dancger
    MESS WITH THE BEST, DIE LIKE THE REST! :evil:
    n'paar Links: DNS Tools, Steal WA DB, Droidsheep...
    So ich habe nun eine.htm modifiziert wie eben gesagt dan das script umgeschrieben und es klappt alles wunderbar daten werden aus dem AD ausgelesen und in die Signatur geklatscht und ist jetzt eben auch 100%ig formatiert.

    Jetzt aber zu meinem Problem:
    Outlook vertraut anscheinend dem Logo nicht sprich jedesmal wen ich die Signatur verwedenen will bekomme ich die Meldung:
    Einige Dateien dieser Webseite befinden sich nicht an der erwarteten Stelle. Möchten sie sie trozdem herunterladen? bla bla bla

    wenn ich das mit ja bestätige ist die signatur komplett da wen ich es mit nein bestätige fehlt eben das bild, wen ich das bild komplett aus der signatur entferne kommt die Meldung nicht!
    ich habe schon versucht auch die .rtf .txt und den Ordner wo die bilder drin liegen usw. anzulegen und die .htm datei umzuschreiben also den pfad wo das bild lieg, es vertraut immer aber immer noch nicht automatisch!

    Jemand eine Idee?