HowTo: Outlook Signatur mit PowerShell aus Active-Directory erstellen

In diesem HowTo geht es um die Erstellung einer Microsoft Outlook Signatur mittels PowerShell aus dem Active-Directory (AD). Zuerst müssen die drei erforderlichen Template-Dateien (htm, rtf und txt) erstellt werden. Das Layout der beispielhaften Template-Dateien sollte sich am Corporate Design orientieren, und deshalb angepasst werden.

Das HowTo ist sehr einfach gehalten, und man kann es deshalb selbst weiterentwickeln bzw. ausbauen. Eine Erweiterung zum Auslesen multipler User sowie anderer AD-Attribute aus dem AD-Schema ist zu empfehlen.

Inhalt signatur.htm:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
</head>
<body>

<div style="font-family: Calibri; font-size: 11pt; color: DimGray">	
		<strong>Mit freundlichen Grüßen</strong><br><br>
		<strong>@NAME</strong><br>
</div>

<div style="font-family: Calibri; font-size: 10pt; color: DimGray">
		@DESCRIPTION<br>
</div>

<div style="font-family: Calibri; font-size: 10pt; color: SteelBlue">
		<strong>@COMPANY</strong>
</div>

<div style="font-family: Calibri; font-size: 10pt; color: DimGray">	
	@STREETADDRESS, @POSTALCODE @CITY<br>
	<strong>Tel</strong> @OFFICEPHONE, <strong>Fax</strong> @FAX<br>
	<a style="color: SteelBlue" href="mailto:@EMAIL">@EMAIL</a><br>
	<a style="color: SteelBlue" href="http://@WEBSITE">@WEBSITE</a><br>
	</p>
	<br>
	<p></p>
</div>

</body>
</html>

Inhalt signatur.rtf und signatur.txt:

Mit freundlichen Grüßen

@NAME
@DESCRIPTION
@COMPANY
@STREETADDRESS, @POSTALCODE @CITY
Tel @OFFICEPHONE Fax @FAX
@EMAIL
@WEBSITE

Die Template-Dateien sollten nun in das Verzeichnis kopiert werden, welche als Variable $PathSignaturTemplates angegeben wird.

Nun kann ein neues PowerShell-Skript (ps1) erstellt werden.

Festlegen der Variablen:

$User = "musterfrau"
$FileName = "signatur"
$FileExtension = "htm","rtf","txt"
$Path = "C:\Users\Public\Downloads"
$PathSignatur = "$Path\OutlookSignatur"
$PathSignaturTemplates = "$Path\OutlookSignaturTemplates"
$PathSignaturUser = "$PathSignatur\$User"

Auslesen der AD-Attribute aus dem AD-Userobjekt und Übergabe in eine Variable:

$Table = Get-ADUser $User -Properties City,Company,Description,Fax,HomePage,Mail,OfficePhone,PostalCode,StreetAddress

Verzeichnis für die Signatur-Dateien erstellen:

New-Item -Path "$PathSignatur\$User" -ItemType Container -Force

Template-Dateien in Verzeichnis für Signatur-Dateien kopieren:

foreach ($Ext in $FileExtension)
    {
        Copy-Item -Force "$PathSignaturTemplates\$FileName.$Ext" "$PathSignaturUser\$FileName.$Ext"
    }

Mit dem -replace Parameter werden die zuvor ausgelesenen AD-Attribute in den Signatur-Dateien eingefügt bzw. ersetzt:

foreach ($Ext in $FileExtension)
    {
        (Get-Content "$PathSignaturUser\$FileName.$Ext") | Foreach-Object {
                $_`
                -replace "@NAME", $Table.Name `
                -replace "@DESCRIPTION", $Table.Description `
                -replace "@COMPANY", $Table.Company `
                -replace "@STREETADDRESS", $Table.StreetAddress `
                -replace "@POSTALCODE", $Table.PostalCode `
                -replace "@CITY", $Table.City `
                -replace "@OFFICEPHONE", $Table.OfficePhone `
                -replace "@FAX", $Table.Fax `
                -replace "@EMAIL", $Table.Mail `
                -replace "@WEBSITE", $Table.Homepage `
            } | Set-Content "$PathSignaturUser\$FileName.$Ext"
    }

Danach können die erstellten Signatur-Dateien (htm, rtf und txt) in das Zielverzeichnis der Outlook-Signaturen kopiert werden:

%APPDATA%\Microsoft\Signatures

Empfehlenswert ist die tägliche Ausführung des PowerShell-Skripts mittels Aufgabenplanung. Dazu sollten die Signatur-Dateien mittels Gruppenrichtlinie bei Anmeldung eines Benutzers kopiert werden.

Photo by Nastuh Abootalebi on Unsplash

Was denken Sie über dieses Thema?

Sie können gerne hier Ihre Meinung als Kommentar hinterlassen, wir freuen uns darauf. Bleiben Sie mit uns in Kontakt via RSS, Twitter oder Facebook.

Anzeigen

Neue Beiträge

Neue Kommentare

Anzeigen

Johannes Sebald Verfasst von: