Freigeben über


Transformieren in moderne Websiteseiten mithilfe von PowerShell

Wichtig

SharePoint PnP Modernization ist ein Bestandteil des PnP-Framework und wird ständig weiterentwickelt. Sehen Sie sich die Versionshinweise an, um bezüglich der aktuellsten Änderungen auf dem neuesten Stand zu bleiben. Wenn Sie Probleme feststellen, öffnen Sie bitte ein Ticket in der GitHub-Problemliste im PnP-Framework.

Das Modul für die Seitentransformation kann auch in PowerShell verwendet werden. Dadurch kann es in ein Skript zur Websitemodernisierung integriert werden, das neben der Seitentransformation auch andere Aspekte wie das Installieren der Lösung, die Verbindung der Website mit einer Microsoft 365-Gruppe und das Anwenden des Mandantenbrandings übernimmt. Ein gutes Beispiel für ein Modernisierungsskript finden Sie in dem Artikel zum Verbinden einer Microsoft 365-Gruppe.

Hinweis

Die folgenden Skripts zeigen, wie Seiten transformiert werden. Dafür ist PnP PowerShell Version 1.3.* (Februar 2021) oder höher erforderlich. Es gibt weitere Beispielskripts (z. B. für die Transformation von Veröffentlichungsseiten oder aus dem lokalen SharePoint), die an unserem GitHub-Skript-Speicherort verfügbar sind.

<# 

.Synopsis

    Converts all classic wiki and web part pages in a site. 
    You need to install PnP PowerShell: https://pnp.github.io/powershell/

    Sample includes:
        - Conversion of wiki and web part pages
        - Connecting to MFA or supplying credentials
        - Includes Logging to File, log flushing into single log file        

.Example

    Convert-WikiAndWebPartPages.ps1 -SourceUrl "https://contoso.sharepoint.com/sites/classicteamsite" -TakeSourcePageName:$true

.Notes
    
    Useful references:
        - https://aka.ms/sppnp-pagetransformation
        - https://aka.ms/sppnp-powershell
#>

[CmdletBinding()]
param (

    [Parameter(Mandatory = $true, HelpMessage = "Url of the site containing the pages to modernize")]
    [string]$SourceUrl,

    [Parameter(Mandatory = $false, HelpMessage = "Modern page takes source page name")]
    [bool]$TakeSourcePageName = $false,    

    [Parameter(Mandatory = $false, HelpMessage = "Supply credentials for multiple runs/sites")]
    [PSCredential]$Credentials,

    [Parameter(Mandatory = $false, HelpMessage = "Specify log file location, defaults to the same folder as the script is in")]
    [string]$LogOutputFolder = $(Get-Location)
)
begin
{
    Write-Host "Connecting to " $SourceUrl
    
    if($Credentials)
    {
        Connect-PnPOnline -Url $SourceUrl -Credentials $Credentials
        Start-Sleep -s 3
    }
    else
    {
        Connect-PnPOnline -Url $sourceUrl -Interactive
        Start-Sleep -s 3
    }
}
process 
{    
    Write-Host "Ensure the modern page feature is enabled..." -ForegroundColor Green
    Enable-PnPFeature -Identity "B6917CB1-93A0-4B97-A84D-7CF49975D4EC" -Scope Web -Force

    Write-Host "Modernizing wiki and web part pages..." -ForegroundColor Green
    # Get all the pages in the site pages library. 
    # Use paging (-PageSize parameter) to ensure the query works when there are more than 5000 items in the list
    $pages = Get-PnPListItem -List sitepages -PageSize 500

    Write-Host "Pages are fetched, let's start the modernization..." -ForegroundColor Green
    Foreach($page in $pages)
    { 
        $pageName = $page.FieldValues["FileLeafRef"]
        
        if ($page.FieldValues["ClientSideApplicationId"] -eq "b6917cb1-93a0-4b97-a84d-7cf49975d4ec" ) 
        { 
            Write-Host "Page " $page.FieldValues["FileLeafRef"] " is modern, no need to modernize it again" -ForegroundColor Yellow
        } 
        else 
        {
            Write-Host "Processing page $($pageName)" -ForegroundColor Cyan
            
            # -TakeSourcePageName:
            # The old pages will be renamed to Previous_<pagename>.aspx. If you want to 
            # keep the old page names as is then set the TakeSourcePageName to $false. 
            # You then will see the new modern page be named Migrated_<pagename>.aspx

            # -Overwrite:
            # Overwrites the target page (needed if you run the modernization multiple times)
            
            # -LogVerbose:
            # Add this switch to enable verbose logging if you want more details logged

            # KeepPageCreationModificationInformation:
            # Give the newly created page the same page author/editor/created/modified information 
            # as the original page. Remove this switch if you don't like that

            # -CopyPageMetadata:
            # Copies metadata of the original page to the created modern page. Remove this
            # switch if you don't want to copy the page metadata

            ConvertTo-PnPPage -Identity $page.FieldValues["ID"] `
                                -Overwrite `
                                -TakeSourcePageName:$TakeSourcePageName `
                                -LogType File `
                                -LogFolder $LogOutputFolder `
                                -LogSkipFlush `
                                -KeepPageCreationModificationInformation `
                                -CopyPageMetadata
        }
    }

    # Write the logs to the folder
    Write-Host "Writing the conversion log file..." -ForegroundColor Green
    Save-PnPPageConversionLog

    Write-Host "Wiki and web part page modernization complete! :)" -ForegroundColor Green
}
end
{
    Disconnect-PnPOnline
}

Optionen für das cmdlet ConvertTo-PnPPage

Das Cmdlet ConvertTo-PnPPage ist das wichtigste Cmdlet zum Modernisieren einer bestimmten Seite. In der folgenden Tabelle sind die Befehlszeilenparameter aufgeführt, die Sie zum Steuern der Seitentransformation über dieses Cmdlet verwenden können.

Parameter Standard Unterstützt für Beschreibung
Identität (*) Alle Seitentypen Der Seitenname (z. B. pageA.aspx) für Wiki-, Webpart- und Veröffentlichungsseiten oder der Blogtitel für klassische Blogseiten. Bei klassischen Blogseiten wird die erste Blogseite verwendet, deren Titel mit dem angegebenen beginnt. Sie können alternativ auch die ID (Ganzzahlwert) der Seite angeben.
Bibliothek Wiki-/Webpartseiten Die Bibliothek, in der sich die Seite befindet. Verwenden Sie -Library diesen Parameter, wenn sich Ihre Wiki- oder Webpartseite außerhalb der standardmäßigen SitePages-Bibliothek befindet.
Ordner Wiki-/Webpart-/Veröffentlichungsseiten Wenn die Seite, die Sie transformieren möchten, in einem Ordner gespeichert ist, können Sie diesen Ordner (z. B. -Folder "Folder1/SubFolder") angeben.
WebPartMappingFile Alle Seitentypen Die Seitentransformation wird von einer Zuordnungsdatei gesteuert. Das Cmdlet weist eine eingebettete standardmäßige Zuordnungsdatei auf, aber Sie können auch eine benutzerdefinierte Webpart-Zuordnungsdatei so angeben (webpartmapping.xml), dass Ihre Anforderungen im Zusammenhang mit der Seitentransformation erfüllt werden (z. B. Transformation in benutzerdefinierte Drittanbieter-Webparts). Geben Sie hierzu den Pfad zu der Datei über den Parameter -WebPartMappingFile an.
Overwrite $false Alle Seitentypen Wenn Sie -Overwrite hinzufügen, wird die Zielseite vom Seitentransformations-Framework überschrieben, falls erforderlich. Standardmäßig weist der Name der neuen Seite das Präfix „Migrated_“ auf, was dann impliziert, dass es überschrieben wird, wenn Migrated_IhreSeite.aspx bereits vorhanden ist.
ReplaceHomePageWithDefault $false Wiki-/Webpartseiten Das Standardverhalten besteht darin, die Startseite Ihrer Website wie alle anderen regulären Seiten in eine moderne Seite zu transformieren. Wenn Sie -ReplaceHomeWithDefault verwenden, wird die Startseite einer Website in eine standardmäßige, einsatzbereite moderne Startseite transformiert, also in die Seite, die Sie mit der neu erstellten modernen Teamwebsite erhalten würden.
TakeSourcePageName $false Wiki-/Webpartseiten Das Standardverhalten besteht darin, der erstellten modernen Seite einen Namen zu geben, der mit dem Präfix „Migrated_“ beginnt, und den vorhandenen Namen der ursprünglichen Seite beizubehalten. Wenn -TakeSourcePageName angegeben wird, erhält die neu erstellte Seite den Namen der ursprünglichen Seite, und die ursprüngliche Seite wird mit dem Präfix „Previous_“ umbenannt. Legen Sie diese Option fest, wenn Sie sicher sind, dass Sie mit der modernen Seite fortfahren möchten, da dadurch sichergestellt wird, dass alle Links, die auf die ursprüngliche Seite zeigen, jetzt dazu führen, dass die neue moderne Seite geladen wird.
ClearCache $false Alle Seitentypen Zur Leistungsoptimierung werden bestimmte Daten (z. B. Liste der verfügbaren modernen Webparts, berechnete Liste der Felder, für die Metadaten kopiert werden sollen) nach der ersten Ausführung zwischengespeichert. Dieser Cache bleibt während der ganzen PowerShell-Sitzung gültig, es sei denn, Sie verwenden die Option -ClearCache. Durch einen Neustart der PowerShell-Sitzung wird auch der Cache gelöscht.
SkipItemLevelPermissionCopyToClientSidePage $false Alle Seitentypen Standardmäßig werden Berechtigungen auf Elementebene auf die moderne Seite kopiert. Verwenden Sie die -SkipItemLevelPermissionCopyToClientSidePage, um dies zu verhindern.
CopyPageMetadata $false Wiki-/Webpart-/Blogseiten Das Standardverhalten besteht darin, dass Seitenmetadaten nicht kopiert werden (zusätzliche Spalten werden daher der Bibliothek für Websiteseiten hinzugefügt). Wenn -CopyPageMetadata angegeben wird, werden die Werte der benutzerdefinierten Metadatenfelder der zu transformierenden Seite in die neu erstellte Seite kopiert. Ab der Version von Oktober 2019 funktioniert das Kopieren von Seitenmetadaten auch bei websiteübergreifenden Transformationen.
TargetWebUrl (**) Websiteübergreifende Transformation Wenn Sie die transformierten modernen Seiten in einer anderen Seitensammlung erstellen möchten, geben Sie die URL zu dieser anderen Seitensammlung an. Lesen Sie den Artikel Webpart-Transformationsliste, um zu verstehen, welche Webparts in einer standortübergreifenden Sammlungstransformation transformiert werden.
TargetConnection (**) Websiteübergreifende Transformation Ermöglicht eine flexiblere Definition des Ziels über ein Verbindungsobjekt. Dies ermöglicht beispielsweise die Cross-Mandanten Transformation vom lokalen- in den Onlinemodus.
UseCommunityScriptEditor $false Alle Seitentypen Verwenden Sie -UseCommunityScriptEditor, wenn Sie den Community-Skript-Editor installiert haben und ihn während der Transformation verwenden möchten. Lesen Sie den Artikel Webpart-Transformationsliste, um mehr zu erfahren.
SummaryLinksToHtml $false Alle Seitentypen Verwenden Sie -SummaryLinksToHtml, wenn Sie es vorziehen, den SummaryLinks-Webpart in HTML transformieren, der im Text-Webpart gehostet wird, anstelle der Standardtransformation mit dem QuickLinks-Webpart. Lesen Sie den Artikel Webpart-Transformationsliste, um mehr zu erfahren.
LogType Keine Alle Seitentypen Verwenden Sie -LogType, um die Protokollierung zu aktivieren: File protokolliert auf der Festplatte, SharePoint erstellt eine Protokollseite in der SitePages-Bibliothek von SharePoint, Console gibt Daten an die Konsole aus.
LogFolder Alle Seitentypen Wenn LogType auf File festgelegt ist, können Sie -LogFolder verwenden, um den Ordner anzugeben, in dem das Protokoll erstellt wird.
LogVerbose $false Alle Seitentypen Verwenden Sie -LogVerbose, um ein ausführliches Protokoll zu generieren.
LogSkipFlush $false Alle Seitentypen Standardmäßig wird bei jedem Cmdlet-Aufruf eine eindeutige Protokolldatei generiert, verwenden Sie den Parameter -LogSkipFlush, um Protokolleinträge zu sammeln. Beachten Sie, dass Sie mit einem Aufruf ohne LogSkipFlush abschließen müssen, um die gesammelten Protokolldateieinträge zu speichern.
DontPublish $false Alle Seitentypen Verwenden Sie die -DontPublish Option, damit die erstellte moderne Seite nicht veröffentlicht wird.
KeepPageCreationModificationInformation $false Alle Seitentypen Verwenden Sie den Parameter -KeepPageCreationModificationInformation, wenn Sie die Seiteneigenschaften „Autor/Bearbeiter/erstellt/geändert“ übernehmen möchten. Diese Option funktioniert nur, wenn sich die Quellseite im selben SPO-Mandanten wie das Ziel der modernen Seite befindet.
PostAsNews $false Alle Seitentypen Verwenden Sie den Parameter -PostAsNews, wenn Sie die erstellte moderne Seite als Neuigkeit auf der Website bereitstellen möchten. Dies bedeutet auch, dass die Seite veröffentlicht wird, auch wenn Sie sie so konfiguriert haben, dass die Veröffentlichung übersprungen wird.
SetAuthorInPageHeader $false Wiki-/Webpart-/Blogseiten Verwenden Sie den Parameter -SetAuthorInPageHeader, wenn Sie den Autor in der Kopfzeile der erstellten Seite auffüllen möchten. Der Autor wird als Autor der (dem Benutzer zugeordneten) Quellseite festgelegt.
DisablePageComments $false Alle Seitentypen Verwenden Sie -DisablePageComments, wenn Sie die Kommentierungsoption auf der erstellten Seite deaktivieren möchten.
PublishingPage-Klasse $false Veröffentlichungsseiten Legen Sie den -PublishingPage-Parameter fest, wenn Sie eine Veröffentlichungsseite transformieren. Für Wiki-, Webpart- und Blogseiten muss dieser Parameter weggelassen oder auf „false“ festgelegt werden.
PageLayoutMapping Veröffentlichungsseiten Über -PageLayoutMapping können Sie den Pfad der Seitenlayout-Zuordnungsdatei angeben, den Sie für die Transformationen der Veröffentlichungsseite verwenden werden, wenn die Veröffentlichungsseite kein einsatzbereites Seitenlayout verwendet.
TargetPageName Wiki-/Webpart-/Blogseiten Verwenden des -TargetPageName-Parameters, um den Standardnamen für die moderne Seite außer Kraft zu setzen. Dies ist z. B. erforderlich, um zu verhindern, dass die vorhandene "Home. aspx"-Seite bei einer websiteübergreifenden Transformation einer klassischen Teamwebsite-Startseite in eine moderne Kommunikationswebsite überschrieben wird.
PublishingTargetPageName Veröffentlichungsseiten Verwenden des -PublishingTargetPageName-Parameters, um den Namen für die moderne Seite außer Kraft zu setzen
TargetPageFolder Alle Seitentypen Verwenden Sie den Parameter -TargetPageFolder, um einen Zielordner für die moderne Seite anzugeben. Beachten Sie: Wenn ein Ordner automatisch erstellt wurde (z. B. bei einer Transformation aus einer zusätzlichen Wiki-Seitenbibliothek), wird der durch diesen Parameter angegebene Ordner mit dem automatisch generierten Ordner kombiniert (außer, Sie geben -TargetPageFolderOverridesDefaultFolder an). Sie können einen Ordner wie den folgenden angeben: MyFolder oder MyFolder/SubFolder, wenn Sie eine geschachtelte Ordnerstruktur erstellen möchten. Wenn Sie <root> als Wert angeben, können Sie als Ziel den Stamm der Zielseitenbibliothek verwenden
TargetPageFolderOverridesDefaultFolder $false Alle Seitentypen Mit Hilfe des Parameters -TargetPageFolderOverridesDefaultFolder können Sie erzwingen, dass die Seitentransformation den Ordner verwendet, der über -TargetPageFolder angegeben wird – unabhängig davon, ob ein Ordner automatisch erstellt wurde.
UrlMappingFile Websiteübergreifende Transformation Datei mit benutzerdefinierten URL-Zuordnungsdefinitionen ermöglichen Ihnen mehr als nur die standardmäßige URL-Zuordnung. Weitere Informationen hierzu finden Sie im Artikel URL-Zuordnung.
SkipUrlRewriting $false Websiteübergreifende Transformation Während der Transformation der Veröffentlichungsseite werden URLs neu geschrieben, um in der Sammlung der Zielwebsite gültig zu sein, aber mit -SkipUrlRewriting können Sie die URL-Neuschreibung deaktivieren. Weitere Informationen hierzu finden Sie im Artikel URL-Zuordnung.
SkipDefaultUrlRewriting Websiteübergreifende Transformation Wenn Sie eine benutzerdefinierte URL-Zuordnung verwenden und die Standard-URL-Neuschreibungslogik deaktivieren möchten, legen Sie den Parameter -SkipDefaultUrlRewriting fest.
AddTableListImageAsImageWebPart $true Alle Seitentypen Bilder, die sich in einer Tabelle bzw. Liste befinden, werden auch als separate Bildwebparts unterhalb dieser Tabelle/Liste erstellt. Verwenden Sie den Parameter -AddTableListImageAsImageWebPart, um die Erstellung dieser separaten Bildwebparts zu beenden.
BlogPage $false Blogseiten Legen Sie den -BlogPage-Parameter fest, wenn Sie eine klassische Blogseite transformieren. Für Wiki-, Webpart- und Veröffentlichungsseiten muss dieser Parameter ausgelassen oder auf „false“ festgelegt werden.
UserMappingFile Alle Seitentypen Datei mit Informationen zur Benutzerzuordnung. Weitere Informationen hierzu finden Sie im Artikel Benutzerzuordnung.
LDAPConnectionString Alle Seitentypen LDAP-Verbindungszeichenfolge zum Abfragen von Active Directory. Weitere Informationen hierzu finden Sie im Artikel Benutzerzuordnung.
SkipUserMapping $false Alle Seitentypen Überspringt die Benutzerzuordnung. Bei SPO-Transformationen ist die Benutzerzuordnung deaktiviert, es sei denn, Sie geben eine Zuordnungsdatei an. Für die lokale SharePoint-Instanz ist die Benutzerzuordnung immer aktiviert, sofern Sie dieses Flag nicht festlegen. Weitere Informationen hierzu finden Sie im Artikel Benutzerzuordnung.
TermMappingFile Websiteübergreifende Transformation Dateien mit benutzerdefinierten Termmapping-Definitionen ermöglichen Ihnen, mehr als nur das Standard-Termmapping durchzuführen. Weitere Informationen finden Sie im Artikel Termmapping.
SkipTermStoreMapping $false Websiteübergreifende Transformation Während der Seitentransformation werden Terme so zugeordnet, dass sie in der Websitesammlung des Ziels gültig sind, aber mit dem Parameter -SkipTermStoreMapping können Sie das Termmapping deaktivieren. Weitere Informationen finden Sie im Artikel Termmapping.

(*) Verbindlicher Kommandozeilenparameter / (**) Verbindlich, wenn der Parameter -PublishingPage oder -BlogPage gesetzt wurde (entweder -TargetWebUrl oder -TargetConnection)

Häufig gestellte Fragen

Wie kann ich Veröffentlichungsseiten transformieren?

Das oben dargestellte Beispiel zeigt die In-situ-Seitentransformation. Zum Transformieren von Veröffentlichungsseiten wird eine etwas andere Syntax verwendet. Das unten aufgeführte Beispiel zeigt, wie Sie die Seite „mypage.aspx“ modernisieren und eine moderne Version der Seite auf einer Kommunikationswebseite erstellen. Während diese Transformation verwendet die Seitentransformation entweder die integrierte Seitenlayout-Zuordnung, wenn die Seite ein vorgefertigtes Layout verwendet, oder es wird direkt eine Seitenlayout-Zuordnung erstellt:

Connect-PnPOnline -Url https://contoso.sharepoint.com/sites/portaltomodernize -Interactive

ConvertTo-PnPPage -PublishingPage -Identity mypage.aspx -Overwrite -TargetWebUrl https://contoso.sharepoint.com/sites/moderncommunicationsite

Wenn Sie benutzerdefinierte Seitenlayouts verwenden, wird dringend empfohlen, die verwendete Seitenlayout-Zuordnungsdatei anzupassen, bevor Sie sie verwenden. Führen Sie hierzu die folgenden Schritte aus:

Erstellen einer benutzerdefinierten Seitenlayout-Zuordnungsdatei

Verwenden Sie PnP PowerShell, um die vorhandenen Seitenlayouts zu analysieren und eine Zuordnungsdatei zu generieren:

Connect-PnPOnline -Url https://contoso.sharepoint.com/sites/portaltomodernize -Interactive

Export-PnPPageMapping -CustomPageLayoutMapping -Folder c:\temp

Hinweis

PnP PowerShell ist eine Open Source-Lösung mit aktiver Community, die Support dafür bietet. Es gibt keine SLA für den Support des Open-Source-Tools durch Microsoft.

Wenn Sie die Zuordnungsdateien für OOB-Seitenlayouts generieren möchten, spezifizieren Sie den AnalyzeOOBPageLayouts-Switch.

Optimieren der generierten Zuordnungsdatei

Öffnen Sie die erstellte Zuordnungsdatei und überprüfen Sie die einzelnen Zuordnungen:

  • Legen Sie die Zeilen- und Spaltenwerte für Webparts, Webpartzonen und feste Webparts ordnungsgemäß fest, damit Inhalte auf der modernen Seite an der richtigen Stelle angezeigt werden. Sie können beliebig viele Zeilen haben, wobei jede Zeile auf der modernen Seite ein Abschnitt ist. Spaltenwerte sind auf 1, 2 oder 3 begrenzt, wodurch die mögliche Spaltenanzahl auf einer modernen Seite angegeben wird.
  • Definieren Sie die Felder, die als Metadaten transformiert werden müssen.
  • Überprüfen Sie die generierte Zuordnung von Feldern zu Webparts.
  • Überprüfen Sie die generierte Zuordnung von Feldern zur Kopfzeile.

Verwenden der benutzerdefinierten Zuordnungsdatei

Die Verwendung der bereinigten benutzerdefinierten Zuordnungsdatei ist über den PageLayoutMapping-Parameter einfach:

Connect-PnPOnline -Url https://contoso.sharepoint.com/sites/portaltomodernize -Interactive

ConvertTo-PnPPage -PublishingPage -Identity mypage.aspx -Overwrite -TargetWebUrl https://contoso.sharepoint.com/sites/moderncommunicationsite -PageLayoutMapping c:\temp\mypagelayouts.xml

Beispielskripts zum Umwandeln (lokaler) Veröffentlichungsseiten in moderne Seiten in SharePoint Online

Sehen Sie sich die Skripts in https://github.com/SharePoint/sp-dev-modernization/tree/dev/Scripts/PageTransformation an, um zu beginnen.

Lesen Sie die Veröffentlichungsseite in lokalem SharePoint und erstellen Sie die moderne Seite in SharePoint Online

Wenn Sie Ihre klassischen lokalen Veröffentlichungsportale übernehmen möchten, verschieben Sie zuerst das gesamte Portal vom lokalen in ein klassisches Portal in SharePoint Online und modernisieren sie es dann. Häufig ist es jedoch einfacher, die klassische Veröffentlichungsseite direkt von Ihrem lokalen SharePoint-Portal aus zu lesen und die moderne Version in SharePoint Online zu erstellen. Dazu müssen Sie PnP-PowerShell für SharePoint Online verwenden, um eine Verbindung mit Ihrem lokalen Portal herzustellen, wie im folgenden Skript dargestellt:

# Setup connection the target site - must be SPO and must be a modern site
$target = Connect-PnPOnline https://contoso.sharepoint.com/sites/moderncommunicationsite -ReturnConnection

# Connect to your on-premises portal
$source = Connect-PnPOnline https://portal2013.pnp.com/sites/classicportal -TransformationOnPrem -CurrentCredentials -ReturnConnection

# Convert a classic page living in the on-premises portal to a modern page in SharePoint Online. Dependent images and videos are copied as well from on-premises to online during this process.
ConvertTo-PnPPage -Identity "page1.aspx" -PublishingPage -TargetConnection $target -LogVerbose -LogType File -LogFolder c:\temp -Connection $source

Hinweis

  • Dieses Feature unterstützt SharePoint 2013, 2016 und 2019 als Quellumgebung. Zielumgebung ist immer SharePoint Online. Die Transformation von SharePoint 2010 ist möglich, erfordert dann aber die alte PnP PowerShell-Version
  • Der Computer, auf dem das PowerShell-Skript ausgeführt wird, muss sich sowohl an den lokalen SharePoint-Server als auch mit der SharePoint Online-Umgebung verbinden können
  • Diese Vorgehensweise kann auch für die mandantenübergreifende Seitentransformation verwendet werden (wenn dies sinnvoll wäre)

Verwenden Sie die Protokollierungsfunktionen

Connect-PnPOnline -Url https://contoso.sharepoint.com/sites/portaltomodernize -Interactive

# Convert a series of pages, logs are not yet written
ConvertTo-PnPPage -PublishingPage -Identity mypage.aspx -Overwrite -TargetWebUrl https://contoso.sharepoint.com/sites/moderncommunicationsite -LogSkipFlush -LogType SharePoint -LogVerbose
ConvertTo-PnPPage -PublishingPage -Identity mypage.aspx -Overwrite -TargetWebUrl https://contoso.sharepoint.com/sites/moderncommunicationsite -LogSkipFlush -LogType SharePoint -LogVerbose

# persist the log data from all previous page transformations to the defined log
Save-PnPPageConversionLog

Transformieren einer Seite, die sich auf der Stammebene der Website befindet (also außerhalb einer Bibliothek)

Einige ältere Websites haben möglicherweise Webpartseiten außerhalb einer Bibliothek. Wenn Sie diese modernisieren möchten, müssen Sie angeben, dass sich die Seite über -Folder "<root>" wie nachstehend dargestellt im Stammverzeichnis der Website befindet:

Connect-PnPOnline -Url https://contoso.sharepoint.com/sites/sitetomodernize -Interactive

ConvertTo-PnPPage -Identity pageinroot.aspx -Overwrite -Folder "<root>"

Moderne Websiteseiten funktionieren nicht auf der Website, auf der ich Seiten transformieren möchte

Die Funktion für moderne Websiteseiten ist standardmäßig für die meisten Websites aktiviert, wurde aber vielleicht danach deaktiviert. Wenn dies der Fall ist, erfahren Sie über den SharePoint-Modernisierungsscanner, auf welchen Websites das Feature für moderne Seiten deaktiviert wurde. Zur Behebung dieses Problems verwenden Sie das folgende PnP-PowerShell-Beispielskript:

Connect-PnPOnline -Url "<your web url>" -Interactive

# Enable modern page feature
Enable-PnPFeature -Identity "B6917CB1-93A0-4B97-A84D-7CF49975D4EC" -Scope Web

Siehe auch