Tierney - stock.adobe.com

Diese SharePoint-PowerShell-Befehle sollten Admins kennen

SharePoint nimmt eine wichtige Rolle im Alltag vieler Administratoren ein. In diesem Artikel erklären wir, wie sie die Plattform mit PowerShell-Modulen zeitsparender verwalten.

SharePoint Online ist eine leistungsstarke Plattform, die viele Aspekte von Microsoft 365 und die damit verbundenen Angebote unterstützt. Die programmgesteuerte Verwaltung all dieser Tools kann dem Systemadministrator das Leben erheblich erleichtern, da er sie nicht mehr einzeln über die Benutzeroberfläche konfigurieren muss.

PowerShell ist die bevorzugte Sprache für die meisten Microsoft- und Azure-Administratoren, um sowohl die Benutzer als auch die Ressourcen zu verwalten, auf die sie über ihr Abonnement zugreifen können. Die Fähigkeiten von PowerShell eignen sich auch gut für die Verwaltung von SharePoint. In Anleitung erfahren Sie, wie Sie auf PowerShell-Module zugreifen, die auf die Verwaltung der Cloud-basierten Collaboration-Plattform zugeschnitten sind, und anschließend einige einfache Verwaltungsaufgaben mit PowerShell-Befehlen für SharePoint Online ausführen.

SharePoint Online über PowerShell verwalten

Es gibt zwei primäre PowerShell-Module, die Admins für das Verwalten von SharePoint Online verwendet können: SharePoint Online-Verwaltungsshell und PnP (Patterns and Practices, Muster und Praktiken). Die Module decken jeweils unterschiedliche Einsatzszenarien ab und erweitern PowerShell um zahlreiche Funktionen. Die SharePoint Online-Verwaltungsshell ist für Verwaltungsaufgaben mit SharePoint selbst gedacht und enthält Funktionen zum Erstellen und Ändern von Websites und umgebungsweiten Richtlinien.

Das PnP-Modul verwenden Admins normalerweise zum Ändern des Webseiteninhalts, nicht für Änderungen an der Umgebung selbst. Früher gab es ein dediziertes PnP-Modul nur für die Verwaltung von SharePoint (SharePoint PnP PowerShell Online), dieses erhält jedoch keine Aktualisierungen mehr von Microsoft. In diesem Artikel verwenden wir das neue, allgemeine PnP-Modul, mit dem Administratoren verschiedene Umgebungen von Microsoft 365 mit Cmdlets verwalten können. Das neue Modul eignet sich jedoch nur für die Cloud-basierte Version von SharePoint.

Installation von und Verbindung mit SharePoint Online-Verwaltungsshell

Verwenden Sie den Befehl Install-Module (siehe Beispiel unten), um das SharePoint Online-Verwaltungsshell-Modul abzurufen. Verwenden Sie nach der Installation den Befehl Connect-SPOService, um eine Verbindung zur Shell herzustellen. Wenn Sie kein Objekt mit Anmeldeinformationen angeben, können Sie sich über ein Multifaktor-Login authentifizieren, wenn Sie zur Eingabe eines Bestätigungscodes aufgefordert werden.

# Install the SharePoint Online Management Shell

Install-Module -Name 'Microsoft.Online.SharePoint.PowerShell'

# Connect to the admin SharePoint instance
$Params = @{
    "Url"        = 'https://{site url}-admin.sharepoint.com'
    "Credential" = (Get-Credential)
}

Connect-SPOService @Params

Man beachte den admin in der URL. Das ist erforderlich, um eine Verbindung zum richtigen Endpunkt herzustellen. Wenn Sie diesen Befehl in PowerShell Core oder PowerShell 7 ausführen, müssen Sie den Parameter -UseWindowsPowerShell verwenden.

Installation von und Verbindung mit SharePoint PnP

Die Installation für dieses PowerShell-Modul ähnelt der oben verwendeten Methode. Installieren Sie PnP mit dem Befehl Install-Module und verwenden Sie dann Connect-PnPOnline, um eine Verbindung zu einer SharePoint-Site herzustellen. Im Gegensatz zum SharePoint-Online-Modul müssen Sie den Parameter -UseWebLogin für die Multifaktorauthentifizierung, ohne den Parameter Anmeldeinformationen übergeben.

# Install the Patterns and Practices Module
Install-Module -Name ' PnP.PowerShell'

# Connect to the SharePoint site
$Params = @{
    "Url"         = 'https://{site url}.sharepoint.com'
    "Credentials" = (Get-Credential)
}

Connect-PnPOnline @Params

Administratoren, die PowerShell Core oder PowerShell 7 nutzen, müssen den Befehl -UseWindowsPowerShell verwenden.

Im Folgenden erläutern wir anhand von Beispielen einige gängige Szenarien für die Verwendung von PowerShell-Befehlen zum Verwalten von Ressourcen auf SharePoint online.

Hinzufügen von Benutzern zu einer Gruppe

Eine vertraute Aufgabe für SharePoint-Administratoren ist das Hinzufügen eines Benutzers zu einer Gruppe für eine SharePoint Online Website. Zu diesem Zweck können Sie in PowerShell den Befehl Add-SPOUser aus dem SharePoint Online-Verwaltungsshell-Modul verwenden, das Sie durch das SPO-Präfix aufrufen.

$Params = @{
  "Site"      = "https://tenant.sharepoint.com/sites/testsite"
  "LoginName" = "[email protected]"
  "Group"     = "Auditors"
}

Add-SPOUser @Params

So fügen Sie einen Administrator für die Websitesammlung hinzu

Eine Funktion in SharePoint Online ist die Websitesammlung, bei der ein Benutzer als Websitesammlungsadministrator eingetragen sein muss, damit er Verwaltungsaufgaben ausführen kann, wie das Anpassen von Richtlinien für die Websitesammlung und das Ändern der Konfiguration von Websiteverzeichnissen.

Um den Websitesammlungsadministrator in PowerShell einzurichten, verwenden wir in diesem Beispiel den Befehl Set-SPOUser. Diese Vorgehensweise setzt voraus, dass der Benutzer Mitglied der Site ist.

$ Params = @ { "Site" = "https://tenant.sharepoint.com/sites/testsite" "LoginName" = "[email protected]" "IsSiteCollectionAdmin" = $ True }} Set-SPOUser @Params

So generieren Sie SharePoint-Online-Benutzerberichte

Nachdem Sie Änderungen an Benutzern innerhalb einer SharePoint Online Website vorgenommen haben, können Sie auf diesen Websites einen Bericht erstellen, um Benutzerberechtigungen zu überprüfen.

Mit dem folgenden Befehl rufen Sie Benutzerdetails ab und exportieren die Informationen dann in eine CSV-Datei.

Get-SPOUser -Site "https://tenant.sharepoint.com/sites/testsite" | Select-Object LoginName, IsSiteAdmin, Groups, UserType | Format-Table -Wrap -AutoSize

# Export CSV Report
Get-SPOUser -Site "https://tenant.sharepoint.com/sites/testsite" | Select-Object LoginName, IsSiteAdmin, Groups, UserType | Export-CSV -Path ".\userreport.csv"

Um einen Bericht für alle Sites zu generieren, erweitern Sie den Befehl geringfügig, um über jede Site zu iterieren:

Get-SPOSite | ForEach-Object {
  $Site = $_.URL
  Get-SPOUser -Site $Site | Select-Object @{Name="Site";Expression={$Site}}, LoginName, IsSiteAdmin, Groups, UserType
} | Format-Table -Wrap -AutoSize

# Export CSV Report
Get-SPOSite | ForEach-Object {
  $Site = $_.URL
  Get-SPOUser -Site $Site | Select-Object @{Name="Site";Expression={$Site}}, LoginName, IsSiteAdmin, Groups, UserType
} | Export-CSV -Path ".\userreport.csv"

So richten Sie die Versionierung in einer SharePoint-Online-Liste ein

Für zusätzliche Kontrolle in SharePoint Online können Sie die Versionierung einer Liste einstellen, um Änderungen bei Bedarf rückgängig zu machen. Verwenden Sie den PnP-Modulbefehl Set-PnPList, um die Versionierung einer Liste zu aktivieren.

Der PowerShell-Code im folgenden Beispiel legt 10 Haupt- und Nebenversionen in der Liste fest.

$Params = @{
  "Identity"         = 'TestList'
  "EnableVersioning" = $True
  "MajorVersions"    = 10
  "MinorVersions"    = 10
}

Set-PnPList @Params

Dank der Flexibilität von PowerShell können Sie die Versionierung aller Listen schnell konfigurieren, indem Sie den Befehl Get-PnPList verwenden und jede Liste durchlaufen.

$Lists = Get-PnPList | Where-Object Hidden -EQ $False

$Lists | ForEach-Object {
  $Params = @{
    "Identity"         = $_.Title
    "EnableVersioning" = $True
    "MajorVersions"    = 10
    "MinorVersions"    = 10
  }

  Set-PnPList @Params
}

So legen Sie Freigabeeinstellungen auf einer SharePoint Website fest

Im letzten Beispiel zeigen wir, wie Sie mit dem Befehl Set-SPOSite Freigabeeinstellungen für eine bestimmte Seite mit verschiedenen Optionen für anonyme und authentifizierte Benutzer festlegen.

$Site = "https://tenant.sharepoint.com/sites/testsite"

# Disable Sharing
Set-SPOSite -Identity $Site -SharingCapability 'Disabled'
# Set Sharing to only Authenticated Users
Set-SPOSite -Identity $Site -SharingCapability 'ExternalUserSharingOnly'
# Set Sharing to Anonymous
Set-SPOSite -Identity $Site -SharingCapability 'ExternalUserAndGuestSharing'

Wie geht es weiter?

In den Beispielen für diese Anleitung haben wir nur einige der vielen Möglichkeiten aufgeführt, wie SharePoint-Online-Administratoren die PowerShell für ihre Zwecke nutzen können. In der SharePoint Online-Verwaltungsshell und den SharePoint-PnP-Modulen sind viele weitere Befehle enthalten, die Sie auf der Dokumentationsseite von Microsoft nachschlagen können.

Mit diesen beiden Modulen können Sie die meisten Verwaltungsaufgaben über PowerShell ausführen, ohne auf das Administrationsportal zugreifen zu müssen.

Erfahren Sie mehr über Serverbetriebssysteme