PowerShell ist bis heute eines der wertvollsten Tools für Administratoren von Office 365. Es ist sehr nützlich, um eine bestimmte Liste von Nutzern oder Postfächern abzurufen. Anstatt sich durch alle verfügbaren Optionen im Office-365-Portal zu wühlen, geben Administratoren lieber ein paar Zeilen von Code ein, um an die gewünschten Daten zu kommen. In diesem Artikel lernen wir die 10 am häufigsten verwendeten PowerShell-Cmdlets kennen.
1. Verbindung zu einer Office-365-Instanz mit PowerShell
Mit diesen Schritten stellen Sie eine Verbindung zur Office-365-Instanz her. Jeder Schritt gibt die auszuführende Funktion sowie das dafür benötigte PowerShell-Skript an.
- Zunächst müssen Sie den Anmeldeassistenten für Microsoft-Online-Services (IT-Profis RTW) herunterladen.
- Importieren Sie das Online Services Powershell-Modul für Microsoft Azure Active Directory und Office 365:
- Install-Module -Name AzureAD
- Install-Module -Name MSOnline
- Führen Sie den folgenden Befehl aus und geben Sie dabei Ihre Office-365-Zugangsdaten in das Popup ein.
- Erstellen Sie eine neue Remote-PowerShell-Sitzung.
- $O365 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic -AllowRedirection
- Importieren Sie die Sitzungsbefehle in die lokale Sitzung von Windows PowerShell.
- Stellen Sie die Verbindung zu allen Office-365-Services her.
- Connect-MsolService –Credential $O365
2. Verbinden mit Exchange Online and SharePoint Online über PowerShell
Mit den folgenden Schritten verbinden Sie Exchange Online und SharePoint Online mit PowerShell.
- Führen Sie das folgende Skript aus, um die Verbindung zum Exchange-Online-Modul herzustellen. Wenn Sie dazu aufgefordert werden, geben Sie die Office-365-Zugangsdaten ein.
- $Cred = Get-Credential
- $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic –AllowRedirection
- Zur Verbindung mit SharePoint Online müssen Sie die SharePoint Online Management-Shell herunterladen, installieren und dann das folgende Skript ausführen.
- $admin="Admin@enterprise.onmicrosoft.com"
- $orgname="enterprise"
- $userCred = Get-Credential -UserName $admin -Message "Type the password."
- Connect-SPOService -Url https://$orgname-admin.sharepoint.com -Credential $userCred
Bitte geben Sie eine gültige Admin-E-Mail-Adresse und den Unternehmensnamen in den ersten zwei Zeilen des Skripts an.
3. Eine Liste der verfügbaren PowerShell-Cmdlets für Office 365
Um eine Liste aller MSOnline PowerShell-Befehle abzurufen, führen Sie den folgenden Befehl aus
- Get-Command -module MSOnline
Um eine Liste aller Azure Active-Directory-Cmdlets abzurufen, geben Sie den folgenden Befehl ein:
- Get-Command -module AzureAD
4. Eine Liste aller Office-365-Nutzer mit PowerShell abrufen
Führen Sie den folgenden Befehl aus, um alle Nutzer mit gültiger Lizenz im Office-365-Mandanten abzurufen, mitsamt der Parameter Anzeigename, Stadt, Abteilung und ObjectID.
- Get-MsolUser | Select DisplayName, City, Department, ObjectID
5. Neue Nutzer in Office 365 mit PowerShell erstellen
Um einen neuen Office-365-Nutzer mit „John“ als Vornamen und „Smith“ als Nachnamen zu erstellen, führen Sie den folgenden Befehl aus.
- New-MsolUser -UserPrincipalName JSmith@enterprise.onmicrosoft.com -DisplayName "John Smith" -FirstName “John” -LastName “Smith”
Wenn die Office-365-Nutzererstellung erfolgreich war, gibt das System Kennwort und Lizenzstatus für den Nutzer zurück.
6. Nutzer mit PowerShell von allen SharePoint-Sites entfernen
Führen Sie den folgenden Befehl aus, um einen Nutzer von allen SharePoint-Sites auf einmal zu entfernen.
- Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName " JSmith@enterprise.onmicrosoft.com"}
7. Ändern der Kontokennwörter von Office-365-Nutzern mit PowerShell
Wenn Sie das Kennwort für ein Konto ändern müssen, verwenden Sie das Cmdlet „Set-MsolUserPassword“.
- Set-MsolUserPassword -UserPrincipalName JSmith@netwrixqcspa.onmicrosoft.com -NewPassword P@SSw0rd!
Sie können den Parameter -NewPassword auch auslassen, damit das System ein zufälliges Kennwort generiert.
8. Verwalten von Office-365-Gruppenmitgliedschaften mit PowerShell
Um eine Gruppe zu verwalten, müssen Sie „GroupObjectId“ und „GroupMemberObjectId“ kennen.
Die „GroupObjectID“ der zu verwaltenden Gruppe finden Sie mit diesem Befehl heraus.
Um die „GroupMemberObjectId“ der Mitglieder zu finden, die hinzugefügt/entfernt werden sollen, verwenden Sie dann den unten stehenden Befehl.
- Get-MsolUser | Select ObjectID.
Mit dem folgenden Befehl können Sie neue Mitglieder zu einer Gruppe hinzufügen.
- Add-MsolGroupMember -GroupObjectId 5b61d9e1-a13f-4a2d-b5ba-773cebc08eec -GroupMemberObjectId a56cae92-a8b9-4fd0-acfc-6773a5c1c767 -GroupMembertype user
Um einen Nutzer aus einer Gruppe zu entfernen, führen Sie diesen Befehl aus.
- $GroupId = Get-MsolGroup -SearchString "MyGroup"
- $UserId = Get-MsolUser -UserPrincipalName "evannarvaez@contoso.com"
- Remove-MsoLGroupMember -GroupObjectId $GroupId -GroupMemberType User -GroupmemberObjectId $UserId
Hier im Beispiel wird der Nutzer „evannarvaez@contoso.com“ aus der Gruppe „MyGroup“ entfernt.
9. Erstellen einer SharePoint-Site-Sammlung mit PowerShell
Der folgende Befehl dient dazu, mit PowerShell eine SharePoint-Site-Sammlung zu erstellen:
- New-SPOSite -Url https://contoso.sharepoint.com/sites/mynewsite -Owner john.smith@contoso.com -StorageQuota 1000 -Title "Latest presentation"
In diesem Beispiel wird eine neue Site-Sammlung mit dem Namen „Latest presentation“ für das aktuelle Unternehmen erstellt – mit Site-URL und Besitzer wie angegeben. Die Speicherquote ist auf 1000 Megabyte festgelegt.
10. Erstellen von Office-365-Berichten mit PowerShell
PowerShell ist ein großartiges Tool wenn es darum geht, verschiedene Berichte zu erstellen. Hier einige der nützlichen Office-365-Berichte, die per PowerShell erstellt werden können:
Dieser Befehl erstellt den Bericht „Alle Postfächer“, der Details zu allen Postfächern in Ihrem Office-365-Setup enthält.
- Get-mailbox | get-MailboxStatistics
Mit diesem Befehl zeigen Sie eine Liste aller Postfächer an, auf die in den letzten 30 Tagen nicht zugegriffen wurde.
- Get-Mailbox –RecipientType 'UserMailbox' | Get-MailboxStatistics | Sort-Object LastLogonTime | Where {$_.LastLogonTime –lt ([DateTime]::Now).AddDays(-30) } | Format-Table DisplayName, LastLogonTime
Um eine Traffic-Zusammenfassung für Ihr Office 365 zu erhalten, nutzen Sie diesen Befehl.
Hinweis: Die meisten Berichte-Cmdlets sind seit Januar 2018 veraltet und wurden durch die neue MS-Graph-API ersetzt. Daher stehen einige Berichte jetzt nur noch im Office 365 Security & Compliance Center zur Verfügung.