Automatski generirajte potpise u programu Outlook 2010/2013 pomoću PowerShell-a

U ovom ćemo članku pokazati kako automatski stvoriti korisnički potpis u klijentu e-pošte programa Outlook 2010/2013 pomoću PowerShell-a na temelju podataka iz Active Directory-a. Zahvaljujući opisanoj metodologiji, moguće je osigurati da kada se prvi put prijavite u sustav i pokrenete Outlook, svaki novi korisnik domene koji koristi jedan predložak automatski stvori potpis sa svojim kontaktnim podacima dobivenim od Active Directory.

Naravno, da bi takva skripta ispravno radila, potrebno je da svi korisnici u AD-u imaju trenutne podatke. U ovom ćemo primjeru koristiti sljedeći atribut Active Directory u korisničkom potpisu:

  • Ime korisnika na ruskom (u mom slučaju su ti podaci pohranjeni u atributu Opis),
  • pozicija (atribut naslova)
  • naziv tvrtke (polje tvrtke)
  • Poštanski broj, grad i adresu (poštanski broj, grad, adresa)
  • telefonski broj (OfficePhone)
  • poštanska adresa (pošta)
  • adresa web stranice (početna stranica)

Moramo stvoriti 3 datoteke s predlošcima potpisa za Outlook u formatima htm (HTML), rtf (Obogaćeni tekst) i txt (Običan tekst). Dizajn, sadržaj i izgled obrazaca potpisa u ovim datotekama moraju biti u skladu sa zahtjevima potpisa tvrtke.

Stvorite datoteku signature.htm sa sljedećim html kodom:







iskreno


@NAME

    


@DESCRIPTION


@COMPANY




@POSTALCODE, @CITY, @STREETADDRESS


tel. @ OFFICEPHONE


@WEBSITE


E-adresa: @EMAIL



Sadržaj datoteke potpis.rtf i potpis.txt bit će ovako:

iskreno,
@NAME
@DESCRIPTION
@COMPANY
@POSTALCODE, @CITY, @STREETADDRESS
Tel. @OFFICEPHONE
E-adresa: @EMAIL
web mjesto: @WEBSITE

U katalogu C: \Korisnici\javnost\preuzimanja stvoriti mapu OutlookSignature, u koji će se pohraniti predlošci potpisa za Outlook i potpis korisnika računala. Unutar direktorija C: \ Users \ Public \ Downloads \ OutlookSignature stvorite poddirektoriju Predlošci, u koje morate kopirati tri datoteke s predlošcima potpisa (to se može učiniti ručno ili pomoću postavki grupe pravila (GPP)).

Napravite novu datoteku outlooksignature.ps1 sa sljedećim PowerShell kodom (prije svakog bloka koda dat ću kratak opis)

Definirajte skup varijabli. Promjena $ User sadrži korisničko ime s kojeg se pokreće skripta. U preostale varijable zapisujemo imena i proširenja datoteka i staze do njih.

$ User = $ env: Korisničko ime
$ FileName = "potpis"
$ FileExtension = "htm", "rtf", "txt"
$ Path = "C: \ Korisnici \ Public \ Downloads"
$ PathSignature = "$ Path \ OutlookSignature"
$ PathSignatureTemplates = "$ Path \ OutlookSignature \ Predlošci"
$ PathSignatureUser = "$ PathSignature \ $ korisnik"
$ AppSignatures = $ env: APPDATA + "\ Microsoft \ Potpisi"

Preuzmite PowerShell modul za rad s AD-om. Zatim pomoću cmdleta Get-ADUser dobivamo vrijednosti korisničkih atributa koji nas zanimaju u Active Directoryu i spremamo ih u objekt $ AD_user.

primjedba. Da bi se cmdlet Get-ADUser mogao izvoditi na Windows 7, RSAT mora biti instaliran na PC i komponenta omogućena  Modul aktivnog imenika za Windows PowerShell (Upravljačka ploča -> Programi i značajke -> Uključivanje / isključivanje značajki sustava Windows -> Alati za daljinsko upravljanje poslužiteljem -> Alati za upravljanje ulogama -> AD DS i AD LDS Alati)

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

Izradite direktorij za pohranu datoteka s potpisima korisnika i kopirajte datoteke predložaka u njih:

Nova stavka-Put "$ PathSignature \ $ User" -ItemType Container -Force
foreach ($ Ext u $ FileExtension)

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

Zatim pomoću funkcije zamjene zamjenjujemo podatke u predlošcima korisničkim podacima iz AD-a:

foreach ($ Ext u $ FileExtension)

(Get-Content "$ PathSignatureUser \ $ FileName. $ Ext") | Predmeti Foreach
$ _ '
-zamijeni "@NAME", $ AD_user.Opis "
-zamijeni "@DESCRIPTION", $ AD_user.title '
-zamijeni "@COMPANY", $ AD_user.Company "
-zamijeni "@STREETADDRESS", $ AD_user.StreetAddress "
-zamijeni "@POSTALCODE", $ AD_user.PostalCode "
-zamijeni "@CITY", $ AD_user.City "
-zamijenite "@OFFICEPHONE", $ AD_user.OfficePhone "
-zamijeni "@EMAIL", $ AD_user.Mail "
-zamijeni "@WEBSITE", $ AD_user.Homepage "
| Postavi sadržaj "$ PathSignatureUser \ $ FileName. $ Ext"

Ostaje kopirati datoteke predloška potpisa u direktorij u kojem Outlook 2010/2013/2016 pohranjuje potpise % APPDATA% \ Microsoft \ Potpisi (C: \ Korisnici \ korisničko ime \ AppData \ Roaming \ Microsoft \ Potpisi).

foreach ($ Ext u $ FileExtension)

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

Da bi Outlook prilikom pokretanja koristio stvorene datoteke s predlošcima potpisa, trebat ćete

  • Opcija brisanja Prvo trčanje u ogranku HKEY_CURRENT_USER \ Software \ Microsoft \ Office \\ Outlook \ Setup
  • U grani HKEY_CURRENT_USER \ Software \ Microsoft \ Office \\ Common \ MailSettings izradite dva parametra niza s imenima NewSignature i ReplySignature, koji će sadržavati ime predloška s potpisom (u našem primjeru naziv predloška odgovara nazivu računa u AD-u)

U skladu s tim, da biste radili s različitim verzijama MS Office-a, morate dodati sljedeći kôd:

# Ured 2010
Ako je (Test-Path HKCU: '\ Software \ Microsoft \ Office \ 14.0')
Remove-ItemProperty -Path HKCU: \ Software \ Microsoft \ Office \ 14.0 \ Outlook \ Setup -Name First-Run -Force -ErrorAction SilentlyContinue -Verbose
Novo svojstvo vlasništva HKCU: '\ Software \ Microsoft \ Office \ 14.0 \ Common \ MailSettings' -Name 'ReplySignature' -Value $ User -PropertyType 'String' -Force
Novo svojstvo vlasništva HKCU: '\ Software \ Microsoft \ Office \ 14.0 \ Common \ MailSettings' -Name 'NewSignature' -Value $ User -PropertyType 'String' -Force

#Office 2013
Ako je (Test-Path HKCU: '\ Software \ Microsoft \ Office \ 15.0')
Remove-ItemProperty -Path HKCU: \ Software \ Microsoft \ Office \ 15.0 \ Outlook \ Setup -Name First-Run -Force -ErrorAction SilentlyContinue -Verbose
Novo svojstvo vlasništva HKCU: '\ Software \ Microsoft \ Office \ 15.0 \ Common \ MailSettings' -Name 'ReplySignature' -Value $ User -PropertyType 'String' -Force
Novo svojstvo vlasništva HKCU: '\ Software \ Microsoft \ Office \ 15.0 \ Common \ MailSettings' -Name 'NewSignature' -Value $ User -PropertyType 'String' -Force

Ostaje dodijeliti ovu skriptu PowerShell-a koja se pokreće jednom koristeći postavke grupe pravila kada se korisnik prijavi. Kao rezultat toga, kada pokrene Outlook, automatski će koristiti generirani elektronički potpis za poslana pisma (prva slika članka daje primjer takvog automatski generiranog potpisa).

Neke savjete.

  • U slučaju da Outlook prikaže htm potpis s velikom (dvostrukom) uvlakom između redaka, to je greška u programu Outlook. Najbolje je stvoriti datoteku s predložakom htm potpisa izravno u Outlooku i tu datoteku koristiti kao predložak (pohranjen u% APPDATA% \ Microsoft \ potpisi)
  • Potpisu možete dodati i korisničku fotografiju iz atributa thumbnailPhoto u Active Directoryu. jer Ne postoji jednostavan način dodavanja slike potpisu Outlooka; najlakši je način, kao u prethodnom stavku, stvoriti predložak potpisa s proizvoljnom slikom u programu Outlook i zamijeniti datoteku slikom u direktoriju predložaka kopijom u skriptu PowerShell (slika se pohranjuje u imenik % AppData% \ Microsoft \ Potpisi \ .files).
  • U sustavu Exchange 2007 i novijim, najjednostavniji tekstualni potpis koji se automatski ubacuje u sva slova može se implementirati i pomoću transportnih pravila