In this post we will look at how the image tags managed metadata column creates issues for ShareGate migrations and how to resolve them.
Intro
Image tags were introduced in July 2021 and are automatically added by Microsoft AI to improve search. When images get uploaded into document libraries, SharePoint will analyse them upon upload and tag them based on a set of 37 basic tags. SharePoint will also re-analyse each time an image is updated and update the image tags.
The image tags column is a managed metadata column that isn’t immediately available within a document library. you have to upload an image first, before the image tag column appears – which can take several hours.
The problem
When migrating files at scale using migration tools such as ShareGate desktop, you will start to see errors in your migration reports related to the image tags column. In the example below, the details of each failed item showed the same or similar errors:
“Property Image Tags: The following values are unavailable: ‘outdoor, sign, text’. Please specify another value.”
ShareGate migration errors
Example migration report showing the image tag error messages.
The solution
The way I resolved this issue was to change an option within the migration task itself to ignore the image tag column managed metadata values. To do this I did the following in ShareGate:
In ShareGate desktop > start a copy content migration
Select your source and destination sites
In the copy content screen > select Options
Select Metadata > then expand Document
You will see the image tags column here > change set mapped value to ignore
Tick apply for all version history
Set your copy content migration task to ignore the image tasks column metadata.
In this post we look at three different ways you can copy a page from one SharePoint site to another.
Intro
The copy/ move features within SharePoint Online were introduced a few years ago, and although they are pretty good, aren’t without their limitations – something I wrote about in 2021. One such limitation is the inability to be able to copy or move site pages from one SharePoint site to another – a frequent request of users and of the SharePoint community to Microsoft, but so far nothing has been implemented.
I’m going to cover a few ways you can copy a site page from site to site, using a variety of different tools and products along the way.
#1 Create a flow in Power Automate
In this example we can use Power Automate to allow users to select the page they want to copy, input the site URL they want to copy to and let the flow do its magic!
Create a new flow in Power Automate > use the instant cloud flow option.
Create a for a selected file trigger > enter the site address and library name.
NOTE: In my example, just entering ‘Site Pages’ resulting in my flow not appearing in the Site Pages library. This seems to be an issue with the for a selected file trigger. In order to get it to show up, I had to use the library ID instead of the library name. To get the library ID:
Open the library settings > more library settings
Copy everything between List=&7B until %7D – this is the library ID
Copy the library ID which is the numbers between &7B and %7D
In the for a selected file trigger > add an input
Select text as the user input type > update the input name and input value placeholder text. This user input type will be used to allow users to enter the site URL they wish to copy their pages to.
Add a text user input type to allow users to input the destination site URL.
Add a get file properties action and configure with the following:
Enter the source site address of your site pages library
Enter either site pages, or the ID of your site pages library
Under ID > select ID from the for a selected file trigger
Add a copy file action and configure with the following:
Current site address: source site address of your site pages library
File to copy: Identifier from get file properties
Destination site address: destination site (or whatever you called your user input) from for a selected file
Destination folder: /SitePages
If another file is already there: copy with a new name (optional)
Three steps – that’s it! Now go ahead and test your flow by selecting a site page and copying it to a different site by running your flow.
#2 Use PnP PowerShell
Another way you are able to do this is with PowerShell, in this case I’ll defer to the brilliant SharePoint diary who has a great write up, including all cmdlets you need to copy a page from site to site, or copy all pages. I’ll include the relevant sample for my blog post, but full credit goes to SharePoint diary:
#Parameters
$SourceSiteURL = "https://crescent.sharepoint.com/sites/marketing"
$DestinationSiteURL = "https://crescent.sharepoint.com/sites/branding"
$PageName = "About.aspx"
#Connect to Source Site
Connect-PnPOnline -Url $SourceSiteURL -Interactive
#Export the Source page
$TempFile = [System.IO.Path]::GetTempFileName()
Export-PnPPage -Force -Identity $PageName -Out $TempFile
#Import the page to the destination site
Connect-PnPOnline -Url $DestinationSiteURL -Interactive
Invoke-PnPSiteTemplate -Path $TempFile
The final option we have available to us is to utilize 3rd party migration tools to migrate pages between sites. For this example I’ll be using ShareGate, but there are other migration tools that are able to do the same thing:
Open ShareGate desktop > press copy.
Select copy content only.
Enter the URL of your source site > select the Site Pages library.
Do the same for the destination site.
Select the page from the source location you wish to copy
Under options, make the following configuration changes:
Check preserve authors and time stamps
Check permissions
Uncheck user alerts
Check web parts
Check version history
Uncheck flatten folder hierarchy
Check update links
Check check in as = published
Press start copy. Once completed, you should see two successful migration task items for your copied page:
Now you will find your newly copied page in the destination Site Pages library. In my experience of copying pages using ShareGate, images hosted within a CDN will still be present within your page, as will all the of text, layouts and any formatting. Images that are stored within different sites may error, as will document library/ list web parts that point to different sites also.
Have you ever changed the name of a SharePoint Online site and tried to re-use the old URL for a new site? If you have you have probably encountered an issue where SharePoint admin center will tell you that URL is still in use. Well this is because the URL is, in fact still in use in the form of a redirect.
Old site URL is unavailable after renaming a SharePoint site.
In 2019, Microsoft introduced the site rename feature within the SharePoint admin center, which also updated site URLs too. Once a URL is updated for a given site, or moved to a different geo location, or as part of a site swap – a redirect is automatically created to ensure any links that were pointing to the prior URL continue to work.
How to use an old site URL
To use on old site URL you need to run the following PowerShell command. Note: You will need the SharePoint administrator role to run this command:
Open the SharePoint Online Management Shell and run the following command:
Check your URL has been deleted by trying to browse the URL, if you get a 404 error it has been successful.
More information
The Remove-SPO site command is actually defined as “Sends a SharePoint Online site collection to the SharePoint Online Recycle Bin” in the Microsoft documentation reference guide.
Microsoft documentation says that a redirect template (Template type: REDIRECTSITE#0) is applied when the site URL is updated, which contains special headers and logic to redirect your browser requests to the new site.
In this post we will take a look at two different ways to remove search results in classic and modern SharePoint.
Introduction
There may be occasions in SharePoint where you are required to remove an item, or items from the search results. When we are talking about search results, we are referring to the items that are returned when a user initiates a search in SharePoint.
Search results in modern SharePoint.
Click on one of the buttons below to find out more about how you can remove search results in both classic and modern SharePoint:
In this post we explore a common error experienced when trying to update existing files in SharePoint using the create file step in Power Automate – and how to resolve it.
The problem
I recently ran into an issue seemingly many others have encountered when trying to update an existing file in SharePoint using the create file step in Power Automate. When running my flow, I received the following error:
Bad Request error in Power Automate when trying to use the create file step to update an existing file in SharePoint.
Bad Request status: 400
Message: A file with the name [NAME OF FILE] already exists. It was last modified by [NAME OF USER] on [DATE]
The solution
The solution to this has already been shared a fair few times via the Power Automate blogs, but here it is:
Press the ellipsis … > settings within the create file step
Open the ellipsis and press settings within the create file step.
Scroll down until Content Transfer > set allow chunking to off
Save and re-run your flow
That’s it, now when I use the create file step to update existing files, it runs successfully!
Note: Chunking of content is used for splitting up large content for downloads/ uploads. You may need to consider this before turning off chunking in your flow. More information on chunking can be found here.
This post describes an observation of how the copy of this page option will be missing for certain pages in SharePoint Online and how to get around it.
Modern pages are great in SharePoint Online…they look good, are easy to author and can be shared really easily once published. However, there are some quirks to the user experience when creating and copying pages, in particular the copy of this page option.
The issue
In the old days of SharePoint 2010, you could only copy or move pages through site content and structure – unless you used PowerShell. Well nowadays it’s as simple as a couple of clicks from the ribbon:
Press + New
Select copy of this page
Copy of this page option available in SharePoint Online.
Or at least that’s what I thought! The problem occurs with the default homepages within modern SharePoint sites. When you go to try to make a copy of the homepage you will find the option is not available.
Copy of this page option missing from menu.
Workaround
The way I’ve managed to get around this issue is to make a copy of the homepage in the Site Pages library, then rename it to something more meaningful. To do this:
Open the Site Pages library
Select the Home.aspx page
Press Copy to
Leave the copy to location as the Site Pages library > press copy here
Press the three dots next to the copied page > rename
Give your page a new name > press rename
Copy the homepage, then rename it to something more meaningful.
That’s it, you can now work on a copy of the page in the same way you would using the copy of this page option.
SharePoint and knowledge bases have gone hand in hand for many years. If you have been involved with SharePoint for any length of time it is not an uncommon request to be asked to build a knowledge base at some point. With the advent of AI and machine learning within Microsoft 365, plus the introduction of Knowledge & Content Services (formerly Project Cortex), SharePoint Syntex and Microsoft Viva Topics, you may think the need to build a traditional knowledge base has gone the way of the dodo.
Well the pricing of the above services means that my organisation won’t readily adopt these new things, so for now at least continuing to leverage metadata rich lists & libraries will have to suffice! Here’s how I built a knowledge base in SharePoint Online…
Site features
Custom site theme/design
Mega-menu navigation
PnP modern search V3
Custom page templates
Site Pages library with additional metadata
Lookup value lists
Change log list
Web parts used
Image with colour block
Search box
Highlighted content
Image/ text
Page properties (KB articles)
Search results web part
Searh filters web part
Approach
I wanted to leverage the modern page authoring experience for creating pages, as there are several people adding content to the knowledge base (KB). So with that in mind the knowledge base is built around the Site Pages library, using the metadata applied to each knowledge base article to drive dynamic web parts throughout the site such as search, page properties and the highlighted content web part.
Within the KB, all KB articles get categorised by the type of technology, application and product they fall under. These work for my KB as I can fit KB articles within these headings. For example:
KB article: How to fix the sync connection in SharePoint 2010
Technology
Application
Product
Microsoft
SharePoint Server
SharePoint 2010
Site Pages library
As mentioned above, the Site Pages library is the lynchpin to the entire knowledge base. Starting with the Pages library, I created columns to capture additional metadata about each KB article. Here are the columns I created:
Technology: lookup column, values held in custom list Application: lookup column, values held in custom list Product: lookup column, values held in custom list Knowledge Type: choice column Topic: Managed Metadata column Contact: Person or Group
Technology, Application & Product are what drive each view within the Site Pages library. I have created a view for each Technology and Application, which are used for web parts embedded within the relevant pages (for example: Microsoft).
Product is used as a way to formalise the type of KB articles that are created (for example: Procedure), with Topic effectively being a way to tag KB articles with a wider variety of terms to aid searching and filtering.
The only thing I did different is I used a different website to generate my theme which you can use here. This theme generator site allows you to access more of the colours that are used when creating a theme to potentially create a multi-coloured theme. For more information of this check out another great post by Laura Kokkarinen here.
Use a theme generator to create a custom theme for your SharePoint Online site.
Homepage
The homepage of the knowledge base is broken down into three key areas: search, recently added and the browse area.
Search: Search web part as part of the PnP modern search solution V3. Connected to a custom search results page (more information below).
Recently added: Highlighted content web part that only shows pages from this site, filtered by recently added earlier this year.
Browse: Three column section consisting of images, text and button web parts. I used the images from the look book template to get the correct sizing for the images above. When updating the images I noticed they didn’t update immediately which I wrote about how to fix here.
Navigation
The navigation for the KB has been created using the mega menu option within the Change the look > Navigation options. The links have all been created manually for each section, with each link going to either a dedicated page or a view created from the Site Pages library.
Mega menu navigation in the IT KB.
Search
Search web part
The search for the knowledge base is all based on web parts from the PnP modern search solution V3. From the homepage there is a search web part. Before configuring the search web part on the homepage you will need to create and configure the search results page and web part as it is required as a data source. I followed the guidance from the PnP modern search solution documentation to configure the search web part with the following properties:
The search web part configuration on the knowledge base homepage.
Search results
The search results is a dedicated page created within the knowledge base that includes the search box, search results and search filters web parts. The search box web part is configured in exactly the same way as on the homepage and just serves as a consistent way to see your search results and search again if required.
The search results web part has been added to a separate, one-third left section underneath the search box web part shared with the search filters web part. The search results web part has the following settings:
Connect to source: Page environment Page environment’s properties: Search Search: Search query Use a default search query: No Query template: {searchTerms} Path:{Site.URL} FileType=aspx Result source identifier: No Sort order: Created, size Sortable properties: None Connect to a search refiners web part: On Use refiners from this component: Filter Connect to search verticals: Off Enable query rules: On Include personal OneDrive results: Off Selected properties: {searchTerms} Path:{Site.URL} FileType=aspx Refinement filters: None Show paging: On Number of items per page: 30 Number of pages: 4 Hide navigation: No Hide navigation if disabled: Yes Results layout: Simple list
Search filter web part
The search filter web part has been added to the search results page with no additional configuration changes made. Don’t forget (like I did), to get the search filter web part to start to work with your search results, you need to turn it on within the search results web part – under connect to a search refiners web part!
Page templates
I’ve used page templates within the knowledge base to standardise the layout of each KB article. At the time of writing there are only two templates to choose from: an application template or new KB article.
Example KB article page template
The KB article page template includes a page properties web part that shows the Knowledge Type, Contact and Topic.
The layout of each KB article page template is as follows: One-third right section: Text web part (left), Page properties web part (right) One column section: Two text web parts One column section: Two text web parts
How to create a page template
Create or open the page you want to use as your template
Press the down arrow next to the save button > Save as template
Page templates will now appear under saved on this site when creating a new page. Templates are also saved in a “Templates” folder within the Site Pages library.
Create page templates to standardise how knowledge is created.
More information on how to manage and delete templates can be found here.
Issues & next steps
Dependant drop-down lists, Power Apps and the Site Pages library
One area I would like to improve on is including the ability to have dependant drop-downs for Technology, Application and Product when applying metadata to KB articles. When creating the KB, I did work on two ways to achieve this- but they both fell short in the end.
My first attempt was to customise the Site Pages library new and edit forms using Power Apps. I used this article by Microsoft on how to create dependent drop-down lists in a canvas apps as a starting point, but had to make some changes to account for the additional third level of drop-down. Although I got this working within the context of PowerApps, I had to abandon this method as creating new pages in the Site Pages library via Power Apps is not supported. My experience was that once I customised the form in Power Apps, it pretty much broke the Site Pages library. I was unable to create new pages and it would default to an old style wiki page and not let me create modern site pages.
Custom forms for document libraries only supports editing custom metadata. Editing or managing file(s) is not supported.
After this failed, I also tried an older way of doing this by using JQuery and SPServices as described here.
Initially I got this to work too, but it was also a pretty poor solution when working with modern pages as the only way to actually get to the dependent drop-downs was by pressing “Edit all” which took you to the classic version of the edit properties page.
Aside from this, you also have to jump through several hoops to add in the old content editor web part, which are too numerous to describe in this post but have linked to one of them.
There was also a recent change to how classic forms work with modern lists that stopped this method working all together. Although this seems to be resolved, my understanding is you have to set your list to run in the classic experience in order to get this method to work – so I’ve scrapped this too!
I currently have no solution for dependant drop-downs, but am open for suggestions that are low code or relatively easy to implement. Feedback so far from users is that they aren’t all that bothered about it as the process to apply metadata is easy.
Images not updating when refreshing
As I was in the process of updating the KB homepage I noticed that when replacing some of the images or other assets that make up the page, they weren’t visibly updating after a forced browser refresh. I wrote a separate post called how to force images to update in SharePoint Online which details how to resolve this.
Updating the modern search solution
When I began building the KB I deployed what is now version 3 of the modern search solution. Since then the PnP team have created PnP Modern Search V4, I’ve personally decided not to update my search solution as at the time of writing V4 doesn’t support suggested keywords which is a part of my solution.
In this post, we will explore what copy and move options are available for end-users in SharePoint, Microsoft Teams and OneDrive, their limitations and what resolution options are available.
The move and copy features in Microsoft 365 are a welcome addition for anyone used to the pains of moving or copying files in classic versions of SharePoint. Gregory Zelfond has a fantastic write up of how to move and copy documents in SharePoint and OneDrive which gives a great explanation of the move/ copy actions which I would recommend everyone check out.
In the good old days, finding where the copy/move features were in SharePoint of old was a small triumph in of itself. Buried within the bowels of manage content and structure, the move feature looked pretty scary – from the confusing navigation tree to the spinning green wheel of worry as to whether your file was actually being moved or not.
The copy/ move features are much, much better now – mainly the unified user experience across M365 makes it much easier to get to grips with and understand. It is now literally as simple as selecting the files or folders you want to copy/ move > pressing copy/ move and do it…well almost!
An example of how easy it is to move files to a new location in SharePoint Online.
Current limitations
As good as the copy/ move features are now, they do however come with their own limitations. When I initially outlined this post in December 2020, much of the limitations were the same as today, however there was a 2GB limit for each individual file that was being copied/ moved in a single operation.
Later in December 2020, Microsoft announced an increased upload file size limit from 100 GB to 250 GB for SharePoint, Teams and OneDrive. Shortly thereafter the SharePoint limits service description was also updated, seemingly to reflect this change. As of February 2021 the requirements are:
– No more than 100 GB total file size – No more than 30,000 files – Each file must be less than 15 GB
There are other limitations around the copy/move features, such as:
Using the Move to feature will also move the complete history of the document to the new destination. Copy to will only copy the latest version – to copy earlier versions, you need to restore and copy each one.
The Move to operation will fail if you attempt to move the document across libraries and the destination has enforced unique values.
When using Move to, files will continue to appear in the source location until it has fully moved. It will then be deleted and moved to the recycle bin, where it is subject to the normal recycle schedule unless a user recovers it.
Move to option is not currently available on the Site Pages Library.
When I first realised the above limitations, I thought a way around it might be to just copy the data from source to a new location using the Migration Manager. This will not work as you are only able to specify one level of folder within a given document library in SharePoint, Teams or OneDrive. If you are required to migrate the data to sub-folders two, three or more levels deep within a document library, the Migration Manager will not be able to complete this.
You can only select a top-level folder from a given document library via the Migration Manager.
Practical example
The requirements above becomes an issue when migrating data at scale in my opinion. For example, with a file server migration – organisations that migrate all their file server data into Microsoft 365 with a view to restructure after the fact, the limitations of these requirements become much more apparent.
The 100 GB total file size limit, as with the no more than 30,000 files could cause issues where file server data is concerned as it will stop data owners being able to move large parts of their data structure to new locations if it exceeds this limit – although you could also argue this is also a good thing!
The increase of the individual file size does make a big difference to the overall picture, but now with a 250GB upload limit it could be even more difficult to move data around in future.
Resolution options
I’ve only been able to come up with one actual way to get around this problem – and once again ShareGate is our friend! Running migrations using the ShareGate desktop app allows you to copy from the relevant sub-folder, or to the relevant sub-folder in the destination – no matter how many levels down it is.
You can copy from and to sub-folders using the ShareGate Desktop App.
I’ve been able to copy either all folders/ sub-folders in a location or select specific using the copy content only option. In the example below I’ve navigated several folders deep within a SharePoint library and selected the specific folders I wish to copy.
To do this you just select the folders you wish to copy, or if it’s just one or two you want to leave behind press select all > then CTRL + click the folder you want to omit from the migration.
Aside from this, the only options would be to either:
Only have a top-level folder structure in the destination, to allow you to use the Migration Manager
Reduce the total size/ number of items being moved to allow you to use the native copy/ move features in M365
This post describes how to update the site logo in a classic SharePoint publishing site, plus how it differs from updating the site logo and thumbnail in modern SharePoint sites.
In older versions of SharePoint Server, such as SharePoint 2010 or 2013, you are able to update the site logo of any site or site collection by opening up the site settings and accessing the title, description and icon settings under look and feel.
I recently migrated a SharePoint Server publishing site into SharePoint Online using the copy structure and content option within ShareGate Desktop. Aside from the migration being bloody brilliant (seriously, everything copies across and works the same! more on this in another post), one thing that didn’t work was the site logo.
Copy structure and content in ShareGate Desktop.
The migrated SharePoint site with broken site logo.
How to update the site logo for classic SharePoint publishing sites in SharePoint Online
So in my earlier example, I’d just migrated a publishing site into SharePoint Online and noticed that the site logo was broken and affecting some of the navigation links of the homepage.
This Microsoft article makes mention of how to change the logo, title and description of your SharePoint site. The article also states that if you don’t see this option, it may be that you don’t have permission to see it – well I’m the primary administrator of said SharePoint site so that isn’t the issue!
I figured out a way around it thanks to trusty old SharePoint URLs. Below is how I got to the page, but if you just want to go straight there just add _layouts/15/prjsetng.aspx to the end of your site URL.
Open your SharePoint Online site
Add _layouts/sitemanager.aspx to the end of your URL
Click on the drop-down icon next to your site collection name > Press General Settings
This is the title, description and logo page as described in the Microsoft article previously. From here you can upload your site logo and save it to update your classic publishing site. It’s also worth noting that once you update the site logo from this location, it will also be visible within the modern elements of your classic publishing site (for example Documents).
How to update the site logo in SharePoint Server
For SharePoint Server, follow the steps below to update the site logo:
Before you begin 💡
Make sure you have saved your site logo in a location that is accessible to all users of your site.
Within your site or site collection > Press site actions > site settings
Under Look and Feel > Press Title, description and icon
Under Logo URL and Description > enter the URL path of your site logo
Press OK
How to update the site logo in modern SharePoint sites
With modern SharePoint sites it is really easy to change the site logo. There are two types of site logo you can change:
Site logo thumbnail – appears in search, on the site card and where ever else a square logo is needed. Recommended size is 48 x 48px
Site logo – appears in the site header, which can be transparent or non-transparent. Recommended size is 64 x 64px
Add a new site logo
Navigate to the modern SharePoint site you wish to add a site logo to
Press the cog icon ⚙️ > Press change the look
Within change the look > Press Header
Scroll down until you see site logo thumbnail and site logo
Press Change on either the site logo thumbnail or the site logo
Select a relevant site logo from your computer and press open
Press Save
If you want to remove a site logo, just open the header > scroll down to the logos and press Remove 🗑️.
This post is to serve as a reference point for all the useful shortcut URLs in SharePoint that help admins and super users get their jobs done much easier.
There are several blog posts by others with these URLs in them, but I wanted to preserve them in my own blog for future generations! Most of these links have come from SharePoint 2010, so if you want them to work in differing versions just add a 14, 15 or 16 after the layouts folder to work in 2010, 2013, 2016 or SharePoint Online.