The estimated reading time 3 minutes
Ich habe mich entschieden diesen Artikel zu schreiben, da die „Senden Als“ Funktion immer wieder für Verwirrung und einige Mythen sorgt.
Viele Firmen nutzen diese durchaus nützliche Funktion um ihre persönliche E-Mail Adresse zu verschleiern. Auch zum Senden aus einem Team Postfach bestens geeignet. Nun zum eigentlichen „Problem“ (manche bemerken gar nicht, dass ein Problem besteht). Wenn also ein Benutzer die Berechtigung „Senden Als“ nutzt werden die gesendeten nicht in im anderen Postfach unter „gesendete“ abgelegt, sondern im eigenen. Meistens fällt dies in Verbindung mit freigegebenen Postfächern auf. Wenn mehrere Benutzer das Postfach als Ausgangspostfach verwenden, werden die ausgehenden Mails nicht dort abgelegt, sprich die Benutzer sehen die ausgegangenen Mails der anderen Benutzer nicht.
Hierzu gibt es auch einen offiziellen MS-Artikel
Damit Exchange dies automatisch erledigt, muss diese „Funktion“ pro Postfach aktiv geschaltet werden. Dies kann nur über die PowerShell erledigt werden.
Set-Mailbox sharedmailbox@it-koehler.com -MessageCopyForSendOnBehalfEnabled $true
Nach dem Absetzen des Befehls wird jede Nachricht, die „gesendet als“ im „Gesendete“ Ordner von Exchange Online abgelegt.
Wie kommen wir nun an die Exchange Online PowerShell heran? Vor einiger Zeit wurde ein neues Modul für Exchange Online freigegeben; Exchange Online PowerShell V2
Siehe Link für die Anleitung zur Installation Link-MS-Artikel
Deshalb nur hier in Kürze wie ich das Modul bei mir installiert habe:
Install-Module -Name ExchangeOnlineManagement -Scope AllUsers -Verbose -Force Import-Module -Name ExchangeOnlineManagement -Verbose Get-Module ExchangeOnlineManagement $creds = Get-Credential Connect-ExchangeOnline -Credential $creds
Nach der erfolgreichen Verbindung zu EX Online können folgende cmdlets verwendet werden.
#see all mailboxes with reduced properties Get-EXOMailbox #see all mailboxes with "all" properties Get-EXOMailbox -PropertySets All #get all mailboxes and see where MessageCopy is enabled Get-EXOMailbox -PropertySets Delivery | fl *userprin*,*copy*
Wer gerne etwas mehr hierzu erfahren möchte kann sich auf diesem LINK informieren.
Wie schon erwähnt wird diese Funktion sehr oft bei freigegebenen Postfächern benötigt. Was ist nun also wenn man sehr viele davon hat und nicht alle einzeln berechtigen möchte.
Mein kleines Skript im Nachgang kann dies übernehmen, zusätzlich habe ich noch etwas Output geschrieben, sodass auch nachvollzogen werden kann, ob das Skript funktioniert hat.
Skript:
#getting all shared mailboxes and related properties $sharedmailboxes = Get-EXOMailbox -PropertySets Delivery -Properties RecipientTypeDetails | Where-Object{$_.RecipientTypeDetails -eq "SharedMailbox"} | Sort-Object UserPrincipalName #modify every shared mailbox foreach($mb in $sharedmailboxes){ $upn = ($mb).UserprincipalName Write-Host "$upn MessageCopySentAs before modification:" $mb.MessageCopyForSentAsEnabled -ForegroundColor Yellow Write-Host "$upn MessageCopyForSendOnBehalf before modification:" $mb.MessageCopyForSendOnBehalfEnabled -ForegroundColor Yellow Write-Host "Changing MessageCopySentAs and MessageCopySendOnBehalf for user $upn " -ForegroundColor Cyan #setup the mailbox for copy enabled Set-Mailbox -Identity $upn -MessageCopyForSentAsEnabled $true -MessageCopyForSendOnBehalfEnabled $true #check if set correctly $changeduser = Get-EXOMailbox -PropertySets Delivery -Identity $upn $messagecopysentas = ($changeduser).MessageCopyForSentAsEnabled $messagecopysendonbehalf = ($changeduser).MessageCopyForSendOnBehalfEnabled #check if messagecopy sentas is set to true if($messagecopysentas){ Write-Host "User $upn MessageCopyForSentAsEnabled is set to $messagecopysentas" -ForegroundColor Green } else{ Write-Host "error:User $upn MessageCopyForSentAsEnabled is set to $messagecopysentas, please try manually" -ForegroundColor Red } #check if messagecopy sendonbehalf is set to true if($messagecopysendonbehalf){ Write-Host "User $upn MessageCopyForSendOnBehalf is set to $messagecopysendonbehalf" -ForegroundColor Green } else{ Write-Host "error:User $upn MessageCopyForSendOnBehalf is set to $messagecopysendonbehalf, please try manually" -ForegroundColor Red } }
Kurz beschrieben: es sucht nach allen Freigegebenen Postfächern und setzt folgende Parameter:
MessageCopyForSentAsEnabled $true
MessageCopyForSendOnBehalfEnabled $true
Nach dem Setzen der Parameter wird die Option nochmals geprüft und falls es nicht funktioniert wird eine rote Fehlermeldung ausgegeben. Bald gibt es einen weiteren Artikel über das Thema Exchange Online PowerShell V2 usecases. Viel Spaß mit dem Skript. Falls euch der Artikel gefallen hat, klickt bitte auf „Helpful“, wenn ihr Fragen habt, dann einfach einen Kommentar da lassen. Bis bald.
Hi, nun werden die gesendeten Mails ja in den Ordner „Gesendete Elemente“ des Original Postfachs UND des freigebenen Postfachs kopiert. Hast du mir einen Tipp, wie ich verhindern kann, dass das Original Postfach die über das freigebene Postfach gesendeten Mails bekommt? Hintergrund ist, dass das Original Postfach von Dritten mitgelesen wird und diese nicht die Mails des freigebenen Postfachs lesen sollen, auch nicht die Gesendeten. Vielen Dank und Gruß!
Hi Andy,
leider wäre mir hier keine Lösung bekannt. Ich habe dies auch bereits festgestellt, konnte bisher aber keine technische Lösung dafür finden.
Man könnte man noch die RegKeys für Outlook testen, aber meines Wissens verhalten die sich identisch zum PowerShell Befehl in Exchange.
Viele Grüße
Alexander
Vielen Dank für deine Antwort!