Windows PowerShell für die Verwaltung von Office 365 zu nutzen, mag Ihnen zunächst seltsam erscheinen. Schließlich besteht der Vorteil von Cloud-Lösungen ja gerade darin, dass sie unkompliziert und benutzerfreundlich sind – Eigenschaften, die man nicht unbedingt mit Windows PowerShell assoziiert. Doch lassen Sie sich davon nicht abschrecken. In diesem Artikel stelle ich die zehn wichtigsten PowerShell-Cmdlets vor, mit denen Systemadministratoren Office 365 effektiv verwalten können. Vielleicht kann ich Sie mit diesen Anleitungen davon überzeugen, dass PowerShell auch für cloudbasierte Systeme ein hilfreiches Tool ist.
1. Herstellen einer Verbindung zu einer Office 365-Instanz mit PowerShell
Zunächst müssen Sie das Office 365-Modul für Windows PowerShell installieren und eine Verbindung zur Office 365-Instanz herstellen. Führen Sie dazu die folgenden Schritte aus:
-
- Laden Sie den Microsoft Online Services-Anmelde-Assistenten für IT-Experten RTW herunter und installieren Sie diesen.
- Importieren Sie die Online Services-PowerShell-Module für Microsoft Azure Active Directory und Office 365:
Install-Module -Name AzureAD Install-Module -Name MSOnline
-
- Geben Sie Ihre Administratoranmeldeinformationen für Office 365 ein:
$Cred = Get-Credential
-
- Erstellen Sie eine PowerShell-Remotesitzung:
$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 Windows PowerShell-Sitzung:
Import-PSSession $O365
-
- Stellen Sie eine Verbindung zu allen Office 365-Diensten her:
Import-PSSession $O365
Sobald Sie die Module für Windows PowerShell importiert haben, können Sie mit der Verwaltung Ihrer Office 365-Instanz beginnen.
2. Herstellen einer Verbindung zu Exchange Online und SharePoint Online mit PowerShell
Sie können auch separate Verbindungen zu Microsoft Exchange Online und Microsoft SharePoint Online herstellen. Um mit PowerShell eine Verbindung zu Exchange Online herzustellen, gehen Sie ähnlich vor wie beim Herstellen einer Verbindung zu Office 365:
$Cred = Get-Credential $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic –AllowRedirection
Um eine Verbindung zu SharePoint Online herzustellen, müssen Sie etwas anders vorgehen. Damit Sie Ihren SharePoint Online-Mandanten verwalten können, müssen Sie zunächst die SharePoint Online-Verwaltungsshell herunterladen und installieren. Führen Sie anschließend das folgende PowerShell-Skript aus:
$Cred = Get-Credential $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic –AllowRedirection
3. Anzeigen einer Liste der verfügbaren PowerShell-Cmdlets für Office 365
Um eine Liste aller verfügbaren PowerShell-Befehle für Office 365 anzuzeigen, müssen Sie das Cmdlet „Get-Command“ ausführen:
Get-Command -module MSOnline
Auf ähnliche Weise können Sie auch die Liste der Cmdlets für Azure Active Directory anzeigen:
Get-Command -module AzureAD
4. Anzeigen einer Liste aller Office 365-Benutzer mit PowerShell
Wenn Sie eine Liste aller Office 365-Benutzer und -Lizenzen anzeigen möchten, verwenden Sie das Cmdlet „Get-MsolUser“. Damit werden alle Benutzer mit einer gültigen Lizenz für den Office 365-Mandanten abgerufen und mit den Parametern „DisplayName“, „City“, „Department“ und „ObjectID“ angezeigt.
Get-MsolUser | Select DisplayName, City, Department, ObjectID
Um die Anzahl der Kontolizenzen anzuzeigen, führen Sie das folgende Cmdlet aus:
Get-MsolAccountSku
Um alle verfügbaren Dienste anzuzeigen, führen Sie das folgende Skript aus:
Get-MsolAccountSku | select -ExpandProperty ServiceStatus
5. Erstellen neuer Benutzer in Office 365 mit PowerShell
Um einen neuen Benutzer zu erstellen, verwenden Sie den Befehl „New-MsolUser“:
Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName " JSmith@enterprise.onmicrosoft.com"}
Das System zeigt das Kennwort des Benutzers und Daten zum Lizenzstatus an.
6. Entfernen von Benutzern aus allen Websites mit PowerShell
Um einen Benutzern in einem Schritt aus allen Websites zu entfernen, verwenden Sie den folgenden Befehl:
Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName " JSmith@enterprise.onmicrosoft.com"}
7. Ändern des Kennworts in Office 365 mit PowerShell
Wenn Sie das Kennwort für ein Konto ändern müssen, verwenden Sie hierfür das Cmdlet „Set-MsolUserPassword“. Sie können entweder wie in dem Beispiel unten gezeigt ein neues Kennwort festlegen oder den Parameter „-NewPassword“ auslassen, damit das System automatisch ein Zufallskennwort generiert.
Set-MsolUserPassword -UserPrincipalName JSmith@netwrixqcspa.onmicrosoft.com -NewPassword P@SSw0rd!
8. Verwalten der Gruppenzugehörigkeit in Office 365 mit PowerShell
Sie können mit PowerShell-Cmdlets auch Office 365-Gruppen verwalten. Um eine Liste aller Gruppen in Office 365 anzuzeigen, verwenden Sie einfach den Befehl „Get-MsolGroup“. Mit dem Befehl „Add-MsolGroupMember“ können Sie Benutzer zu einer Gruppe hinzufügen:
Add-MsolGroupMember -GroupObjectId 5b61d9e1-a13f-4a2d-b5ba-773cebc08eec -GroupMemberObjectId a56cae92-a8b9-4fd0-acfc-6773a5c1c767 -GroupMembertype user
„GroupObjectId“ ist die hexadezimale Gruppen-ID, die Sie mit dem Befehl „Get-MsolGroup“ abrufen können. „GroupMemberObejctId“ ist die Benutzerobjekt-ID, die Sie mit diesem Befehl ermitteln können:
Get-MsolUser | Select ObjectID.
Für das Entfernen eines Benutzers aus einer Gruppe verwenden Sie das Cmdlet „Remove-MsoGroupMember“.
9. Erstellen einer SharePoint-Websitesammlung mit PowerShell
Sie können mit PowerShell auch eine SharePoint-Websitesammlung erstellen:
New-SPOSite -Url "https://enterprise.sharepoint.com/sites/NewSite" -Owner "JSmith@enterprise.onmicrosoft.com" -StorageQuota "100" -Title "New Site"
10. Erstellen von Berichten in Office 365 mit PowerShell
PowerShell ist ein leistungsstarkes Tool zur Erstellung unterschiedlicher Berichte. Im Folgenden finden Sie einige Beispiele für nützliche Office 365-Berichte, die mit PowerShell erstellt wurden:
- Details zu allen Postfächern:
Get-mailbox | get-MailboxStatistics
- Eine Liste aller Postfächer, für die es in den letzten 30 Tagen keine Anmeldung gab:
Get-Mailbox –RecipientType 'UserMailbox' | Get-MailboxStatistics | Sort-Object LastLogonTime | Where {$_.LastLogonTime –lt ([DateTime]::Now).AddDays(-30) } | Format-Table DisplayName, LastLogonTime
- Ein Bericht zu den Benutzern, die die meisten Nachrichten senden bzw. empfangen:
Get-MailTrafficTopReport
- Ein Bericht zu allen Gruppen und ihren Mitgliedern:
function Get-AllO365Members { Try { $O365Groups=Get-UnifiedGroup foreach ($O365Group in $O365Groups) { Write-Host "Group Membership: " $O365Group.DisplayName -ForegroundColor Green Get-UnifiedGroupLinks –Identity $O365Group.Identity –LinkType Members Write-Host } } catch [System.Exception] { Write-Host -ForegroundColor Red $_.Exception.ToString() } } Get-AllO365Members
Beachten Sie bitte, dass die meisten Cmdlets zur Erstellung von Berichten seit Januar 2018 nicht mehr unterstützt werden und durch die neue Microsoft Graph-Berichterstellungs-API abgelöst wurden. Manche Berichte stehen deshalb nun ausschließlich über das Office 365 Security & Compliance Center zur Verfügung.
Wie Sie sehen können, lässt sich Office 365 mit PowerShell schnell und einfach verwalten. Denken Sie stets daran, alle Änderungen an Ihrer Office 365-Umgebung zu überwachen. So lassen sich Fehler später schneller diagnostizieren und beheben. Eine Anleitung zur Konfiguration der nativen Überwachungsfunktionen in Ihrer Office 365-Umgebung finden Sie im Kurzübersichtsleitfaden zur Überwachung von Exchange Online und im Kurzübersichtsleitfaden zur Überwachung von Exchange Online-Postfächern. Wenn Sie aussagekräftige Informationen zu den Aktivitäten und Ereignissen in Ihrer Office 365-Umgebung und Funktionen für eine flexible Berichterstellung, proaktive Benachrichtigungen und eine Google-ähnliche Suche benötigen, fordern Sie eine kostenlose Testversion von Netwrix Auditor for Office 365 an.