SharePoint Online - Copy site pages between site collections - is that possible?

Brass Contributor

Hello everyone,

 

I have been asked to move some site pages from a Microsoft Team to another Team. In the modern look of SharePoint Online I can select the page (example1.aspx) and when clicking on the three dots I am given the option "Copy to". As you probably know, the page can be copied only on the same site/Team. 

When I switch to the "classic" look/mode, I am given the option "Copy" and I can type a destination document library or folder (see the screenshot below), but when I try to copy that to another site, I always get an error (refuse to connect). 

fstorer_0-1585307394746.png

I know that there's a User Voice page asking specifically for this feature, but I would like to know if there is some workaround we can try in the meantime, like free migration tools or some scripts via PowerShell. 

 

Thank you in advance for your help!

 

Francesco 

7 Replies

Thanks @jcgonzalezmartin for your quick reply.

I tried the option of opening the document library in Internet Explorer and after that working with File Explorer, but it didn't work, I got the following error:

fstorer_0-1585317744732.png

I see that NiclasDahl suggests to allow customization on the the destination site, but in another post Joel Rodrigues doesn't recommend it (Hi, I would highly recommend that you don't do that. That feature was removed for a good reason as it causes issues in the long term). Does someone know which kind of issues this might cause?

 

Thanks for your help!

@fstorer Hi, for anyone looking for a solution this might help:

Import-Module SharePointPnPPowerShellOnline

#Source and Target Sites
$tenant = "tenant";
$SourceUrl="https://$tenant.sharepoint.com/sites/sourceSite"
$targetRelativeLibraryUrl="/sites/marketing/SitePages"

#SPO Connection
$AdminPassword=Read-Host -Prompt "Password" -AsSecureString
$adminUPN = "admin@australia.com.au"
$Credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $adminUPN, $AdminPassword
Connect-PnPOnline -Url $SourceUrl -Credentials $cred
#Connect-PnPOnline -Url $SourceUrl -UseWebLogin
$ServerRelativeUrl=(Get-PnPWeb).ServerRelativeUrl

#Get all source pages
$pages = Get-PnPListItem -List sitepages

Foreach($page in $pages){
    $pageName = $page.FieldValues["FileLeafRef"]
    #if($pageName -like "Migrated*"){ #OPTIONAL FILTER
        
        #Write-Host $pageName
        $file = Get-PnPFile -Url "$ServerRelativeUrl/sitePages/$pageName"
        $fileServerRelativeUrl = Get-PnPProperty -ClientObject $file -Property "ServerRelativeUrl"

        #Start the move
        Move-PnPFile -ServerRelativeUrl $fileServerRelativeUrl -TargetServerRelativeLibrary $targetRelativeLibraryUrl -Force  -AllowSchemaMismatch -AllowSmallerVersionLimitOnDestination
    #}
}

@Sheldon-Faria  please share more details about it?

 

how to copy .aspx page to another site?

@pgawde_800  I solved using PNP-PoweShell, afterwards I only had to upload the images to the Image WebParts.

try{

    $srcSiteURL   = "https://xxxxx.sharepoint.com/sites/xxxxx/"

    $destSiteURL  = "https://xxxxx.sharepoint.com/sites/yyyyy/"

    $pageName = "test.aspx"

    

    Connect-PnPOnline -Url $srcSiteURL -Credentials SharepointCredential

    $tempFile = [System.IO.Path]::GetTempFileName();

    Export-PnPClientSidePage -Force -Identity $pageName -Out $tempFile

    

    Connect-PnPOnline -Url $destSiteURL -Credentials SharepointCredential

    Apply-PnPProvisioningTemplate -Path $tempFile

    Write-Host "Success"

    }

catch{

    Write-Host -ForegroundColor Red 'Error ',':'$Error[0].ToString();

    } 

@David2Felix 

I have managed to do this, however I am missing the images - what are the steps to get the content from the source page over to the destination page?

 

I can not even see the images in the pages from the source content SharePoint site stored anywhere in document libraries.

 

Thanks for any help!

Thanks a lot, Do you can tell me, how I can create a log file for this process?