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
Please also mark the comments that contributed to the solution of the article
Content-Key: 324437
Url: https://administrator.de/contentid/324437
Printed on: April 19, 2024 at 10:04 o'clock
12 Comments
Latest comment
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.
}