• Active Directory
    • AD Consulting
    • AD Design
      • Domain Name festlegen
      • Domain Struktur einrichten
      • Forest Struktur definieren
    • AD Management
    • AD Automation
      • Dynamic Access Control (DAC)
    • AD Federation Services
      • ADFS Betrieb
      • ADFS und Office365
      • ADFS und Cisco Unified Communications Manager
      • SAML und ADFS 2.0
  • Azure / M365
    • Azure AD
    • Microsoft 365 (O365)
  • Migration
    • Active Directory Migration
    • Exchange Migration
    • File Server Migration
    • Lotus Notes Migration
    • Novell Migration
  • Wissen
    • Alle Beiträge
    • Administration
    • PowerShell
    • Migration
    • Exchange
    • Tools
  • Kontakt
    • Wir über uns
    • Kontakt
  • EN
info@firstattribute.com
by FirstAttribute
Active Directory FAQActive Directory FAQ
  • Active Directory
    • AD Consulting
    • AD Design
      • Domain Name festlegen
      • Domain Struktur einrichten
      • Forest Struktur definieren
    • AD Management
    • AD Automation
      • Dynamic Access Control (DAC)
    • AD Federation Services
      • ADFS Betrieb
      • ADFS und Office365
      • ADFS und Cisco Unified Communications Manager
      • SAML und ADFS 2.0
  • Azure / M365
    • Azure AD
    • Microsoft 365 (O365)
  • Migration
    • Active Directory Migration
    • Exchange Migration
    • File Server Migration
    • Lotus Notes Migration
    • Novell Migration
  • Wissen
    • Alle Beiträge
    • Administration
    • PowerShell
    • Migration
    • Exchange
    • Tools
  • Kontakt
    • Wir über uns
    • Kontakt
  • EN

Exchange – „Senden als“-Berechtigung mit PowerShell

Feb 3, 2022 (Letztes Update) | Posted by Steve König Exchange, PowerShell |

 

Exchange – „Senden als“-Berechtigung mit PowerShell

In Exchange gibt es die Möglichkeit, eine „Senden als“-Berechtigung für Konten zu vergeben. Dies bedeutet, dass ein Konto vorgeben kann, es würde eine E-Mail von einem anderen Konto senden. Der Empfänger merkt dabei keinen Unterschied, dass die E-Mail ursprünglich von einem anderen Konto gesendet wurde.

Inhaltsverzeichnis

  • 1 „Senden als“-Berechtigung im Exchange Admin Center
  • 2 Remote-Session mit Powershell
  • 3 Setzen der „Senden als“-Berechtigung
  • 4 Auslesen der „Senden als“-Berechtigung
  • 5 E-Mail-Adressen extrahieren
  • 6 Komplette Skripte als Funktionen

„Senden als“-Berechtigung im Exchange Admin Center

Direkt im Exchange (hier am Beispiel von Exchange 2016) kann das im Exchange Admin Center unter dem Punkt „Postfachstellvertretung“ eines Kontos eingestellt werden.

Remote-Session mit Powershell

Das funktioniert natürlich auch über Powershell, entweder direkt im Exchange oder mit einer Remote-Session. Da dieses Skript sich zur Automatisierung eignet, möchte ich in diesem Artikel kurz aufzeigen, wie man von einem Remote-PC die „Senden als“-Berechtigung eines Kontos setzt und ausliest. Das entstehende Skript ist kompatibel mit den Exchange-Versionen 2010, 2013 und 2016.

Um über einen Remote-PC Exchange-CmdLets ausführen zu können, benötigen wir eine Powershell-Session auf dem Exchange. Dazu muss entweder die Powershell mit den entsprechenden Berechtigungen gestartet werden oder man übergibt dem CmdLet zum Erstellen der Session ein entsprechendes Credential. Dies kann interaktiv wie folgt abgefragt werden:

PowerShell
1
$credential = Get-Credential

Für die Automatisierung ist das natürlich nicht geeignet. Wie man Credentials auch sicher abspeichern und auslesen kann, zeige ich in dem Beitrag Sessions von domänenfremden PCs importieren.

Nun müssen wir die Session vom Exchange importieren. Dies machen wir via Kerberos-Authentifizierung, indem wir das Credential übergeben. Dazu brauchen wir die URL des Powershell-Webservices des Exchange-Servers. Diese ist immer: https://<DNS Name des Exchange>/Powershell

Damit erstellen wir eine neue Session und importieren diese anschließend:

PowerShell
1
2
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://SEXC01/PowerShell/ -Authentication Kerberos -Credential $credential
Import-PSSession $session -CommandName Add-ADPermission

Beim Import-Session werden standardmäßig alle CmdLets der Session importiert. Das ist in unserem Fall unnötig, da wir nur das Add-ADPermission-CmdLet benötigen. Wegen der besseren Performance importieren wir auch nur dieses.

Active-Directory-Delegation-Powershell

Setzen der „Senden als“-Berechtigung

Zum Setzen der Berechtigung brauchen wir zwei Informationen: Die Identität des Nutzers (samAccountName, objectGUID etc.), für den die Berechtigung gesetzt werden soll, sowie die E-Mail-Adresse, für die er die „Senden als“ Berechtigung erhalten soll. Die Berechtigung wird dann mit folgendem Befehl gesetzt:

PowerShell
1
Add-ADPermission -Identity “test.user” -User “other.user@demofa.net” -AccessRights ExtendedRight -ExtendedRights "Send As"

Das war es auch eigentlich schon. Am Ende sollten wir allerdings nicht vergessen, die Session wieder zu entfernen, da diese sonst offen bleibt:

PowerShell
1
Remove-PSSession $session

Auslesen der „Senden als“-Berechtigung

Nun zum zweiten Teil, der eigentlich einfacher als das Setzen der Berechtigung sein sollte, aber ein wenig trickreicher ist: Das Auslesen der Berechtigung. Auch hier machen wir mit dem New-PSSession-Command wieder eine neue Session auf und importieren diese dann. Beim Import selbst allerdings brauchen wir andere CmdLets:

PowerShell
1
Import-PSSession -Session $session -CommandName Get-Mailbox, Get-ADPermission

Zuerst holen wir uns die Mailbox des Nutzers heran, von dem wir die Berechtigung auslesen wollen:

PowerShell
1
$mb = Get-Mailbox „test.user@demofa.net“

Für diese Mailbox brauchen wir jetzt die AD-Permissions. Die „Senden als“-Berechtigungen verstecken sich dabei in den „Extended Rights“ und müssen dort herausgesucht werden. Zusätzlich wollen wir (normalerweise) keine vererbten Berechtigungen sehen und auch nicht die Berechtigung auf sich selbst, die auch in den Extended Rights als „Send As“-Berechtigungen hinterlegt sind.

Zusammengefasst in einem Befehl sieht das so aus:

PowerShell
1
$users = $mb | Get-ADPermission | where {($_.ExtendedRights -like "*Send-As*") -and ($_.IsInherited -eq $false) -and -not ($_.User -like "NT AUTHORITY\SELF")}
PowerShell
1
 

E-Mail-Adressen extrahieren

In $users finden wir alle Nutzer, für die test.user@demofa.net die “Senden Als”-Berechtigung hat. Leider allerdings sind dort nicht die E-Mail-Adressen enthalten, sondern nur der Anmeldename in Form von <Domäne>\<Anmeldename>. Mit einem kleinen Trick aber können wir die Mailadresse einfach finden. Diese steht schließlich auch im angebundenen Active Directory. Wir suchen einfach nach dem Nutzer mit dem Anmeldenamen in der Domäne, lesen seine E-Mail-Adresse aus und fügen uns diese eine Liste hinzu. In Skript sieht das folgendermaßen aus:

PowerShell
1
2
3
4
5
$sendAsMailAddresses = New-Object System.Collections.ArrayList($null)
foreach($user in $users) {
   $adUser = Get-ADUser $user.User.Split("\")[1] -Properties mail
   $sendAsMailAddresses.Add($adUser.mail)
}

Wir gehen über unsere $users-Liste – bei jedem $user steht in $user.User der Name in oben genannter Form. Deswegen splitten wir ihn am „\“ auf, sodass wir nur den Anmeldenamen zum Suchen im AD verwenden. Wir wollen natürlich die Eigenschaft mail auslesen und diese anschließend unserer finalen Liste hinzufügen.

Jetzt können wir $sendAsMailAddresses durchgehen und schauen, welche Adressen darin enthalten sind. Damit sind wir auch hier fertig. Aber auch hier dürfen wir am Ende nicht vergessen, die PS-Session wieder zu entfernen:

PowerShell
1
Remove-PSSession $session

Komplette Skripte als Funktionen

Zum Abschluss noch einmal die zwei Skripte komplett als Funktionen, denen man die entsprechenden Werte als Parameter übergeben kann:

Setzen der „Senden als“-Berechtigung

PowerShell
1
2
3
4
5
6
7
8
9
10
11
function add-sendas-permissions {    
   param($identity, $mailToAdd)
  
   $credential = Get-Credential    
   $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://SEXC01/PowerShell/ -Authentication Kerberos -Credential $credential    
   Import-PSSession $session -CommandName Add-ADPermission
 
   Add-ADPermission -Identity $identity -User $mailToAdd -AccessRights ExtendedRight -ExtendedRights "Send As"    
  
   Remove-PSSession $session
}

Auslesen der „Senden als“-Berechtigung

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function get-mailbox-info {    
   param($mail, $identity)
    
   $credential = Get-Credential    
   $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://SEXC01/PowerShell/ -Authentication Kerberos -Credential $credential    
   Import-PSSession -Session $session -CommandName Get-Mailbox, Get-CASMailbox, Get-ADPermission
 
   $mb = Get-Mailbox $mail    
   $users = $mb | Get-ADPermission | where {($_.ExtendedRights -like "*Send-As*") -and ($_.IsInherited -eq $false) -and -not ($_.User -like "NT AUTHORITY\SELF")}  
   $sendAsMailAddresses = New-Object System.Collections.ArrayList($null)
 
   foreach($user in $users) {        
     $adUser = Get-ADUser $user.User.Split("\")[1] -Properties mail        
     $sendAsMailAddresses.Add($adUser.mail)    
   }
 
   Write-Host $sendAsMailAddresses    
 
   Remove-PSSession $session
}
Artikel weiterempfehlen:
  • teilen
  • tweeten
  • sharen
  • xingen
  • mailen
Artikel erstellt am: 19.09.2017
Tags: BerechtigungenExchangeExchange 2016Send asSenden als
0

You also might be interested in

Exchange Autodiscover im Ressourceforest

Mrz 30, 2012

Will man bei Exchange 2010 die Autodiscover Funktion außerhalb des[...]

Migrator-for-GroupWise-4.6

Dell Migrator for GroupWise 4.6 unterstützt Exchange 2016

Mrz 28, 2016

Dell hat vor einigen Tagen eine neue Version des ‚Dell[...]

PowerShell group policy cmdlets

Exchange: Verteilerlisten mit mehreren Managern

Mrz 5, 2015

Es ist ein alter Hut, dass durch das Setzen der[...]

Leave a Reply

<p>Danke für Ihre Anregungen, Fragen und Hinweise.<br/>Infos zum <a href="https://www.active-directory-faq.dekontakt/">Datenschutz</a></p>
Cancel Reply

FirstWare IDM-Portal im Test: IT-Administrator 08-2022

 

ADFAQ-FirstAttribute

Wer schreibt ?

Team der FirstAttribute AG

Consultants und Entwickler der FirstAttribute arbeiten seit mehr als 20 Jahren in IAM- und Cloud-Transition-Projekten.
Zusammen verfügen Sie über einen wertvollen Erfahrungsschatz im Bereich Active Directory und Azure AD und teilen diesen auf Active Directory FAQ.

Neueste Artikel

  • 8 Tipps für mehr Sicherheit in Active Directory und Backups von AD
  • Azure AD Custom Security Attributes ermöglichen flexible Berechtigungsstrukturen
  • Dateiberechtigungen in MS Teams und SharePoint Online verwalten – So funktioniert es
  • AD-Gruppen in Microsoft Teams verwenden – Dynamische Gruppen in der Praxis
  • Verbindung zwischen Microsoft 365 und SharePoint Online zu Azure AD

Unsere IAM-Lösungen

Ihre IAM-Lösung: FirstWare IDM-Portal

 

my-IAM für Cloud Identity Management in Microsoft Teams

Kontakt aufnehmen

Sie haben eine Frage oder Anmerkung? Schicken Sie uns schnell eine Nachricht.

Nachricht senden
Jetzt AD Tasks vereinfachen und delegieren: FirstWare IDM-Portal

Folgen Sie uns

Kontakt

  • FirstAttribute AG
  • Am Büchele 18, 86928 Hofstetten, Germany
  • +49 89 215 442 400
  • https://www.firstattribute.com

Schlagwörter

.Net ACL Active Directory AD LDS AD Objekt Azure AD Berechtigung Cloud cmdlets Delegation Domain Controller dynamicgroup dynamische Gruppen Exchange Exchange-Ordner Exchange-Postfach Exchange Migration Federation FirstWare Get-Mailbox Global Catalog Group Policy Gruppen Gruppenmitgliedschaft IDM-Portal LDAP m365 Microsoft Azure Migration New-ADUser Novell NTFS Office 365 PowerShell QMM QMM AD QMM Exchange Quest Migration Manager Schema Set-ADUser SID SID History Update Windows 10 Windows Server 2012 R2

Neueste Kommentare

  • activedirectoryfaq.com sharepoint login - infoslist bei Windows 365 und Azure AD verstehen in Theorie und Praxis
  • Domäne Letzte Anmeldung - ObenGesichert.com bei LastLogon vs. LastLogonTimestamp
  • Teams Code Zur Anmeldung - ObenGesichert.com bei Authentifizierung für MS Teams in hybriden Netzwerken
Login
Impressum
Datenschutzerklärung

© 2023 · Active-Directory-FAQ by firstattribute.com

Prev Next