Automatické vytváranie podpisov v programe Outlook 2010/2013 pomocou programu PowerShell

V tomto článku si ukážeme, ako automaticky vytvoriť podpis používateľa v poštovom klientovi programu Outlook 2010/2013 pomocou PowerShell na základe údajov z Active Directory. Vďaka opísanej technike je možné zabezpečiť, aby sa pri prvom prihlásení do systému a spustení programu Outlook každý nový používateľ domény používajúci jednu šablónu automaticky vytvoril podpis so svojimi kontaktnými informáciami získanými zo služby Active Directory.

Aby tento skript fungoval správne, je prirodzené, že všetci používatelia AD musia mať aktuálne údaje. V tomto príklade použijeme v užívateľskom podpise nasledujúce atribúty služby Active Directory:

  • Meno používateľa v ruštine (v mojom prípade sú tieto údaje uložené v atribúte Popis),
  • pozícia (atribút názvu)
  • názov spoločnosti (pole spoločnosti)
  • PSČ, mesto a adresa (PSČ, mesto, adresa ulice)
  • telefónne číslo (OfficePhone)
  • poštová adresa (Mail)
  • webová adresa (Domovská stránka)

Potrebujeme vytvoriť 3 súbory s podpisovými šablónami pre aplikáciu Outlook vo formátoch htm (HTML), rtf (Rich Text) a txt (Obyčajný text). Dizajn, obsah a vzhľad šablón podpisov v týchto súboroch musia byť v súlade s požiadavkami podpisu firemnej pošty.

Vytvorte súbor signature.htm s nasledujúcim html kódom:







úprimne


@NAME

    


@DESCRIPTION


@COMPANY




@POSTALCODE, @CITY, @STREETADDRESS


tel. @ OFFICEPHONE


@WEBSITE


E-mail: @EMAIL



Obsah súboru podpis.rtf a podpis.txt bude takto:

úprimne,
@NAME
@DESCRIPTION
@COMPANY
@POSTALCODE, @CITY, @STREETADDRESS
Tel. @OFFICEPHONE
E-mail: @EMAIL
site: @WEBSITE

V katalógu C: \užívatelia\verejnosť\sťahovanie vytvoriť priečinok OutlookSignature, v ktorých budú uložené šablóny podpisov pre podpisy programu Outlook a používateľov počítačov. V adresári C: \ Users \ Public \ Downloads \ OutlookSignature vytvorte podadresár šablóny, do ktorého potrebujete skopírovať tri súbory so šablónami podpisov (to sa dá vykonať manuálne alebo pomocou predvolieb skupinovej politiky (GPP)).

Vytvorte nový súbor outlooksignature.ps1 s nasledujúcim kódom PowerShell (pred každým blokom kódu uvediem stručný popis)

Definujte skupinu premenných. Premenná $ User obsahuje meno používateľa, z ktorého sa skript spúšťa. Do zvyšných premenných píšeme názvy a prípony súborov a cesty k nim.

$ User = $ env: UserName
$ FileName = "signature"
$ FileExtension = "htm", "rtf", "txt"
$ Path = "C: \ Users \ Public \ Downloads"
$ PathSignature = "$ Path \ OutlookSignature"
$ PathSignatureTemplates = "$ Path \ OutlookSignature \ Templates"
$ PathSignatureUser = "$ PathSignature \ $ User"
$ AppSignatures = $ env: APPDATA + "\ Microsoft \ Signatures"

Stiahnite si modul PowerShell pre prácu s AD. Potom pomocou rutiny Get-ADUser získame hodnoty užívateľských atribútov, ktoré nás zaujímajú v službe Active Directory a uložíme ich do objektu $ AD_user..

poznámka. Aby sa cmdlet Get-ADUser spustil vo Windows 7, musí byť na PC nainštalovaný RSAT a komponent musí byť povolený  Modul Active Directory pre Windows PowerShell (Ovládací panel -> Programy a funkcie -> Zapnutie / vypnutie funkcií systému Windows -> Nástroje na správu vzdialeného servera -> Nástroje na správu rolí -> Nástroje AD DS a AD LDS)

Adresár importu modulu
$ AD_user = Get-ADUser $ User -Properties Title, Company, Description, Fax, HomePage, Mail, OfficePhone, PostalCode, City, StreetAddress

Vytvorte adresár na ukladanie súborov s podpismi používateľov a do nich skopírujte súbory šablón:

Nová položka - Cesta „$ PathSignature \ $ User“ -ItemType Container -Force
foreach ($ Ext v $ FileExtension)

Copy-Item -Force "$ PathSignatureTemplates \ $ FileName. $ Ext" "$ PathSignatureUser \ $ FileName. $ Ext"

Potom pomocou funkcie nahradiť nahradíme údaje v šablónach užívateľskými údajmi z AD:

foreach ($ Ext v $ FileExtension)

(Get-Content "$ PathSignatureUser \ $ FileName. $ Ext") | Foreach-Object
$ _ '
-nahradiť „@NAME“, $ AD_user.Description '
-nahradiť „@DESCRIPTION“, $ AD_user.title '
-nahradiť „@COMPANY“, $ AD_user.Company '
-nahradiť „@STREETADDRESS“, $ AD_user.StreetAddress '
-nahradiť „@ POSTALCODE“, $ AD_user.PostalCode '
-nahradiť „@CITY“, $ AD_user.City '
-nahradiť „@OFFICEPHONE“, $ AD_user.OfficePhone '
-nahradiť „@EMAIL“, $ AD_user.Mail '
-nahradiť „@WEBSITE“, $ AD_user.Homepage '
| Set-Content "$ PathSignatureUser \ $ FileName. $ Ext"

Zostáva skopírovať súbory šablón podpisov do adresára, v ktorom program Outlook 2010/2013/2016 ukladá podpisy % APPDATA% \ Microsoft \ Signatures (C: \ Users \ username \ AppData \ Roaming \ Microsoft \ Signatures).

foreach ($ Ext v $ FileExtension)

Copy-Item -Force "$ PathSignatureUser \ $ FileName. $ Ext" "$ AppSignatures \ $ User. $ Ext"
write-host "$ PathSignatureUser \ $ FileName. $ Ext"
write-host "$ AppSignatures \ $ User. $ Ext"

Aby program Outlook mohol pri vytvorení používať vytvorené súbory so šablónami podpisov, potrebujete

  • Odstrániť možnosť Prvé spustenie vo vetve HKEY_CURRENT_USER \ Software \ Microsoft \ Office \\ Outlook \ Setup
  • Vo vetve HKEY_CURRENT_USER \ Software \ Microsoft \ Office \\ Common \ MailSettings vytvorte dva parametre reťazca s názvami NewSignature a ReplySignature, ktorý bude obsahovať názov šablóny s podpisom (v našom príklade názov šablóny zodpovedá názvu účtu v AD)

Preto, aby ste mohli pracovať s rôznymi verziami MS Office, musíte pridať nasledujúci kód:

#Office 2010
Ak (testovacia cesta HKCU: '\ Software \ Microsoft \ Office \ 14.0')
Remove-ItemProperty -Path HKCU: \ Software \ Microsoft \ Office \ 14.0 \ Outlook \ Setup -Name First-Run -Force -ErrorAction SilentlyContinue -Verbose
New-ItemProperty HKCU: '\ Software \ Microsoft \ Office \ 14.0 \ Common \ MailSettings' -Name 'ReplySignature' -Value $ User -PropertyType 'String' -Force
New-ItemProperty HKCU: '\ Software \ Microsoft \ Office \ 14.0 \ Common \ MailSettings' -Name 'NewSignature' -Value $ User -PropertyType 'String' -Force

#Office 2013
Ak (testovacia cesta HKCU: '\ Software \ Microsoft \ Office \ 15.0')
Remove-ItemProperty -Path HKCU: \ Software \ Microsoft \ Office \ 15.0 \ Outlook \ Setup -Name First-Run -Force -ErrorAction SilentlyContinue -Verbose
New-ItemProperty HKCU: '\ Software \ Microsoft \ Office \ 15.0 \ Common \ MailSettings' -Name 'ReplySignature' -Value $ User -PropertyType 'String' -Force
New-ItemProperty HKCU: '\ Software \ Microsoft \ Office \ 15.0 \ Common \ MailSettings' -Name 'NewSignature' -Value $ User -PropertyType 'String' -Force

Zostáva priradiť tento skript PowerShell, ktorý sa má spustiť raz pomocou preferencií skupinovej politiky, keď sa používateľ prihlási. Výsledkom je, že pri spustení programu Outlook automaticky použije vygenerovaný elektronický podpis na zaslané listy (prvý obrázok článku uvádza príklad takého automaticky vygenerovaného podpisu).

Niekoľko tipov.

  • V prípade, že program Outlook zobrazí htm podpis s veľkým (dvojitým) odsadením medzi riadkami, je to chyba programu Outlook. Najlepšie je vytvoriť súbor so šablónou podpisu htm priamo v programe Outlook a použiť tento súbor ako šablónu (uloženú v priečinku% APPDATA% \ Microsoft \ podpisy)
  • K podpisu môžete pridať aj fotografiu používateľa z atribútu thumbnailPhoto v službe Active Directory. pretože Neexistuje žiadny jednoduchý spôsob, ako pridať obrázok do podpisu programu Outlook, najjednoduchší spôsob je vytvoriť šablónu podpisu s ľubovoľným obrázkom v programe Outlook, ako v predchádzajúcom odseku, a nahradiť súbor obrázkom v adresári šablóny kópiou v skripte PowerShell (obrázok je uložený v adresári) % AppData% \ Microsoft \ Signatures \ .files).
  • Na serveri Exchange 2007 a novšom sa dá najjednoduchší textový podpis, ktorý sa automaticky vloží do všetkých písmen, implementovať pomocou pravidiel prenosu