Freigeben über


Warum Sie PowerShell für Microsoft 365 verwenden müssen

Dieser Artikel gilt sowohl für Microsoft 365 Enterprise als auch für Office 365 Enterprise.

Mit dem Microsoft 365 Admin Center können Sie Ihre Microsoft 365-Benutzerkonten und -Lizenzen verwalten. Sie können auch Ihre Microsoft 365-Dienste wie Exchange Online, Teams und SharePoint verwalten. Wenn Sie stattdessen PowerShell zum Verwalten dieser Dienste verwenden, können Sie die Befehlszeilen- und Skriptsprachenumgebung für Geschwindigkeit, Automatisierung und zusätzliche Funktionen nutzen.

Hinweis

Das Azure Active Directory-Modul wird durch das Microsoft Graph PowerShell SDK ersetzt. Sie können das Microsoft Graph PowerShell-SDK verwenden, um auf alle Microsoft Graph-APIs zuzugreifen. Weitere Informationen finden Sie unter Erste Schritte mit dem Microsoft Graph PowerShell-SDK. Einige PowerShell für Microsoft 365-Befehle in diesem Artikel wurden für die Verwendung von Microsoft Graph PowerShell aktualisiert.

In diesem Artikel wird gezeigt, wie Sie Mithilfe von PowerShell Microsoft 365 für Folgendes verwalten:

  • Anzeigen zusätzlicher Informationen, die im Microsoft 365 Admin Center nicht angezeigt werden

  • Konfigurieren von Features und Einstellungen, die nur mit PowerShell möglich sind

  • Ausführen von Massenvorgängen

  • Filtern von Daten

  • Drucken oder Speichern von Daten

  • Dienstübergreifende Verwaltung

Beachten Sie, dass PowerShell für Microsoft 365 eine Reihe von Modulen für Windows PowerShell ist, eine Befehlszeilenumgebung für Windows-basierte Dienste und Plattformen. Diese Umgebung erstellt eine Befehlsshellsprache, die um zusätzliche Module erweitert werden kann. Es bietet eine Möglichkeit, einfache oder komplexe Befehle oder Skripts auszuführen. Nachdem Sie beispielsweise die PowerShell für Microsoft 365-Module installiert und eine Verbindung mit Ihrem Microsoft 365-Abonnement hergestellt haben, können Sie den folgenden Befehl ausführen, um alle Benutzerpostfächer für Microsoft Exchange Online aufzulisten:

Get-Mailbox

Sie können die Liste der Postfächer auch über das Microsoft 365 Admin Center abrufen, aber das Zählen der Elemente in allen Listen für alle Websites für alle Ihre Web-Apps ist nicht einfach.

PowerShell für Microsoft 365 soll Ihnen bei der Verwaltung von Microsoft 365 helfen und nicht das Microsoft 365 Admin Center ersetzen. Administratoren müssen PowerShell für Microsoft 365 verwenden können, da es einige Konfigurationsverfahren gibt, die nur über PowerShell für Microsoft 365-Befehle ausgeführt werden können. In diesen Fällen müssen Sie folgendes wissen:

  • Installieren Sie die PowerShell für Microsoft 365-Module (nur einmal für jeden Administratorcomputer).

  • Stellen Sie eine Verbindung mit Ihrem Microsoft 365-Abonnement her (einmal für jede PowerShell-Sitzung).

  • Sammeln Sie die Informationen, die zum Ausführen der erforderlichen PowerShell für Microsoft 365-Befehle erforderlich sind.

  • Führen Sie PowerShell für Microsoft 365-Befehle aus.

Nachdem Sie diese grundlegenden Fähigkeiten gelernt haben, müssen Sie Ihre Postfachbenutzer nicht mit dem Befehl Get-Mailbox auflisten. Sie müssen auch nicht wissen, wie Sie einen neuen Befehl wie den zuvor genannten Befehl erstellen, um alle Elemente in allen Listen für alle Websites für alle Ihre Web-Apps zu zählen. Microsoft und die Community von Administratoren können Ihnen bei solchen Aufgaben bei Bedarf helfen.

PowerShell für Microsoft 365 kann Informationen offenlegen, die im Microsoft 365 Admin Center nicht angezeigt werden

Im Microsoft 365 Admin Center werden viele nützliche Informationen angezeigt, aber es werden nicht alle möglichen Informationen angezeigt, die Microsoft 365 zu Benutzern, Lizenzen, Postfächern und Websites speichert. Hier sehen Sie ein Beispiel für Benutzer und Gruppen im Microsoft 365 Admin Center:

Beispiel für die Anzeige von Benutzern und Gruppen im Microsoft 365 Admin Center.

Diese Ansicht enthält die Informationen, die Sie in vielen Fällen benötigen. Es kann jedoch vorkommen, dass Sie mehr benötigen. Beispielsweise hängt die Microsoft 365-Lizenzierung (und die microsoft 365-Features, die einem Benutzer zur Verfügung stehen) teilweise vom geografischen Standort des Benutzers ab. Die Richtlinien und Features, die Sie auf einen Benutzer erweitern können, der in den USA lebt, sind möglicherweise nicht mit denen identisch, die Sie auf einen Benutzer in Indien oder Belgien erweitern können. Führen Sie die folgenden Schritte im Microsoft 365 Admin Center aus, um den geografischen Standort eines Benutzers zu ermitteln:

  1. Doppelklicken Sie auf den Anzeigenamen des Benutzers.

  2. Wählen Sie im Anzeigebereich der Benutzereigenschaften Details aus.

  3. Wählen Sie in der Detailanzeige zusätzliche Details aus.

  4. Scrollen Sie, bis Sie die Überschrift Land oder Region finden:

    Beispiel für die Regionsinformationen für einen Benutzer im Microsoft 365 Admin Center.

  5. Notieren Sie den Anzeigenamen des Benutzers auf einem Blatt Papier, oder kopieren ihn in Editor.

Sie müssen diese Vorgehensweise für jeden Benutzer wiederholen. Wenn Sie viele Benutzer haben, kann dieser Prozess mühsam sein. Mit PowerShell können Sie diese Informationen für alle Ihre Benutzer anzeigen, indem Sie die folgenden Befehle verwenden.

Hinweis

Das Azure Active Directory-Modul wird durch das Microsoft Graph PowerShell SDK ersetzt. Sie können das Microsoft Graph PowerShell-SDK verwenden, um auf alle Microsoft Graph-APIs zuzugreifen. Weitere Informationen finden Sie unter Erste Schritte mit dem Microsoft Graph PowerShell-SDK.

Verwenden Sie zunächst ein Microsoft Entra DC-Administrator - oder Cloudanwendungsadministratorkonto , um eine Verbindung mit Ihrem Microsoft 365-Mandanten herzustellen.

Zum Abrufen von Informationen für einen Benutzer ist der Berechtigungsbereich User.ReadBasic.All oder eine der anderen Berechtigungen erforderlich, die auf der Graph-API-Referenzseite "Lizenz zuweisen" aufgeführt sind.

Der Berechtigungsbereich Organization.Read.All ist erforderlich, um die im Mandanten verfügbaren Lizenzen zu lesen.

Hinweis

Azure AD- und MSOnline PowerShell-Module sind ab dem 30. März 2024 veraltet. Weitere Informationen finden Sie im Update zu Einstellungen. Nach diesem Datum beschränkt sich der Support für diese Module auf Unterstützung bei der Migration zum Microsoft Graph PowerShell SDK und auf Sicherheitskorrekturen. Die veralteten Module werden noch bis zum 30. März 2025 zur Verfügung stehen.

Es wird empfohlen, zu Microsoft Graph PowerShell zu migrieren, um mit Microsoft Entra ID (früher Azure AD) zu interagieren. Allgemeine Fragen zur Migration finden Sie in den Häufig gestellten Fragen zur Migration. Hinweis: Bei den Versionen 1.0.x von MSOnline kann es nach dem 30. Juni 2024 zu Unterbrechungen kommen.

Connect-MgGraph -Scopes "User.ReadBasic.All"
Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation

Hier sehen Sie ein Beispiel für die Ergebnisse:

DisplayName                               UsageLocation
-----------                               -------------
Bonnie Kearney                            GB
Fabrice Canel                             BR
Brian Johnson (TAILSPIN)                  US
Anne Wallace                              US
Alex Darrow                               US
David Longmuir                            BR

Die Interpretation dieses PowerShell-Befehls lautet: Abrufen aller Benutzer im aktuellen Microsoft 365-Abonnement (Get-MgUser), aber nur den Namen und Speicherort für jeden Benutzer anzeigen (Wählen Sie DisplayName, UsageLocation aus).

Da PowerShell für Microsoft 365 eine Befehlsshellsprache unterstützt, können Sie die mit dem Befehl Get-MgUser abgerufenen Informationen weiter bearbeiten. Vielleicht möchten Sie diese Benutzer beispielsweise nach ihrem Standort sortieren, alle brasilianischen Benutzer, alle US-Benutzer zusammen gruppieren usw. Hier ist der Befehl:

Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation | Sort UsageLocation, DisplayName

Hier sehen Sie ein Beispiel für die Ergebnisse:

DisplayName                                 UsageLocation
-----------                                 -------------
David Longmuir                              BR
Fabrice Canel                               BR
Bonnie Kearney                              GB
Alex Darrow                                 US
Anne Wallace                                US
Brian Johnson (TAILSPIN)                    US

Die Interpretation dieses PowerShell-Befehls lautet: Rufen Sie alle Benutzer im aktuellen Microsoft 365-Abonnement ab, aber zeigen Sie nur den Namen und Speicherort für jeden Benutzer an, und sortieren Sie sie zuerst nach ihrem Standort und dann nach ihrem Namen (Sort UsageLocation, DisplayName).

Sie können auch zusätzliche Filterung verwenden. Wenn Sie beispielsweise nur Informationen zu Benutzern in Brasilien anzeigen möchten, verwenden Sie den folgenden Befehl:

Get-MgUser -All -Property DisplayName, Country | Where-Object {$_.Country -eq "BR"} | Select DisplayName, Country 

Hier sehen Sie ein Beispiel für die Ergebnisse:

DisplayName                                           UsageLocation
-----------                                           -------------
David Longmuir                                        BR
Fabrice Canel                                         BR

Die Interpretation dieses PowerShell-Befehls lautet: Abrufen aller Benutzer im aktuellen Microsoft 365-Abonnement, deren Standort Brasilien ist (Wobei {$_. UsageLocation -eq "BR"}) und dann den Namen und speicherort für jeden Benutzer anzeigen.

Hinweis zu großen Domänen

Wenn Sie über eine große Domäne mit Zehntausenden von Benutzern verfügen, kann das Ausprobieren einiger der in diesem Artikel gezeigten Beispiele zu einer Drosselung führen. Basierend auf Faktoren wie Rechenleistung und verfügbarer Netzwerkbandbreite versuchen Sie möglicherweise, zu viel gleichzeitig zu tun. Große Organisationen möchten einige dieser PowerShell-Vorgänge möglicherweise in zwei Befehle aufteilen.

Der folgende Befehl gibt beispielsweise alle Benutzerkonten zurück und zeigt jeweils den Namen und den Speicherort an:

Get-MgUser -All | Select DisplayName, UsageLocation

Das funktioniert auch gut bei kleineren Domänen. In einer großen Organisation möchten Sie diesen Vorgang jedoch möglicherweise in zwei Befehle aufteilen: einen Befehl zum Speichern der Benutzerkontoinformationen in einer Variablen und einen anderen, um die erforderlichen Informationen anzuzeigen. Hier ist ein Beispiel:

$x = Get-MgUser -All -Property DisplayName, UsageLocation
$x | Select DisplayName, UsageLocation

Diese PowerShell-Befehle werden wie folgt interpretiert:

  1. Rufen Sie alle Benutzer im aktuellen Microsoft 365-Abonnement ab, und speichern Sie die Informationen in einer Variablen namens $x ($x = Get-MgUser).
  2. Zeigen Sie den Inhalt der Variablen $x an, aber geben Sie nur den Namen und speicherort für jeden Benutzer an ($x | Wählen Sie DisplayName, UsageLocation aus.

Microsoft 365 verfügt über Features, die Sie nur mit PowerShell für Microsoft 365 konfigurieren können.

Das Microsoft 365 Admin Center soll Zugriff auf gängige, nützliche Verwaltungsaufgaben bieten, die für die meisten Umgebungen gelten. Anders ausgedrückt: Das Microsoft 365 Admin Center wurde so konzipiert, dass der typische Administrator die am häufigsten verwendeten Verwaltungsaufgaben ausführen kann. Es gibt jedoch einige Aufgaben, die im Admin Center nicht ausgeführt werden können.

Das Skype for Business Online Admin Center bietet beispielsweise einige Optionen zum Erstellen benutzerdefinierter Besprechungseinladungen:

Beispiel für die Anzeige von benutzerdefinierten Besprechungseinladungen im Skype for Business Online Admin Center

Mit diesen Einstellungen können Sie Besprechungseinladungen eine gewisse persönliche Note und Professionalität verleihen. Es gibt jedoch mehr Besprechungskonfigurationseinstellungen, als nur benutzerdefinierte Besprechungseinladungen zu erstellen. Besprechungen ermöglichen standardmäßig beispielsweise Folgendes:

  • anonymen Benutzern, automatischen Zugang zu jeder Besprechung zu erhalten

  • Teilnehmern, die Besprechung aufzuzeichnen.

  • das Festlegen aller Benutzer in Ihrer Organisation als Referenten, wenn sie an der Besprechung teilnehmen.

Diese Einstellungen sind im Skype for Business Online Admin Center nicht verfügbar. Sie können sie über PowerShell für Microsoft 365 steuern. Hier ist ein Befehl, der diese drei Einstellungen deaktiviert:

Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $False -AllowConferenceRecording $False -DesignateAsPresenter "None"

Hinweis

Um diesen Befehl auszuführen, müssen Sie das Skype for Business Online PowerShell-Modul installieren.

Dieser PowerShell-Befehl wird wie folgt interpretiert:

  1. Deaktivieren Sie in den Einstellungen für neue Skype for Business Online-Besprechungen (Set-CsMeetingConfiguration) anonymen Benutzern den automatischen Zugang zu Besprechungen ermöglichen (-AdmitAnonymousUsersByDefault $False).
  2. Deaktivieren Sie die Möglichkeit für Teilnehmer, Besprechungen aufzuzeichnen (-AllowConferenceRecording $False).
  3. Legen Sie nicht alle Benutzer aus Ihrer Organisation als Referenten fest (-DesignateAsPresenter "None").

Führen Sie den folgenden Befehl aus, um diese Standardeinstellungen wiederherzustellen (aktivieren Sie die Optionen):

Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $True -AllowConferenceRecording $True -DesignateAsPresenter "Company"

Es gibt auch andere ähnliche Szenarien, weshalb Administratoren wissen sollten, wie PowerShell für Microsoft 365-Befehle ausgeführt werden.

PowerShell für Microsoft 365 eignet sich hervorragend für Massenvorgänge

Visuelle Schnittstellen wie das Microsoft 365 Admin Center sind besonders wertvoll, wenn Sie einen einzelnen Vorgang ausführen müssen. Wenn Sie beispielsweise ein Benutzerkonto deaktivieren müssen, können Sie das Admin Center verwenden, um schnell ein Kontrollkästchen zu finden und zu deaktivieren. Dies ist möglicherweise einfacher als das Ausführen eines ähnlichen Vorgangs in PowerShell.

Wenn Sie jedoch viele oder ausgewählte Dinge in einer großen Menge anderer Dinge ändern müssen, ist das Microsoft 365 Admin Center möglicherweise nicht das beste Tool. Angenommen, Sie müssen das Präfix für Tausende von Telefonnummern ändern oder den bestimmten Benutzer Ken Myer von allen SharePoint-Websites entfernen. Wie würden Sie dies im Microsoft 365 Admin Center tun?

Angenommen, Sie haben mehrere hundert SharePoint-Websites, und Sie wissen nicht, bei welchen Ken Meyer Mitglied ist. Sie müssten im Microsoft 365 Admin Center beginnen und dann dieses Verfahren für jede Website ausführen:

  1. Wählen Sie die URL der Website aus.

  2. Wählen Sie im Feld Eigenschaften der Websitesammlung den Link Websiteadresse aus, um die Website zu öffnen.

  3. Wählen Sie auf der Website Freigeben aus.

  4. Wählen Sie im Dialogfeld Freigeben den Link aus, der alle Benutzer anzeigt, die über Berechtigungen für die Website verfügen:

    Beispiel für das Anzeigen der Mitglieder einer SharePoint-Website im SharePoint Admin Center.

  5. Wählen Sie im Dialogfeld Freigegeben für die Option Erweitert aus.

  6. Scrollen Sie in der Liste der Benutzer nach unten, und wählen Sie Ken Myer aus (vorausgesetzt, er verfügt über Berechtigungen für die Website), und wählen Sie dann Benutzerberechtigungen entfernen aus.

Dies würde bei mehreren hundert Websites sehr lange dauern.

Alternativ können Sie den folgenden Befehl in PowerShell für Microsoft 365 ausführen, um Ken Myer von allen Ihren Websites zu entfernen:

Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName "kenmyer@litwareinc.com"}

Hinweis

Für diesen Befehl müssen Sie das SharePoint PowerShell-Modul installieren.

Die Interpretation dieses PowerShell-Befehls lautet: Rufen Sie alle SharePoint-Websites im aktuellen Microsoft 365-Abonnement (Get-SPOSite) ab, und entfernen Sie für jede Website Ken Meyer aus der Liste der Benutzer, die darauf zugreifen können (ForEach {Remove-SPOUser -Site $_. URL -LoginName "kenmyer@litwareinc.com"}).

Wir weisen Microsoft 365 an, Ken Meyer von jeder Website zu entfernen, einschließlich derjenigen, auf die er keinen Zugriff hat. Die Ergebnisse zeigen also Fehler für die Websites an, auf die er keinen Zugriff hat. Wir können eine zusätzliche Bedingung für diesen Befehl verwenden, um Ken Meyer nur von den Websites zu entfernen, die ihn auf ihrer Anmeldeliste enthalten. Die zurückgegebenen Fehler verursachen jedoch keinen Schaden für die Websites selbst. Die Ausführung dieses Befehls für Hunderte von Websites kann einige Minuten dauern, anstatt stundenlang über das Microsoft 365 Admin Center zu arbeiten.

Hier sehen Sie ein weiteres Beispiel für einen Massenvorgang. Verwenden Sie diesen Befehl, um Bonnie Kearney, einen neuen SharePoint-Administrator, allen Websites in der Organisation hinzuzufügen:

Get-SPOSite | ForEach {Add-SPOUser -Site $_.Url -LoginName "bkearney@litwareinc.com" -Group "Members"}

Die Interpretation dieses PowerShell-Befehls lautet: Rufen Sie alle SharePoint-Websites im aktuellen Microsoft 365-Abonnement ab, und lassen Sie bonnie Kearney den Zugriff zu, indem Sie ihren Anmeldenamen zur Gruppe Mitglieder der Website hinzufügen (ForEach {Add-SPOUser -Site $_. URL -LoginName "bkearney@litwareinc.com" -Group "Members"}).

PowerShell für Microsoft 365 eignet sich hervorragend für das Filtern von Daten.

Das Microsoft 365 Admin Center bietet mehrere Möglichkeiten, Ihre Daten zu filtern, um einfach eine gezielte Teilmenge von Informationen zu finden. Mit Exchange können Sie beispielsweise leicht nach praktisch jeder Eigenschaft eines Benutzerpostfachs filtern. Hier ist beispielsweise die Liste der Postfächer für alle Benutzer, die in der Stadt Bloomington leben:

Beispiel für eine erweiterte Suche im Microsoft 365 Admin Center nach der Liste der Postfächer für alle Benutzer, die in der Stadt Bloomington leben.

Im Exchange Admin Center können Sie auch Filterkriterien kombinieren. Sie können beispielsweise die Postfächer für alle Personen finden, die in Bloomington leben und in der Finanzabteilung arbeiten.

Es gibt jedoch Einschränkungen hinsichtlich der Möglichkeiten, die Sie im Exchange Admin Center ausführen können. Beispielsweise konnten Sie nicht so einfach die Postfächer von Personen finden, die in Bloomington oder San Diego leben, oder die Postfächer für alle Menschen, die nicht in Bloomington leben.

Sie können den folgenden PowerShell für Microsoft 365-Befehl verwenden, um eine Liste von Postfächern für alle Personen abzurufen, die in Bloomington oder San Diego leben:

Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and ($_.City -eq "San Diego" -or $_.City -eq "Bloomington")} | Select DisplayName, City

Hier sehen Sie ein Beispiel für die Ergebnisse:

DisplayName                              City
-----------                              ----
Alex Darrow                              San Diego
Bonnie Kearney                           San Diego
Julian Isla                              Bloomington
Rob Young                                Bloomington

Die Interpretation dieses PowerShell-Befehls lautet: Abrufen aller Benutzer im aktuellen Microsoft 365-Abonnement, die über ein Postfach in der Stadt San Diego oder Bloomington verfügen (Wobei {$_. RecipientTypeDetails -eq "UserMailbox" -and ($_. City -eq "San Diego" -or $_. City -eq "Bloomington")}), und dann den Namen und die Stadt für jeden anzeigen (wählen Sie DisplayName, Ort aus).

Und hier ist der Befehl, um alle Postfächer für Personen aufzulisten, die überall mit Ausnahme von Bloomington leben:

Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and $_.City -ne "Bloomington"} | Select DisplayName, City

Hier sehen Sie ein Beispiel für die Ergebnisse:

DisplayName                               City
-----------                               ----
MOD Administrator                         Redmond
Alex Darrow                               San Diego
Allie Bellew                              Bellevue
Anne Wallace                              Louisville
Aziz Hassouneh                            Cairo
Belinda Newman                            Charlotte
Bonnie Kearney                            San Diego
David Longmuir                            Waukesha
Denis Dehenne                             Birmingham
Garret Vargas                             Seattle
Garth Fort                                Tulsa
Janet Schorr                              Bellevue

Die Interpretation dieses PowerShell-Befehls lautet: Abrufen aller Benutzer im aktuellen Microsoft 365-Abonnement, die über ein Postfach verfügen, das sich nicht in der Stadt Bloomington befindet (Wobei {$_. RecipientTypeDetails -eq "UserMailbox" -and $_. City -ne "Bloomington"}), und zeigen Sie dann jeweils den Namen und die Stadt an.

Verwenden von Wildcards

Sie können auch Platzhalterzeichen in Ihren PowerShell-Filtern verwenden, um einem Teil eines Namens zu entsprechen. Angenommen, Sie suchen nach einem Benutzerkonto. Sie können sich nur daran erinnern, dass der Nachname des Benutzers Anderson oder vielleicht Henderson oder Jorgenson war.

Sie können diesen Benutzer im Microsoft 365 Admin Center ermitteln, indem Sie das Suchtool verwenden und drei verschiedene Suchvorgänge ausführen:

  • Eine für Anderson

  • Eine für Henderson

  • Und eine für Jorgenson

Da alle drei Namen auf "son" enden, können Sie PowerShell anweisen, alle Benutzer anzuzeigen, deren Name auf "son" endet. Hier ist der Befehl:

Get-User -Filter '{LastName -like "*son"}'

Die Interpretation dieses PowerShell-Befehls lautet: Abrufen aller Benutzer im aktuellen Microsoft 365-Abonnement, aber verwenden Sie einen Filter, der nur die Benutzer auflistet, deren Nachnamen auf "son" enden (-Filter '{LastName -like "*son"}'). * steht für einen beliebigen Satz von Zeichen, bei denen es sich um Buchstaben im Nachnamen des Benutzers handelt.

PowerShell für Microsoft 365 vereinfacht das Drucken oder Speichern von Daten

Im Microsoft 365 Admin Center können Sie Listen mit Daten anzeigen. Hier sehen Sie ein Beispiel für das Skype for Business Online Admin Center, in dem eine Liste der Benutzer angezeigt wird, die für Skype for Business Online aktiviert wurden:

Beispiel für das Skype for Business Online Admin Center, in dem eine Liste von Benutzern angezeigt wird, die für Skype for Business Online aktiviert wurden.

Um diese Informationen in einer Datei zu speichern, müssen Sie sie in ein Dokument oder ein Microsoft Excel-Arbeitsblatt einfügen. In beiden Fällen ist möglicherweise eine zusätzliche Formatierung erforderlich. Darüber hinaus bietet das Microsoft 365 Admin Center keine Möglichkeit, die angezeigte Liste direkt zu drucken.

Glücklicherweise können Sie PowerShell verwenden, um die Liste nicht nur anzuzeigen, sondern in einer Datei zu speichern, die problemlos in Excel importiert werden kann. Hier sehen Sie einen Beispielbefehl zum Speichern von Skype for Business Online-Benutzerdaten in einer CSV-Datei (Comma-Separated Values), die dann einfach als Tabelle in einem Excel-Arbeitsblatt importiert werden kann:

Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation

Hier sehen Sie ein Beispiel für die Ergebnisse:

Beispiel für eine Tabelle, die in ein Excel-Arbeitsblatt für Skype for Business Online-Benutzerdaten importiert wurde, die in einer Datei mit durch Trennzeichen getrennten Werten gespeichert wurden.

Die Interpretation dieses PowerShell-Befehls lautet: Abrufen aller Skype for Business Online-Benutzer im aktuellen Microsoft 365-Abonnement (Get-CsOnlineUser); Rufen Sie nur den Benutzernamen, den UPN und den Speicherort ab (wählen Sie DisplayName, UserPrincipalName, UsageLocation aus). und speichern Sie diese Informationen dann in einer CSV-Datei namens C:\Logs\SfBUsers.csv (Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation).

Sie können auch Optionen verwenden, um diese Liste als XML-Datei oder HTML-Seite zu speichern. Mit zusätzlichen PowerShell-Befehlen können Sie die Datei direkt als Excel-Datei mit beliebiger benutzerdefinierter Formatierung speichern.

Sie können auch die Ausgabe eines PowerShell-Befehls, der eine Liste anzeigt, direkt an den Standarddrucker in Windows senden. Hier sehen Sie einen Beispielbefehl:

Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Out-Printer

Das gedruckte Dokument sieht wie folgt aus:

Beispiel für ein gedrucktes Dokument, das die Ausgabe eines PowerShell-Befehls war, der direkt an den Standarddrucker in Windows gesendet wurde.

Die Interpretation dieses PowerShell-Befehls lautet: Abrufen aller Skype for Business Online-Benutzer im aktuellen Microsoft 365-Abonnement; Nur den Benutzernamen, den UPN und den Standort abrufen; und senden Sie diese Informationen dann an den Windows-Standarddrucker (Out-Printer).

Das gedruckte Dokument weist die gleiche einfache Formatierung auf wie die Anzeige im PowerShell-Befehlsfenster. Um eine Kopie zu erhalten, fügen Sie einfach | Out-Printer bis zum Ende des Befehls.

Mit PowerShell für Microsoft 365 können Sie serverübergreifende Produkte verwalten.

Die Komponenten, aus denen Microsoft 365 besteht, sind für die Zusammenarbeit konzipiert. Angenommen, Sie fügen Microsoft 365 einen neuen Benutzer hinzu und geben informationen wie abteilung und Telefonnummer des Benutzers an. Diese Informationen sind dann verfügbar, wenn Sie auf die Informationen des Benutzers in einem der Microsoft 365-Dienste zugreifen: Skype for Business Online, Exchange oder SharePoint.

Hierbei handelt es sich um allgemeine Informationen, die für die ganze Produktsuite gleich sind. Produktspezifische Informationen, z. B. Informationen zum Exchange-Postfach eines Benutzers, sind in der Regel nicht in der gesamten Suite verfügbar. Informationen dazu, ob das Postfach eines Benutzers aktiviert ist oder nicht, sind beispielsweise nur im Exchange Admin Center verfügbar.

Angenommen, Sie möchten einen Bericht erstellen, in dem die folgenden Informationen für alle Benutzer enthalten sind:

  • Den Anzeigenamen des Benutzers

  • Gibt an, ob der Benutzer für Microsoft 365 lizenziert ist

  • Ob das Exchange-Postfach des Benutzers aktiviert wurde

  • Ob der Benutzer für Skype for Business Online aktiviert ist

Sie können einen solchen Bericht nicht einfach im Microsoft 365 Admin Center erstellen. Stattdessen müssten Sie ein separates Dokument erstellen, um die Informationen zu speichern, z. B. ein Excel-Arbeitsblatt. Rufen Sie dann alle Benutzernamen und Lizenzierungsinformationen aus dem Microsoft 365 Admin Center ab, rufen Sie Postfachinformationen aus dem Exchange Admin Center ab, rufen Sie Skype for Business Online-Informationen aus dem Skype for Business Online Admin Center ab, und kombinieren Sie diese Informationen dann.

Alternativ können Sie ein PowerShell-Skript verwenden, um den Bericht für Sie zu kompilieren.

Das folgende Beispielskript ist komplizierter als die Befehle, die Sie bisher in diesem Artikel gesehen haben. Es zeigt jedoch das Potenzial der Verwendung von PowerShell zum Erstellen von Informationsansichten, die andernfalls schwer zu erhalten sind. Hier sehen Sie das Skript zum Kompilieren und Anzeigen der liste, die Sie benötigen:

Connect-MgGraph -Scopes "User.ReadBasic.All"
$x = Get-MgUser -All

foreach ($i in $x)
    {
      $y = Get-Mailbox -Identity $i.UserPrincipalName
      $i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled

      $y = Get-CsOnlineUser -Identity $i.UserPrincipalName
      $i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled
    }

$x | Select DisplayName, IsLicensed, IsMailboxEnabled, EnabledforSfB

Hier sehen Sie ein Beispiel für die Ergebnisse:

DisplayName             IsLicensed   IsMailboxEnabled   EnabledForSfB
-----------             ----------   ----------------   --------------
Bonnie Kearney          True         True               True
Fabrice Canel           True         True               True
Brian Johnson           False        True               False
Anne Wallace            True         True               True
Alex Darrow             True         True               True
David Longmuir          True         True               True
Katy Jordan             False        True               False
Molly Dempsey           False        True               False

Dieses PowerShell-Skript wird wie folgt interpretiert:

  1. Rufen Sie alle Benutzer im aktuellen Microsoft 365-Abonnement ab, und speichern Sie die Informationen in einer Variablen mit dem Namen $x ($x = Get-MgUser).
  2. Starten Sie eine Schleife, die für alle Benutzer in der Variablen $x ausgeführt wird (foreach ($i in $x)).
  3. Definieren Sie eine Variable namens $y , und speichern Sie die Postfachinformationen des Benutzers darin ($y = Get-Mailbox -Identity $i.UserPrincipalName).
  4. Fügen Sie den Benutzerinformationen eine neue Eigenschaft mit dem Namen IsMailBoxEnabled hinzu. Legen Sie ihn auf den Wert der IsMailBoxEnabled-Eigenschaft des Postfachs des Benutzers fest ($i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled).
  5. Definieren Sie eine Variable mit dem Namen $y, und speichern Sie die Skype for Business Online-Informationen des Benutzers darin ($y = Get-CsOnlineUser -Identity $i.UserPrincipalName).
  6. Fügen Sie den Benutzerinformationen eine neue Eigenschaft mit dem Namen EnabledForSfB hinzu. Legen Sie ihn auf den Wert der Enabled-Eigenschaft der Skype for Business Online-Informationen des Benutzers fest ($i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled).
  7. Zeigen Sie die Liste der Benutzer an, aber geben Sie nur ihren Namen an, ob sie lizenziert sind, und die beiden neuen Eigenschaften, die angeben, ob ihr Postfach aktiviert ist und ob sie für Skype for Business Online aktiviert sind ($x | Wählen Sie DisplayName, IsLicensed, IsMailboxEnabled, EnabledforSfB) aus.

Siehe auch

Erste Schritte mit PowerShell für Microsoft 365

Verwalten von Microsoft 365-Benutzerkonten, -Lizenzen und -Gruppen mit PowerShell

Verwenden der Windows PowerShell zum Erstellen von Berichten in Microsoft 365