Another quick script from the Quick & Dirty category: Uniform e-mail signatures for OWA. If you don't have any third-party software in use that can also distribute standardized mail signatures in OWA, you can fall back on this quick script:
$mailboxes = get-mailbox -resultsize unlimited foreach ($mailbox in $mailboxes) { $uservars = get-user $mailbox if ($uservars) { $SamAccountName = $uservars.SamAccountName $UserPrincipalName = $uservars.UserPrincipalName [$WindowsLiveID = $uservars.WindowsLiveID $NetID = $uservars.NetID $AssistantName = $uservars.AssistantName $City = $uservars.City $Company = $uservars.Company $CountryOrRegion = $uservars.CountryOrRegion $Department = $uservars.Department $DisplayName = $uservars.DisplayName $Fax = $uservars.Fax $FirstName = $uservars.FirstName $LastName = $uservars.LastName $HomePhone = $uservars.HomePhone $Initials = $uservars.Initials $Manager = $uservars.Manager $MobilePhone = $uservars.MobilePhone $Notes = $uservars.Notes $Office = $uservars.Office $OtherFax = $uservars.OtherFax $OtherHomePhone = $uservars.OtherHomePhone $OtherTelephone = $uservars.OtherTelephone $Pager = $uservars.Pager $Phone = $uservars.Phone $PhoneticDisplayName = $uservars.PhoneticDisplayName $PostalCode = $uservars.PostalCode $PostOfficeBox = $uservars.PostOfficeBox $StateOrProvince = $uservars.StateOrProvince $StreetAddress = $uservars.StreetAddress $Title = $uservars.Title $WebPage = $uservars.WebPage [$WindowsEmailAddress = $uservars.WindowsEmailAddress $Name = $uservars.Name } #The following variables can be used for the signature: #------------------------------------------------------------------------------------------------------------------------- #Define text for the text-only signature: #------------------------------------------------------------------------------------------------------------------------- $txtsignature = ` " ---``r`n Yours sincerely`r`n $firstname $lastname`r`n $Department`r`n `r`n Fon: $phone`r`n Fax: $fax`r`n `r`n FrankysWeb`r`n " #Here Set text for the HTML signature: #------------------------------------------------------------------------------------------------------------------------- $htmlsignature = ` " <b> --- With kind regards $firstname $lastname $Department Phone: $phone Fax: $fax FrankysWeb </b> " Assign #Sigantur: #------------------------------------------------------------------------------------------------------------------------- write-host "Create signature for $SamAccountName" $signature = Set-MailboxMessageConfiguration $SamAccountName -SignatureText $txtsignature -SignatureHtml $htmlsignature -AutoAddSignature:$true }
These variables can be used to generate the signature:
$SamAccountName
$UserPrincipalName
$WindowsLiveID
$NetID
$AssistantName
$City
$Company
$CountryOrRegion
$Department
$DisplayName
$Fax
$FirstName
$HomePhone
$Initials
$LastName
$Manager
$MobilePhone
$Notes
$Office
$OtherFax
$OtherHomePhone
$OtherTelephone
$Pager
$Phone
$PhoneticDisplayName
$PostalCode
$PostOfficeBox
$StateOrProvince
$StreetAddress
$Title
$WebPage
$WindowsEmailAddress
$Name
In the lower part of the script, a signature can then be created with these variables, which is attached accordingly in OWA. Similar to Outlook.
Please note that a line break must be inserted in the text-only signature so that the entire signature is not on one line ("`r`n").
The script applies to OWA, not Outlook. Have fun with it.
Funktioniert das Skript auch für Nutzer von Outlook für Android?
Die Zeile 46 erzeugt eine Fehlermeldung, ich habe sie auskommentiert.
Außerdem noch ein Tipp für schöne HTML Signaturen inkl. den Variablen darin:
Beginn mit Zeile 103:
$htmlsignature = `
@‘
—
Mit freundlichen Grüßen XXXXXXX GmbH
{0} {1}
={2}= Telefon: {3} Mobil: {4}
‚@ -f $firstname, $lastname, $Department, $phone, $MobilePhone
Danach folgt der write-host Befehl
Mit den @ Zeichen und anschließend dem Parameter -f und den folgenden Variablen werden die Variablen in den HTML Code geschrieben (die geschweiften Klammern)! Außerdem muss man einfache Anführungsstriche für den gesamten HTML Code verwenden weil im HTML Code selber normale Anführungszeichen verwendet werden!
Getestet mit Exchange 2016 !
Insgesamt ein super Artikel! Hätte nicht gedacht das ganze so einfach zu realisieren!
Mein Code wurde leider teileise direkt umgesetzt! :-(
Keine Ahnung wie ich Code als Kommentar schreiben kann
Hallo Frank!
Danke fuer das tolle Skript!
„Leider“ habe ich dazu noch eine Frage…
Wir haben ein Konstrukt mit mehreren Windows-Subdomaenen und wenn ich für jede Domaene ein eigenes Skript baue (was ich wegen der unterschiedlichen Signaturinhalte leider machen muss) und das Skript für die erste Subdomaenne durchlaufen lasse (Filterung mit $mailboxes = get-mailbox -resultsize unlimited | where {$_.EmailAddresses -like („*.abc@xyz.de“)}), ist noch alles gut. Wenn ich aber anschl. dann das Skript fuer die zweite Subdomaene anwerfe, steht bei allen OWA-Postfaechern aus der ersten Subdomaene im Signaturfeld nur noch „True“. Was mache ich falsch? Ansonsten ist das genau das, was wir suchen…
Danke!
Gruss,
Max
Hallo Frank,
vielen Dank für dieses geniale Script um die OWA-Signaturen in den Griff zu bekommen.
Siehst du eine Möglichkeit das Script so anzupassen, dass man damit auch die Office365-OWA-Accounts mit einer einheitlichen Signatur versehen kann?
Viele Grüße aus Augsburg
Roland