Samodejno ustvarjanje podpisov v Outlooku 2010/2013 z uporabo PowerShell-a

V tem članku bomo pokazali, kako samodejno ustvariti podpis uporabnika v poštnem odjemalcu Outlook 2010/2013 z uporabo PowerShell-a na podlagi podatkov iz Active Directory. Zahvaljujoč opisani metodologiji je mogoče zagotoviti, da lahko vsak novi uporabnik domene, ko se prvič prijavite v sistem in zaženete Outlook, samodejno ustvari podpis s svojimi kontaktnimi podatki, pridobljenimi iz Active Directory.

Seveda je za pravilno delovanje scenarija potrebno, da imajo vsi uporabniki v AD-ju trenutne podatke. V tem primeru bomo v uporabniškem podpisu uporabili naslednje atribute Active Directory:

  • Ime uporabnika v ruščini (v mojem primeru so ti podatki shranjeni v atributu Opis),
  • položaj (atribut naslova)
  • ime podjetja (polje podjetja)
  • Poštna številka, kraj in naslov (PostalCode, City, StreetAddress)
  • telefonska številka (OfficePhone)
  • poštni naslov (pošta)
  • naslov spletnega mesta (domača stran)

Ustvariti moramo 3 datoteke s predlogi podpisov za Outlook v formatih htm (HTML), rtf (Bogato besedilo) in txt (Navadni tekst). Oblika, vsebina in videz predlog za podpise v teh datotekah morajo biti v skladu z zahtevami podpisa podjetja.

Ustvari datoteko podpis.htm z naslednjo html kodo:







S spoštovanjem


@NAME

    


@DESCRIPTION


@COMPANY




@POSTALCODE, @CITY, @STREETADDRESS


tel. @ OFFICEFHONE


@WEBSITE


E-pošta: @EMAIL



Vsebina datoteke podpis.rtf in podpis.txt bo takole:

S spoštovanjem,
@NAME
@DESCRIPTION
@COMPANY
@POSTALCODE, @CITY, @STREETADDRESS
Tel @OFFICEPHONE
E-pošta: @EMAIL
spletna stran: @WEBSITE

V katalogu C: \Uporabniki\Javno\Prenosi ustvarite mapo OutlookSignature, v kateri bodo shranjene predloge za podpise za Outlook in podpise uporabnikov računalnika. Znotraj direktorija C: \ Uporabniki \ Javno \ Prenosi \ OutlookSignature ustvarite podimenik Predloge, v katero morate kopirati tri datoteke s predlogi za podpisovanje (to lahko storite ročno ali z uporabo nastavitev skupinske politike (GPP)).

Ustvari novo datoteko outlooksignature.ps1 z naslednjo kodo PowerShell (pred vsakim blokom kode bom dal kratek opis)

Določite niz spremenljivk. Spremenljivka $ User vsebuje uporabniško ime, iz katerega se izvaja skript. V preostale spremenljivke zapišemo imena in razširitve datotek ter poti do njih.

$ User = $ env: Uporabniško ime
$ FileName = "podpis"
$ FileExtension = "htm", "rtf", "txt"
$ Path = "C: \ uporabniki \ javni \ prenosi"
$ PathSignature = "$ pot \ OutlookSignature"
$ PathSignatureTemplates = "$ Path \ OutlookSignature \ Predloge"
$ PathSignatureUser = "$ PathSignature \ $ Uporabnik"
$ AppSignatures = $ env: APPDATA + "\ Microsoft \ Podpisi"

Prenesite modul PowerShell za delo z AD. Nato z ukaznim ukazom Get-ADUser dobimo vrednosti uporabniških atributov, ki nas zanimajo v Active Directory, in jih shranimo v objekt $ AD_user.

Opomba. Da se cmdlet Get-ADUser zažene v sistemu Windows 7, mora biti na osebnem računalniku nameščen RSAT in omogočena komponenta  Modul aktivnega imenika za Windows PowerShell (Nadzorna plošča -> Programi in funkcije -> Vklop / izklop funkcij sistema Windows -> Orodja za daljinsko upravljanje strežnika -> Orodja za upravljanje vlog -> Orodja DS DS in AD LDS)

Uvozni modul aktivni imenik
$ AD_user = Get-ADUser $ User -Properties Naslov, Podjetje, Opis, Fax, HomePage, Mail, OfficePhone, PostalCode, City, StreetAddress

Ustvarite imenik za shranjevanje datotek s podpisom uporabnikov in kopirajte datoteke predloge vnj:

Nov predmet-Pot "$ PathSignature \ $ User" -StemeTypeType -Force
foreach ($ Ext v $ FileExtension)

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

Nato s funkcijo nadomestimo podatke v predlogah z uporabniškimi podatki iz AD-ja:

foreach ($ Ext v $ FileExtension)

(Pridobite vsebino "$ PathSignatureUser \ $ FileName. $ Ext") | Predmet Foreach
$ _ '
-nadomestite »@NAME«, $ AD_user.Opis »
-nadomesti "@DESCRIPTION", $ AD_user.title "
-zamenjaj "@COMPANY", $ AD_user.Company "
-nadomesti "@STREETADDRESS", $ AD_user.StreetAddress "
-nadomesti "@POSTALCODE", $ AD_user.PostalCode "
-zamenjaj "@CITY", $ AD_user.City "
-zamenjaj "@OFFICEPHONE", $ AD_user.OfficePhone "
-zamenjaj "@EMAIL", $ AD_user.Mail "
-nadomesti "@WEBSITE", $ AD_user.Homepage "
| Nastavi vsebino "$ PathSignatureUser \ $ FileName. $ Ext"

Ostaja kopiranje datotek predloga za podpise v imenik, v katerem Outlook 2010/2013/2016 shranjuje podpise % APPDATA% \ Microsoft \ Podpisi (C: \ Uporabniki \ uporabniško ime \ AppData \ Gostovanje \ Microsoft \ Podpisi).

foreach ($ Ext v $ FileExtension)

Copy-Item -Force "$ PathSignatureUser \ $ FileName. $ Ext" "$ AppSignatures \ $ Uporabnik. $ Ext"
piši gostitelja "$ PathSignatureUser \ $ FileName. $ Ext"
piši gostitelj "$ AppSignatures \ $ User. $ ext"

Če želite, da Outlook pri zagonu uporablja ustvarjene datoteke s predlogi za podpisovanje, potrebujete

  • Možnost brisanja Prvi tek v veji HKEY_CURRENT_USER \ Software \ Microsoft \ Office \\ Outlook \ Setup
  • V veji HKEY_CURRENT_USER \ Software \ Microsoft \ Office \\ Common \ MailSettings ustvarite dva niz parametrov z imeni Časopis in Odgovori podpis, ki bo vseboval ime predloge s podpisom (v našem primeru ime predloge ustreza imenu računa v AD)

V skladu s tem morate za delo z različnimi različicami MS Office dodati to kodo:

# Urad 2010
Če (Testna pot HKCU: '\ Software \ Microsoft \ Office \ 14.0')
Remove-ItemProperty -Path HKCU: \ Software \ Microsoft \ Office \ 14.0 \ Outlook \ Setup -Name First Run -Force -ErrorAction SilentlyContinue -Verbose
Lastnost novega izdelka HKCU: '\ Software \ Microsoft \ Office \ 14.0 \ Common \ MailSettings' -Name 'ReplySignature' -Value $ User -PropertyType 'String' -Force
Lastnost novega izdelka HKCU: '\ Software \ Microsoft \ Office \ 14.0 \ Common \ MailSettings' -Namem 'NewSignature' -Value $ User -PropertyType 'String' -Force

# Urad 2013
Če (Testna pot HKCU: '\ Software \ Microsoft \ Office \ 15.0')
Remove-ItemProperty -Path HKCU: \ Software \ Microsoft \ Office \ 15.0 \ Outlook \ Setup -Name First-Run -Force -ErrorAction SilentlyContinue -Verbose
Lastnost lastnine HKCU: '\ Software \ Microsoft \ Office \ 15.0 \ Common \ MailSettings' -Name 'ReplySignature' -Value $ User -PropertyType 'String' -Force
Lastnost novega izdelka HKCU: '\ Software \ Microsoft \ Office \ 15.0 \ Common \ MailSettings' -Namem 'NewSignature' -Value $ Uporabnik -PropertyType 'String' -Force

Ostaja nam dodeliti ta skript PowerShell, ki se zažene enkrat z uporabo nastavitev skupinske politike, ko se uporabnik prijavi. Tako bo ob zagonu Outlooka samodejno uporabil ustvarjeni elektronski podpis za poslana pisma (prva slika članka daje primer takega samodejno ustvarjenega podpisa).

Nekaj ​​nasvetov.

  • V primeru, da Outlook prikaže vrstni red htm z velikimi (dvojnimi) vdolbinicami med vrsticami, je to napaka v Outlooku. Najbolje je, da ustvarite datoteko s predlogo za podpisovanje htm neposredno v Outlooku in to datoteko uporabite kot predlogo (shranjeno v% APPDATA% \ Microsoft \ Podpisi)
  • Podpisu lahko dodate tudi uporabnikovo fotografijo iz atributa thumbnailPhoto v aktivnem imeniku. Ker Ni preprostega načina za dodajanje slike v podpis Outlooka, najlažji način, kot v zgornjem odstavku, ustvarite predlogo za podpis s poljubno sliko v Outlooku in v skriptu PowerShell s kopiranjem zamenjate slikovno datoteko v imeniku predlog (slika je shranjena v imeniku % AppData% \ Microsoft \ Podpisi \ .files).
  • V sistemu Exchange 2007 in novejših različicah se lahko s pomočjo transportnih pravil izvede tudi najpreprostejši besedilni podpis, ki se samodejno vstavi v vse črke