Exchange 2013 Abwesenheitsnotiz per Powershell anpassen
Guten Tag,
ich wollte gerne bei verschiedenen Benutzern bzgl. Betriebsferien den Abwesenheitstext in Outlook anpassen.
Das Funktioniert mit meinem Skript auch recht gut. Was der Benutzer allerdings noch machen muss, ist seine Signatur dort einzufügen.
Dies wollte ich ebenfalls gerne im Text mitgeben, bekomme allerdings keine vernünftigen Werte zurück.
Wenn ich jetzt die Variabel $Username angebe dann kommt auch mein Benutzername nur halt nicht in der Formatierung wie es sein soll.
Es wird dann so @{samaccountname max.mustermann} dar gestellt und das schaut echt doof aus.
Hat da jemand von Euch einen Tipp für mich was ich machen müsste um die Signatur sauber einzufügen?
Vielen Dank
ich wollte gerne bei verschiedenen Benutzern bzgl. Betriebsferien den Abwesenheitstext in Outlook anpassen.
Das Funktioniert mit meinem Skript auch recht gut. Was der Benutzer allerdings noch machen muss, ist seine Signatur dort einzufügen.
Dies wollte ich ebenfalls gerne im Text mitgeben, bekomme allerdings keine vernünftigen Werte zurück.
# ActiveDirectoryModul laden
Import-Module ActiveDirectory
# Exchange Snapin laden
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
# Text auf Mitglieder der Gruppe anwenden (deutsch)
Get-ADGroupMember $group_name1 | Get-ADUser -Properties Company | %{
$mailbox = Get-Mailbox $_.SamAccountName -ErrorAction SilentlyContinue
$username = Get-ADGroupMember $group_name1 | Get-ADUser | Select-Object SamAccountName
$company = Get-ADGroupMember $group_name1 | Get-ADUser -Properties Company | Select-Object Company
$GetMailboxState = Get-MailboxAutoReplyConfiguration $mailbox
if ($GetMailboxState.AutoReplyState -eq 'Enabled')
{
echo "do nothing"
}
else{
Set-MailboxAutoReplyConfiguration -Identity $mailbox -ExternalAudience all -InternalMessage $Emailbody -ExternalMessage $Emailbody
$EmailBody = @"
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<span style="font-family: Calibri;">
Sehr geehrte Damen und Herren, <br><br>
ich bin derzeit nicht im Hause. Ihre Email-Nachricht wird nicht weiter geleitet. <br><br>
Sollten Sie ein technisches Anliegen haben senden sie ihre Nachricht bitte an emailadresse oder wenden sie sich an die IT-Servicedesk unter Tel.: +49 123456789.
<br><br>
Danke
<br><br>
Mit freundlichen Grüßen<br><br>
$username
Wenn ich jetzt die Variabel $Username angebe dann kommt auch mein Benutzername nur halt nicht in der Formatierung wie es sein soll.
Es wird dann so @{samaccountname max.mustermann} dar gestellt und das schaut echt doof aus.
Hat da jemand von Euch einen Tipp für mich was ich machen müsste um die Signatur sauber einzufügen?
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 324437
Url: https://administrator.de/forum/exchange-2013-abwesenheitsnotiz-per-powershell-anpassen-324437.html
Ausgedruckt am: 14.04.2025 um 19:04 Uhr
12 Kommentare
Neuester Kommentar
Moin,
Gruß,
Dani
ich wollte gerne bei verschiedenen Benutzern bzgl. Betriebsferien den Abwesenheitstext in Outlook anpassen.
wenn sich die Anzahl der betoffenen Benutzer in Grenze hält, bist du evtl. mit dem Tool schneller.Gruß,
Dani

Zitat von @blackhawk17:
Hallo
leider nein.
Leider funktioniert meine Abfrage doch nicht so wie gedacht.
Er hängt jetzt alle Benutzer der Gruppe an den Text mit dran.
Kein Wunder, da stimmt ja auch einiges nichtHallo
leider nein.
Leider funktioniert meine Abfrage doch nicht so wie gedacht.
Er hängt jetzt alle Benutzer der Gruppe an den Text mit dran.
# ActiveDirectoryModul laden
Import-Module ActiveDirectory
# Exchange Snapin laden
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
# Text auf Mitglieder der Gruppe anwenden (deutsch)
Get-ADGroupMember $group_name1 -Recursive | Get-ADUser -Properties Company | select -Unique | %{
$mailbox = Get-Mailbox $_.SamAccountName -ErrorAction SilentlyContinue
if ($mailbox){
if ((Get-MailboxAutoReplyConfiguration $mailbox).AutoReplyState -ne 'Enabled'){
$EmailBody = @"
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<span style="font-family: Calibri;">
Sehr geehrte Damen und Herren, <br><br>
ich bin derzeit nicht im Hause. Ihre Email-Nachricht wird nicht weiter geleitet. <br><br>
Sollten Sie ein technisches Anliegen haben senden sie ihre Nachricht bitte an emailadresse oder wenden sie sich an die IT-Servicedesk unter Tel.: +49 123456789.
<br><br>
Danke
<br><br>
Mit freundlichen Grüßen<br><br>
$($_.Name)
"@
Set-MailboxAutoReplyConfiguration -Identity $mailbox -ExternalAudience all -InternalMessage $Emailbody -ExternalMessage $Emailbody
}
}
}

Mit $($_.Name) lese ich ja nun das Feld Name aus, welches sich in der Variable $mailbox befindet.
Falsch! Das sind schon die Informationen von Get-ADUser, da wir uns ja in der Pipe über diese Objekte befinden. Also kannst du die Eigenschaften direkt ansprechen wenn du diese auch bei Get-AdUser unter -properties angibst.Mit Angabe von einem * werden alle Eigenschaften abgefragt und in der Pipe übergeben. Innerhalb der Schleife kannst du sie dann wie gewhohnt über die Schleifenvariable abfragen:
Get-ADGroupMember $group_name1 -Recursive | Get-ADUser -Properties * | select -Unique | %{
$_.Company
$_.EMailAddress
$_.Department
# usw.
}