ScriptRunner Blog
Microsoft Exchange mit PowerShell managen
Inhaltsverzeichnis
Die Automatisierung wiederkehrender Microsoft Exchange- und Exchange Online-Aufgaben mit PowerShell ist für IT-Experten und Systemtechniker von entscheidender Bedeutung. In diesem Artikel untersuchen wir sechs PowerShell-Anwendungsfälle zur Verwaltung von Microsoft Exchange.
Microsoft Exchange und Exchange Online sind nach wie vor ein wichtiger Dreh- und Angelpunkt für E-Mail, Kalender und Kontakte in vielen Unternehmen. Da Exchange-Umgebungen immer komplexer werden, suchen Administratoren nach Hilfsmitteln, die Verwaltungsaufgaben optimieren können. PowerShell mit seiner leistungsstarken Befehlszeilenoberfläche und Skriptsprache bietet eine robuste Lösung zur effizienteren Verwaltung von Exchange (Online) als herkömmliche grafische Benutzeroberflächen (GUIs).
Warum PowerShell zur Verwaltung von Microsoft Exchange verwenden?
- Automation: PowerShell-Skripte automatisieren sich wiederholende Aufgaben, sorgen für Konsistenz und sparen Zeit.
- Zugriff auf eine Vielzahl von Funktionen: Einige Exchange-Einstellungen und -Funktionen sind nur über PowerShell zugänglich und bieten mehr Kontrolle über das System.
- Batch-Vorgänge: PowerShell ermöglicht die Stapelverarbeitung von Aufgaben, z. B. das gleichzeitige Aktualisieren mehrerer Postfächer, was über grafische Benutzeroberflächen umständlich ist.
- Remote-Management: Administratoren können Exchange-Umgebungen per Fernzugriff über PowerShell verwalten, was für die Administration von Servern an mehreren Standorten unerlässlich ist.
- Integration: PowerShell-Skripte können in andere Systeme und Dienste integriert werden und bieten so einen einheitlichen Ansatz für die IT-Verwaltung.
Betrachten wir einige praktische Anwendungsfälle für die Microsoft Exchange PowerShell-Automatisierung.
Cmdlet 1: Get-Mailbox
Get-Mailbox ruft Informationen über Postfächer in deiner Exchange (Online)-Umgebung ab.
Mit diesem Einzeiler kannst du die Postfacheinstellungen und den Postfachstatus in der gesamten Organisation schnell überprüfen:
Get-Mailbox -ResultSize Unlimited | Format-Table DisplayName, ServerName, ProhibitSendQuota
Cmdlet 2: Get-EXOMailbox
Get-EXOMailbox ist nur in Exchange Online verfügbar. Es liefert Details zu den Eigenschaften und Einstellungen von Exchange Online-Postfächern. Das folgende Beispiel kombiniert Get-EXOMailbox mit dem Cmdlet Get-EXOMailboxStatistics und zeigt die 10 größten Postfächer in der Umgebung an.
Get-EXOMailbox -ResultSize Unlimited | Get-EXOMailboxStatistics | Sort-Object TotalItemSize -Descending | Select-Object DisplayName,TotalItemSize -First 10
Cmdlet 3: Set-Mailbox
Das Cmdlet Set-Mailbox dient dazu, Postfächereigenschaften zu konfigurieren. Du kannst mehr als 130 Postfacheinstellungen ändern, wie zum Beispiel Quoten oder Berechtigungen. Die folgenden Codebeispiele enthalten den Parameter -WhatIf. Damit kannst du die Ergebnisse zunächst simulieren und testen.
Get-User | where {$_.Department -eq "Sales"} | Get-Mailbox | Set-Mailbox -ProhibitSendQuota 5GB -ProhibitSendReceiveQuota 5GB -IssueWarningQuota 4GB -Whatif
Cmdlet 4: Get-DistributionGroup
Du möchtest vorhandene Verteilergruppen finden? Dann ist Get-DistributionGroup das richtige Cmdlet. Das folgende Beispiel zeigt alle Attribute von Verteilergruppen, die den Namen „Consulting“ enthalten.
Get-DistributionGroup -Filter {name -like "*Consulting*"} |Select-Object * |Out-GridView
Cmdlet 5: New-Mailbox
Mit New-Mailbox kannst du eine oder mehrere Exchange-Postfächer erstellen. Hier ist ein Beispiel, um neue Postfächer basierend auf einer CSV-Datei zu erstellen.
$mbxs = Import-Csv 'C:\users.csv'
Foreach ($mbx in $mbxs) {
New-Mailbox -Name $mbx.DisplayName -DisplayName $mbx.DisplayName -MicrosoftOnlineServicesID $mbx.UserPrincipalName -Password (ConvertTo-SecureString -String 'YourPassword' -AsPlainText -Force) -ResetPasswordOnNextLogon $true -MailboxPlan 'MailboxPlan'
}
Cmdlet 6: Set-MailboxAutoReplyConfiguration
Verwende das Cmdlet Set-MailboxAutoReplyConfiguration, um Abwesenheitsbenachrichtigungen für deine Benutzer zu aktivieren. Es ermöglicht dir, Nachrichten für eine unbegrenzte Zeit zu aktivieren oder sie für einen bestimmten Zeitraum zu planen.
$autoReplyParams = @{
Identity = "john@doe.com"
AutoReplyState = "Enabled"
ExternalMessage = "Hello, I'm currently not in the office."
InternalMessage = "Hello colleague, I'm currrently not in the office"
}
Set-MailboxAutoReplyConfiguration @autoReplyParams
Fazit
Die Verwendung von PowerShell für die Verwaltung von Exchange, ob On-Premises oder Online, bietet ein hohes Maß an Effizienz, Flexibilität und Kontrolle. Die oben aufgeführten Cmdlets sind grundlegende Werkzeuge für Administratoren, um eine Vielzahl von Aufgaben effektiver als über grafische Benutzeroberflächen zu erledigen. Durch die Beherrschung dieser Cmdlets können Administratoren sicherstellen, dass ihre Exchange-Umgebungen gut verwaltet, sicher und auf die Anforderungen ihrer Organisation zugeschnitten sind. Erfahre mehr über die Verwaltung von Exchange (Online) mit PowerShell in unserem Webinar "Exchange (Online) Administration mit PowerShell automatisieren".
Webinar:
Exchange (Online) Administration mit PowerShell automatisieren
Sei dabei in unserem Webinar und erfahre, wie PowerShell dazu beiträgt, die Verwaltung von Exchange Online effizienter und zeitsparender zu gestalten.
Egal, ob du Anfänger oder erfahrener Administrator bist: Du wirst praktische Tipps und Skripte lernen, um deine täglichen Aufgaben zu vereinfachen, Prozesse zu automatisieren und die Leistung deines Systems zu verbessern.
Vereinfache deine Arbeitsprozesse, steigere die Produktivität und erschließe neue Potenziale mit den Fähigkeiten von PowerShell.
Nutze diese Gelegenheit, um dein Exchange Online Management auf die nächste Stufe zu heben!
In diesem Webinar zeigen wir, wie du:
- Wie du deinem Service-Desk-Team eine sichere, PowerShell-gesteuerte Postfachverwaltung durch eine intuitive Web-Oberfläche ermöglichst
- Gewähre die Ausführung bestimmter Skripte, ohne administrative Berechtigungen vergeben zu müssen und damit eine sichere Umgebung zu gewährleisten
- Vereinfache dein PowerShell-Management mit zentralisierter Planung und Überwachung
- Steigere die Effizienz deines Exchange-Managements mit unseren vorgefertigten Skripten zur Optimierung deiner Prozesse und Aufgaben
Fordere hier die Webinar-Aufzeichnung an!
Weiterführende Links
Über den Autor:
Heiko Brenn ist Product Marketing Manager und verantwortlich für das ScriptRunner Marketing Team. Er ist seit mehr als 25 Jahren in der IT-Branche tätig und verfügt über umfangreiche Expertise in den Bereichen E-Mail-Management, Security, Collaboration, Administration, Cloud und Automatisierung. Seit 2010 arbeitet er mit der PowerShell.