Online-Support, IT-Services für Unternehmen ab 299 EUR/Monat

Rufen Sie uns an : +48 22 335 28 00 | Email: oferty@support-online.pl

Exchange Online ist ein SaaS-Clouddienst (Software as a Service) der Microsoft 365-Plattform . Es bietet seinen Benutzern die Funktionalität eines Exchange-Mailservers. Derzeit ist es einer der am häufigsten gewählten Cloud-Dienste. Wie bei vielen anderen Microsoft-Lösungen können wir in Exchange Online das PowerShell- Tool verwenden . Im folgenden Text lernen Sie die Grundlagen der Navigation in Exchange Online mithilfe von Befehlen kennen. Wir werden auch einfache Beispielskripte besprechen, die in einer Produktionsumgebung verwendet werden können.

Herstellen einer Verbindung zu Exchange Online mithilfe von PowerShell

Bevor Sie etwas unternehmen, müssen Sie das entsprechende PowerShell-Modul installieren und importieren und die Skripterstellung auf Ihrem System aktivieren.

Skriptausführung aktivieren:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

 Für Exchange Online können Sie das Modul mit dem folgenden Befehl installieren:

Install-Module -Name ExchangeOnlineManagement

Anschließend importieren Sie das ExchangeOnlineManagament-Modul:

Import-Module ExchangeOnlineManagement

Mit Exchange verbinden:

Connect-ExchangeOnline

Es erscheint eine Meldung, in der Sie aufgefordert werden, sich mit den Anmeldeinformationen des Kontos anzumelden, das Sie verwenden möchten (normalerweise ein Konto mit Administratorrechten).

Microsoft-Anmeldung

Wenn Ihr Konto mit MFA gesichert ist , müssen Sie die Verifizierung auch mit einer zweiten Authentifizierungsmethode durchführen. Im folgenden Fall handelt es sich um eine Telefonnummer:

Microsoft-Login-Eingabecode

Sobald Sie Ihr Konto erfolgreich authentifiziert haben, werden Sie mit der Exchange Cloud verbunden.

Weitere Informationen zur Verbindung mit Exchange Online:

https://learn.microsoft.com/en-us/powershell/exchange/connect-to-exchange-online-powershell?view=exchange-ps

Notwendige Berechtigungen

Um eine Verbindung zu Exchange Online herzustellen , muss der Parameter „RemotePowerShellEnabled“ des von uns verwendeten Benutzers auf „true“ gesetzt sein. Sie können den Inhalt dieses Parameters für einen bestimmten Benutzer mit dem Befehl „Get-User“ überprüfen. Es ist auch möglich, es auf false oder true zu setzen. Dadurch wird dem Benutzer die Verwendung von PowerShell untersagt oder gestattet.

#Sprawdzenie wartości RemotePowershellEnabled dla użytkownika user@contoso.com
Get-User user@contoso.com | Select Name, RemotePowerShellEnabled

#Ustawienie wartości RemotePowershellEnabled na true - zezwolenie użytkownikowi na użycie Powershella
Set-User user@contoso.com -RemotePowerShellEnabled $true

#Ustawienie wartości RemotePowershellEnabled na false - zabronienie użytkownikowi użycia Powershella
Set-User user@contoso.com -RemotePowerShellEnabled $false

Standardmäßig ist für jeden Benutzer der Wert auf „true“ gesetzt – er kann sich mit dem Befehl „ Connect-ExchangeOnline “ verbinden. Sie können dies aus Sicherheitsgründen blockieren, dies ist jedoch nicht erforderlich, da die Befehle durch die dem Konto zugewiesene Rolle eingeschränkt sind. Sie können die Rollen und ihre Funktionen im Verwaltungsbereich von Microsoft 365 überprüfen. Alle in diesem Artikel enthaltenen Befehle und Skripte wurden mit einem Konto getestet, dem die Rolle „Globaler Administrator“ zugewiesen ist, was den Zugriff auf fast alle Befehle ermöglicht.

Get-Mailbox vs. Get-EXOMailbox

„Get-Mailbox“ – ein grundlegender Befehl, mit dem Sie die Parameter des E-Mail-Postfachs überprüfen können. Ab der Modulversion Exchange Online V2 (EXO V2) wurde auch der Befehl „Get-EXOMailbox“ eingeführt. „Get-Mailbox“ gibt alle Mailbox-Parameter zurück, „Get-EXOMailbox“ gibt nur einige davon zurück (zusätzlich die, die wir auswählen). Dadurch wird „Get-EXOMailbox“ deutlich effizienter – es werden weniger Daten ausgegeben. Dies macht sich deutlicher bemerkbar, wenn wir mit einer großen Anzahl von Boxen arbeiten.

Jedes Postfach in Exchange besteht aus vielen Parametern, die für seine Einstellungen verantwortlich sind. Sie können diese mit „Get-Mailbox“ überprüfen:

#Wyświetlenie wszystkich parametrów skrzynki user@contoso.com

#"Format-List" możemy zastąpić skrótem "FL"
Get-Mailbox -Identity user@contoso.com | Format-List

Das Ergebnis des Befehls sind alle Parameter des Feldes user@contoso.com. Es wurden zahlreiche Informationen angezeigt. Was ist, wenn Sie nur an einigen wenigen Parametern interessiert sind?

Sie können Ihren Befehl angeben:

#Export listy aliasów przypisanych do wszystkich skrzynek w tenancie

#Za pomocą Get-Mailbox
Get-Mailbox | Select UserPrincipalName, EmailAddresses | Export-Csv C:\getm.csv

#Za pomocą Get-EXOMailbox
Get-EXOMailbox | Select UserPrincipalName, EmailAddresses | Export-Csv C:\getEXOm.csv

Das Ergebnis ist eine Liste aller Postfächer und ihrer Aliase.

Ich habe bereits die bessere Leistung von „Get-EXOMailbox“ erwähnt. Vergleichen wir also „Get-Mailbox“ und „Get-EXOMailbox“:

#Eksport do pliku CSV parametrów skrzynki user@contoso.com za pomocą Get-Mailbox
Get-Mailbox user@contoso.com | Export-Csv C:\getm.csv #zwrócony plik CSV zajmuje 10KB

#Eksport do pliku CSV parametrów skrzynki user@contoso.com za pomocą Get-EXOMailbox
Get-EXOMailbox user@contoso.com | Export-Csv C:\exo.csv #zwrócony plik CSV zajmuje 2KB

In diesem Fall ist die Ausgabedatei bei Verwendung der neueren Version des Befehls fünfmal kleiner, da der Befehl „Get-ExoMailbox“ weniger Postfachparameter zurückgibt. Es lässt sich leicht berechnen, wie groß der Unterschied bei Operationen auf Hunderten oder Tausenden ist von Postfächern.

Alle Möglichkeiten der Befehle „Get-Mailbox“ und „Get-EXOMailbox“ können Sie in der von Microsoft bereitgestellten Dokumentation nachlesen:

https://learn.microsoft.com/en-us/powershell/module/exchange/get-mailbox?view=exchange-ps
https://learn.microsoft.com/en-us/powershell/module/exchange/get-exomailbox?view=exchange-ps

Set-Mailbox

Sind Sie daran interessiert, Änderungen an Ihren Posteingangseinstellungen vorzunehmen? Benutzen Sie dazu den Befehl „Set-Mailbox“! Damit können Sie Änderungen an den Parametern der Postfächer vornehmen, die Sie mit „Get-Mailbox“ überprüft haben. Wie bei anderen „Settern“ (Befehlen mit dem Präfix „Set“, die Änderungen vornehmen) müssen Sie sehr vorsichtig sein. Es empfiehlt sich, sie zu testen, bevor Sie sie in einer Testumgebung verwenden. Das Entfernen aller Aliase im Mandanten wäre problematisch????.

Nehmen wir zu Testzwecken an, dass wir user@contoso.com alias u@contoso.com zum Postfach hinzufügen möchten:

#Dodanie do skrzynki user@contoso.com aliasu u@contoso.com

#Dodanie aliasu do atrybutu EmailAdresses
Set-Mailbox user@contoso.com -EmailAddresses @{add="u@contoso.com"}

Planen Sie, Ihre E-Mail-Postfächer mithilfe von Protokollen zu überwachen? Sie können dies auch über „Set-Mailbox“ konfigurieren:

#Uruchomienie zbierania logów dla wszystkich użytkowników w tenancie

#Get-Mailbox zwraca nam wszystkie skrzynki mailowe, filtrujemy je pod kontem skrzynek użytkowników (-Filter {RecipientTypeDetails -eq "UserMailbox").
#Za pomocą pipeline (znak "|") przesyłamy wynik Get-Users do polecenia Set-Mailbox
#Set-Mailbox ustawia tym skrzynkom wartość true dla parametru "AuditEnabled"
Get-Mailbox -ResultSize Unlimited -Filter {RecipientTypeDetails -eq "UserMailbox"} | Set-Mailbox -AuditEnabled $true

Von nun an werden die Aktivitäten auf den Boxen überwacht. Sie können sie im Microsoft 365 Admin Center oder mit dem Befehl „Search-MailboxAuditLog“ anzeigen.

Unten finden Sie einen Link zu detaillierten Informationen zu „Set-Mailbox“: https://learn.microsoft.com/en-us/powershell/module/exchange/set-mailbox?view=exchange-ps

Beispielanwendungen von PowerShell in Exchange Online

Der Artikel listet mehrere Befehle und Skripte auf , die in einer Produktionsumgebung verwendet werden können. Die Präsentation einer Beispielaufgabe und eines Skripts, das sie löst, verdeutlicht am besten, wie nützlich PowerShell ist. Wenn Sie Exchange Online verwalten, werden Ihnen bei Ihrer täglichen Arbeit möglicherweise die folgenden Beispiele begegnen.

Das Unternehmen hat eine neue Domäne erworben – contoso.com. Ihre Aufgabe besteht darin, allen Postfächern in dieser Domäne einen zusätzlichen Alias ​​zuzuweisen. Derzeit verfügt Ihr Mandant über etwa 500 Postfächer – in diesem Fall wäre die schnellste Lösung ein PowerShell-Skript .

#Łączenie z Exchange Online
Connect-ExchangeOnline

#Tworzenie zmiennej $mailboxes zawierającej wszystkie skrzynki
$mailboxes = Get-EXOMailbox

#Pętla Foreach wykona się dla każdej skrzynki w zmiennej $mailboxes
Foreach($mailbox in $mailboxes){

#Tworzenie zmiennej $newalias z nowym aliasem dla aktualnie przetwarzanej przez pętlę skrzynki
$newalias = "$($mailbox.alias)@contoso.com"

#Dodanie nowego aliasu
Set-Mailbox $mailbox –EmailAddresses @{Add=’$newalias’}
}

Es wurde das Postfach „invoices@contoso.com“ erstellt , das eigentlich ein gemeinsames Postfach sein sollte. Leider hat jemand in der IT-Abteilung einen Fehler gemacht und es als Benutzerbox mit zugewiesener Lizenz erstellt. Ihre Aufgabe besteht darin, den Postfachtyp auf „Freigegeben“ zu ändern. Löschen und erneut erstellen ist keine Option – mehrere Dutzend Rechnungen sind bereits im Posteingang angekommen und müssen gespeichert werden. In diesem Fall können Sie die Aufgabe problemlos im Exchange Online Admin Center ausführen, aber verwenden wir die folgenden Befehle:

#Łączenie z Exchange Online
Connect-ExchangeOnline

#Ustawienie typu skrzynki na współdzieloną	
Set-Mailbox invoices@contoso.com -Type Shared

#Sprawdzenie czy typ skrzynki został zmieniony na Shared - "RecipientTypeDetails" zawiera teraz wrtość "SharedMailbox"
Get-EXOMailbox invoices@contoso.com | fl Name,RecipientTypeDetails

Ihr Vorgesetzter hat Sie gebeten, eine Liste aller freigegebenen Postfächer zu erstellen. Wie schnell können Sie die Aufgabe erledigen?

#Łączenie z Exchange Online
Connect-ExchangeOnline

#Get-EXOMailbox z filtrem pozwala na wybranie wszystkich skrzynek, których parametr "RecipientTypeDetails" zawiera "SharedMailbox"
#Wybrane skrzynki są przesłane do polecenia Select - interesują nas tylko adres bez szczegółów, wybieramy więc tylko "PrimarySmtpAddress"
#Adresy przesłane są do polecenia Export-Csv, które eksportuje je do pliku csv i zapisuje w wybranej lokalizacji
Get-EXOMailbox -Filter{RecipientTypeDetails -eq "SharedMailbox"} | Select PrimarySmtpAddress | Export-Csv -Path c:\SharedMailboxes.csv

Ihre Aufgabe besteht darin, die Postfächer zu überprüfen, in denen die Option „Weiterleitung“ aktiviert ist. Verwenden Sie dazu einen einfachen Befehl:

#Skrypt wyświetlający listę przekierowanych skrzynek

#Łączymy się z ExchangeOnline
Connect-ExchangeOnline

#Get-Mailbox zwraca wszystkie skrzynki
#Where ogranicza skrzynki tylko do tych, których pole "ForwardingAddress" nie jest puste
#Następnie dzięki Select wyświetla się adres mailowy oraz skrzynka, na którą przekierowane są maile
Get-Mailbox | Where {$_.ForwardingAddress -ne $Null} | Select PrimarySmtpAddress,ForwardingAddress

Es gibt viele andere Befehle, die auf Exchange Online anwendbar sind. Der Artikel konzentriert sich auf „Get-Mailbox“ und „Set-Mailbox“ – diese werden Sie in den meisten Fällen verwenden. Wenn Sie Ihr Wissen mit anderen Befehlen erweitern möchten, empfehle ich Ihnen, die von Microsoft bereitgestellte Dokumentation zu lesen ( https://learn.microsoft.com/en-us/powershell/module/exchange/?view=exchange-ps#powershell -v2-Modul ). Dort finden Sie alle verfügbaren Befehle samt Beschreibung und Syntax. Sie können auch jederzeit den Befehl „Get-Help ????“ verwenden.

Bartłomiej Róg
IT-Administrator bei Support Online

BLOG

Zobacz inne nasze artykuły

Kostenloses Angebot ✍️