Zehn nützlichste PowerShell-Befehle für Office 365
Sep 19, 2018
Die Verwendung von Windows PowerShell zur Verwaltung von Office 365 mag anfangs ungewöhnlich erscheinen. Schließlich versprechen Cloud-Lösungen Einfachheit und Benutzerfreundlichkeit – Adjektive, die selten im Zusammenhang mit Windows PowerShell verwendet werden. Aber bleiben Sie dran. In diesem Artikel zeige ich Ihnen die zehn nützlichsten Office 365 PowerShell-Cmdlets für Systemadministratoren. Vielleicht stimmen Sie nach dem Lesen dieser Anweisungen zu, dass PowerShell auch für cloudbasierte Systeme ein wertvolles Werkzeug sein kann.
1. Verbindung zu einer Office 365-Instanz mit PowerShell herstellen
Zuerst müssen wir das Office 365-Modul für Windows PowerShell installieren und eine Verbindung zur Office 365-Instanz herstellen. Gehen Sie folgendermaßen vor:
1. Laden Sie herunter und installieren Sie den Microsoft Online Services Sign-In Assistant for IT Professionals RTW.
2. Importieren Sie das Online Services PowerShell-Modul für Microsoft Azure Active Directory und Office 365:
Install-Module -Name AzureAD
Install-Module -Name MSOnline
3. Geben Sie Ihre Office 365-Admin-Anmeldeinformationen ein:
$Cred = Get-Credential
4. Erstellen Sie eine Remote-PowerShell-Sitzung:
$O365 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic -AllowRedirection
5. Importieren Sie die Sitzungsbefehle in die lokale Windows PowerShell-Sitzung:
Import-PSSession $O365
6. Verbinden Sie sich mit allen Office 365-Diensten:
Connect-MsolService –Credential $O365
Sobald wir die Module für Windows PowerShell importiert haben, sind wir bereit, unsere Office 365-Instanz zu verwalten.
2. Verbindungsaufbau zu Exchange Online und SharePoint Online mit PowerShell
Wir können uns auch separat mit Microsoft Exchange Online und Microsoft SharePoint Online verbinden. Die Verbindung zu Exchange Online mit PowerShell ist im Grunde genommen dasselbe wie die 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
Die Verbindung zu SharePoint Online unterscheidet sich ein wenig. Um Ihren SharePoint Online-Mandanten zu verwalten, müssen Sie zuerst das Feature SharePoint Online Management Shell herunterladen und installieren. Führen Sie dann das folgende PowerShell-Skript aus:
$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
3. Eine Liste der verfügbaren Office 365 PowerShell-Cmdlets erhalten
Um eine Liste aller verfügbaren Office 365 PowerShell commands zu erhalten, müssen wir das Cmdlet Get-Command ausführen:
Get-Command -module MSOnline
Wir können auch die Liste der Cmdlets für Azure Active Directory erhalten:
Get-Command -module AzureAD
4. Eine Liste aller Office 365-Benutzer mit PowerShell erhalten
Wenn Sie eine Liste der Office 365-Benutzer und Lizenzen bereitstellen müssen, verwenden Sie das Get-MsolUser-Cmdlet. Es ruft alle Benutzer mit einer gültigen Lizenz im Office 365-Mandanten ab, einschließlich der Parameter DisplayName, City, Department und ObjectID.
Get-MsolUser | Select DisplayName, City, Department, ObjectID
Um die Anzahl der Kontolizenzen zu sehen, müssen Sie folgendes Cmdlet ausführen:
Get-MsolAccountSku
Um die verfügbaren Dienste aufzulisten, führen Sie das folgende Skript aus:
Get-MsolAccountSku | select -ExpandProperty ServiceStatus
5. Erstellen eines neuen Benutzers in Office 365 mit PowerShell
Um einen neuen Benutzer zu erstellen, verwenden wir den Befehl New-MsolUser:
New-MsolUser -UserPrincipalName JSmith@enterprise.onmicrosoft.com -DisplayName "John Smith" -FirstName “John” -LastName “Smith”
Das System wird die Passwort- und Lizenzstatusdaten des Benutzers ausgeben.
6. Entfernen eines Benutzers von allen Seiten mit PowerShell
Um einen Benutzer gleichzeitig von allen Seiten zu entfernen, verwenden wir den folgenden Befehl:
Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName " JSmith@enterprise.onmicrosoft.com"}
7. Ändern eines Passworts in Office 365 mit PowerShell
Wenn Sie das Passwort für ein Konto ändern müssen, verwenden Sie das Cmdlet Set-MsolUserPassword. Sie können entweder ein neues Passwort angeben, wie im Beispiel unten, oder den Parameter -NewPassword weglassen, damit das System automatisch ein zufälliges Passwort generiert.
Set-MsolUserPassword -UserPrincipalName JSmith@Netwrixqcspa.onmicrosoft.com -NewPassword P@SSw0rd!
8. Verwaltung der Gruppenmitgliedschaft in Office 365 mit PowerShell
Wir können auch Office 365-Gruppen mithilfe von PowerShell-Cmdlets verwalten. Um eine Liste aller Gruppen in Office 365 abzurufen, verwenden Sie einfach den Befehl Get-MsolGroup. Um Benutzer zu einer Gruppe hinzuzufügen, verwenden Sie den Befehl Add-MsolGroupMember:
Add-MsolGroupMember -GroupObjectId 5b61d9e1-a13f-4a2d-b5ba-773cebc08eec -GroupMemberObjectId a56cae92-a8b9-4fd0-acfc-6773a5c1c767 -GroupMembertype user
GroupObjectId ist die hexadezimale ID der Gruppe, die Sie mit dem Befehl Get-MsolGroup erhalten können. GroupMemberObejctId ist die Benutzerobjekt-ID, die Sie finden können, indem Sie diesen Befehl ausführen:
Get-MsolUser | Select ObjectID.
Um einen Benutzer aus einer Gruppe zu entfernen, verwenden Sie das Cmdlet Remove-MsoGroupMember.
9. Erstellen einer SharePoint-Sitekollektion mit PowerShell
Wir können auch eine SharePoint-Site-Sammlung mit PowerShell 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 großartiges Werkzeug, um verschiedene Berichte zu erstellen. Hier sind einige nützliche Office 365-Berichte, die über PowerShell erstellt wurden:
- Details zu allen Postfächern:
Get-mailbox | get-MailboxStatistics
- Eine Liste aller Postfächer, in die in den letzten 30 Tagen nicht eingeloggt wurde:
Get-Mailbox –RecipientType 'UserMailbox' | Get-MailboxStatistics | Sort-Object LastLogonTime | Where {$_.LastLogonTime –lt ([DateTime]::Now).AddDays(-30) } | Format-Table DisplayName, LastLogonTime
- Ein Bericht über die Sender und Empfänger mit dem höchsten Volumen:
Get-MailTrafficTopReport
- Ein Bericht über alle Gruppen und ihre Mitglieder:
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, dass die meisten der Reporting-Cmdlets im Januar 2018 veraltet waren und durch die neue MS Graph Reporting API ersetzt wurden. Daher sind einige Berichte jetzt nur noch im Office 365 Security & Compliance Center verfügbar.
Wie Sie sehen können, ist die Verwaltung von Office 365 mit PowerShell schnell und einfach, wie auch bei Microsoft Windows Server. Vergessen Sie nicht, alle Änderungen, die Sie in Ihrer Office 365-Umgebung vornehmen, zu überwachen; es wird Ihnen helfen, Probleme schneller zu beheben und sich davon zu erholen. Um zu erfahren, wie Sie die native Überwachung in Ihrer Office 365-Umgebung konfigurieren, werfen Sie einen Blick in unseren Exchange Online Auditing Quick Reference Guide und Exchange Online Mailbox Auditing Quick Reference Guide. Wenn Sie handlungsrelevante Informationen darüber wünschen, was in Ihrer Office 365-Umgebung vor sich geht, zusammen mit flexiblen Berichten, proaktiven Warnungen, Google-ähnlicher Suche und vielem mehr, fordern Sie eine kostenlose Testversion von Netwrix Auditor for Office 365 an.
Teilen auf
Erfahren Sie mehr
Über den Autor
Jeff Melnick
Direktor für Systemtechnik
Jeff ist ehemaliger Director of Global Solutions Engineering bei Netwrix. Er ist ein langjähriger Netwrix-Blogger, Redner und Präsentator. Im Netwrix-Blog teilt Jeff Lifehacks, Tipps und Tricks, die Ihre Systemadministrationserfahrung erheblich verbessern können.
Erfahren Sie mehr zu diesem Thema
Datenschutzgesetze der Bundesstaaten: Unterschiedliche Ansätze zum Datenschutz
Beispiel für Risikoanalyse: Wie man Risiken bewertet
Das CIA-Dreieck und seine Anwendung in der realen Welt
Was ist elektronisches Records Management?
Quantitative Risikoanalyse: Jährliche Verlust Erwartung