Und wieder ein schnelles Script aus der Kategorie Quick & Dirty: Einheitliche E-Mail Signaturen für OWA. Wer keine Drittanbieter Software im Einsatz hat, die einheitliche Mail Signaturen auch in OWA verteilen kann, der kann auf dieses schnelle Script zurückgreifen:
$mailboxes = get-mailbox -resultsize unlimited foreach ($mailbox in $mailboxes) { $uservars = get-user $mailbox if ($uservars) { $SamAccountName = $uservars.SamAccountName $UserPrincipalName = $uservars.UserPrincipalName [string]$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 [string]$WindowsEmailAddress = $uservars.WindowsEmailAddress $Name = $uservars.Name } #Die folgenden Variablen können für die Signatur genutzt werden: #------------------------------------------------------------------------------------------------------------------------- <# $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 #> #Hier Text für die Nur-Text Signatur festlegen: #------------------------------------------------------------------------------------------------------------------------- $txtsignature = ` " ---`r`n Mit freundenlichen Grüßen`r`n $firstname $lastname`r`n $Department`r`n `r`n Fon: $phone`r`n Fax: $fax`r`n `r`n FrankysWeb`r`n " #Hier Text für die HTML Signatur festlegen: #------------------------------------------------------------------------------------------------------------------------- $htmlsignature = ` " <b> --- Mit freundenlichen Grüßen $firstname $lastname $Department Fon: $phone Fax: $fax FrankysWeb </b> " #Sigantur zuweisen: #------------------------------------------------------------------------------------------------------------------------- write-host "Erstelle Signatur für $SamAccountName" $signature = Set-MailboxMessageConfiguration $SamAccountName -SignatureText $txtsignature -SignatureHtml $htmlsignature -AutoAddSignature:$true }
Diese Variablen können zum Erzeugen der Signatur verwendet werden:
$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
Im unteren Teil des Scripts kann dann mit diesen Variablen eine Signatur erzeugt werden, die entsprechend in OWA angehangen wird. Ähnlich wie in Outlook auch.
Bitte beachten das bei der Nur-Text Signatur ein Zeilenumbruch eingefügt werden muss, damit nicht die komplette Signatur in einer Zeile steht („`r`n“)
Das Script gilt für OWA, nicht für Outlook. Viel Spaß damit.
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