• 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

E-Mail-Adresse mit PowerShell prüfen

Feb 16, 2022 (Letztes Update) | Posted by Susann Stenker Exchange, PowerShell |

 

E-Mail-Adresse mit PowerShell prüfen

Möchten Sie einen neuen Nutzer angelegen? Dann sollten Sie prüfen, ob die gewünschte E-Mail-Adresse schon vergeben ist. Erfahren Sie in diesem Artikel, wie Sie eine E-Mail-Adresse mit PowerShell prüfen können.

Inhaltsverzeichnis

  • 1 E-Mail-Adressen im Active Directory und Exchange
    • 1.1 Exchange-Pflege delegieren
  • 2 Abfrage mit Hilfe des Active Directory
  • 3 Abfrage mit Hilfe von Exchange
  • 4 Neuer Nutzer mit IDM-Portal – automatische Prüfung
  • 5 Fazit

E-Mail-Adressen im Active Directory und Exchange

Wie schon im Artikel „Primäre E-Mail-Adresse ändern mit PowerShell“ beschrieben, werden alle E-Mail-Adressen eines Nutzers in Exchange aufgelistet:

E-Mai-Adressen im Active Directory und Exchange

Die Synchronisation der E-Mail-Adressen von Exchange erfolgt in die Active Directory-Attribute „mail und „proxyAddresses“:

Synchronisation der E-Mail-Adressen-mail
Synchronisation der E-Mail-Adressen-proxyAddresses

Wenn Sie nun ein neues Postfach mit der E-Mail-Adresse „m.muster@demofa.net“ anlegen möchten, sollten Sie zunächst überprüfen, ob Sie diese schon als primäre oder sekundäre Adresse verwenden.

Somit vermeiden Sie Fehler bei der Postfach-Anlage. Wenn nun die gewünschte E-Mail-Adresse schon vergeben ist, können Sie sich eine neue überlegen. Allerdings sollten Sie diese ebenfalls überprüfen.

Es gibt nun zwei Möglichkeiten mit PowerShell zu überprüfen, ob eine E-Mail-Adresse schon existiert. Wobei Sie die direkte Abfrage von Exchange bevorzugen wird.

PowerShell im Hintergrund

Exchange-Pflege delegieren

Nicht-IT-Mitarbeiter können Daten selbst pflegen. Dank einfacher GUI des IDM-Portals können Sie die Exchange-Pflege an Nicht-IT Mitarbeiter delegieren. Ihre Powershell Skripte laufen im Hintergrund.

Abfrage mit Hilfe des Active Directory

Zunächst nehmen wir die E-Mail-Adresse, die wir überprüfen möchten.

1
$mail="m.muster@demofa.net"

Bei dem CmdLet Get-ADUser (Modul ActiveDirctory, Import des Moduls in PowerShell mit Import-Module ActiveDirectory) ist die Angabe der SearchBase optional. Wir benötigen das Attribut proxyAddresses und den Filter, der in dem Attribut proxyAddresses nach der E-Mail-Adresse sucht.

Die Groß- und Kleinschreibung im Filter und der E-Mail-Adresse ist dabei nicht relevant.

1
2
3
Get-ADUser   -SearchBase "CN=Users,DC=demofa,DC=net"
     -Filter "proxyAddresses -eq 'smtp:$mail'"
     -Properties proxyAddresses

CmdLet gibt uns nun alle AD-User zurück, welche die E-Mail-Adresse in proxyAddresses als Wert stehen haben. Dann kann mit einem einfachen If-Statement nun die Fallunterscheidung vorgenommen werden.

1
2
3
4
5
6
7
if($users -eq $null){
    Write-Host("Die E-Mail-Adresse ist noch nicht vergeben.")
    # Do something
}else{
    Write-Host("Die E-Mail-Adresse ist vergeben.")
    # Generate new mail address
}

Hier nun noch einmal das gesamte Skript:

1
2
3
4
5
6
7
8
9
10
11
12
$mail="m.muster@demofa.net"
$users= Get-ADUser   -SearchBase "CN=Users,DC=demofa,DC=net"
     -Filter "proxyAddresses -eq 'smtp:$mail'"
     -Properties proxyAddresses
 
if($users -eq $null){
    Write-Host("Die E-Mail-Adresse ist noch nicht vergeben.")
    # Do something
}else{
    Write-Host("Die E-Mail-Adresse ist vergeben.")
    # Generate new mail address
}

PS-Konsolenausgabe:

PS-Konsolenausgabe

Alternativ fragen Sie direkt Exchange ab, ob eine E-Mail-Adresse schon verwendet wird. Hier ist die Aktualität der Attributswerte nicht von der Synchronisation zum Active Directory abhängig.

Abfrage mit Hilfe von Exchange

Um Remote auf den Exchange zugreifen zu können, benötigen wir eine PS-Session. Den Server erreichen wir über folgende URL: https://<Name oder IP des Servers>/PowerShell

1
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://exc16/PowerShell/ -Authentication Kerberos

Um nicht die komplette PS-Session importieren zu müssen, geben wir das benötigte CmdLet „Get-Recipient“ explizit an:

1
Import-PSSession -Session $session -CommandName Get-Recipient

Danach können wir ähnlich wie bei Get-ADUser die Abfrage nach der E-Mail-Adresse an Exchange stellen:

1
2
3
$mail="m.muster@demofa.net"
$recipients = Get-Recipient -ResultSize unlimited | where {$_.EmailAddresses -eq "smtp:" + $mail}

Get-Recipient gibt alle E-Mail-aktivierten Objekte zurück (z. B. Postfächer, E-Mail-Benutzer, E-Mail-Kontakte und Verteilergruppen). Will man nur die Postfachobjekte nach der E-Mail-Adresse durchsuchen, kann man das CmdLet Get-Mailbox verwenden:

1
$recipients = Get-MailBox -ResultSize unlimited | where {$_.EmailAddresses -eq "smtp:" + $mail}

Der Parameter ResultSize gibt die maximale Anzahl der zurückzugebenden Ergebnisse an. Der Standardwert ist 1000 und unlimited gibt alle Ergebnisse zurück.

Wie schon zuvor kann mit einem einfachen If-Statement die Fallunterscheidung vorgenommen werden:

1
2
3
4
5
6
7
if($recipients -eq $null){
    Write-Host("Die E-Mail-Adresse ist noch nicht vergeben.")
    # Do something
}else{
    Write-Host("Die E-Mail-Adresse ist vergeben.")
    # Generate new mail address
}

Zuletzt schließen wir die PS-Session wieder:

1
Remove-PSSession $session &gt; $null

Zum Schluss hier nun noch einmal das komplette Skript:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://exc16/PowerShell/ -Authentication Kerberos
Import-PSSession -Session $session -CommandName Get-Recipient
 
$mail="m.muster@demofa.net"
 
$recipients = Get-Recipient -ResultSize unlimited | where {$_.EmailAddresses -eq "smtp:" + $mail}
if($recipients -eq $null){
    Write-Host("Die E-Mail-Adresse ist noch nicht vergeben.")
    # Do something
}else{
    Write-Host("Die E-Mail-Adresse ist vergeben.")
    # Generate new mail address
}
 
Remove-PSSession $session &gt; $null

Neuer Nutzer mit IDM-Portal – automatische Prüfung

Mit IDM-Portal, können Sie schnell und einfach Nutzer anlegen und die Mail-Adresse prüfen.
Mit einen Klick legen Sie einen neuen Benutzer an und erhalten Sie automatisch eine Fehler-Benachrichtigung, wenn die E-Mail-Adresse schon vergeben ist. 

Dank die Delegationsrollen können auch andere Abteilungen (z.B: Personalabteilung) solche Aufgaben übernehmen. Somit können alle Anwender Anforderungen schnell erledigt werden. 

E-Mail Adresse mit IDM-Portal prüfen

Fazit

Fehler in der Postfach-Anlage, wie z.B. doppelte E-Mail-Adressen, lassen sich leicht vermeiden. Mit einer PowerShell-Abfrage gegen Ihren Exchange-Server finden Sie schnell heraus, ob die gewünschte E-Mail-Adresse schon existiert und können diesen Fall entsprechend behandeln. Mit dem IDM-Portal wird dieses Skript auch in den Anlage-Prozess integriert.

Unterstützung benötigt?

Gerne stellen wir Ihnen unsere Leistungen und Lösungen in einem persönlichen Gespräch vor und würden uns über Ihre Kontaktaufnahme sehr freuen!

Artikel weiterempfehlen:
  • teilen
  • tweeten
  • sharen
  • xingen
  • mailen
Artikel erstellt am: 27.08.2019
Tags: Active DirectoryE-Mail-AdresseExchangePowerShell
0

You also might be interested in

Powershell Mail-an-Mitglieder-einer-AD-Gruppe

E-Mail an Mitglieder einer AD Gruppe senden

Jun 28, 2016

Manchmal ist es notwendig alle Nutzer einer Anwendung kurz per[...]

GetADUser

AD PowerShell Basics 2: Get-ADUser

Mai 15, 2015

Mit dem PowerShell Cmdlet Get-ADUser können Sie sich Benutzer im[...]

PowerShell

Powershell 2.0 New-PSDrive – Credential Parameter funktioniert nicht

Feb 4, 2015

Es gibt PowerShell Skripte, die eine temporäre Laufwerksverbindung aufbauen müssen.[...]

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