SharePoint spaces is planned for deprecation starting in March 2025 with removal of support completing in August 2025. Microsoft Mesh offers many of the same tools for authoring 3D Environments and includes the ability to have multiple people join events at the same time, be represented as avatars, and communicate with each other with spatialized audio. We recommend exploring Mesh for your future Immersive 3D Experience needs.
For some existing content it may be easier or more aligned to your needs to transition within SharePoint and utilize a SharePoint page that includes the images, videos, etc. used in the space or to utilize file previews for viewing 360° images and videos in document libraries. This will enable editing, publishing, and viewing of content similar to SharePoint spaces.
Scenario |
Mesh |
SharePoint spaces |
SharePoint Pages |
---|---|---|---|
Create 3D immersive spaces |
Yes |
Yes |
No |
Co-presence and 3D immersive events |
Yes |
No |
No |
Publish content for any time access |
No |
Yes |
Yes |
Identifying SharePoint Spaces Content
You can search for SharePoint spaces content that you have access to using SharePoint search. In the top-level SharePoint site for your tenant, type "SPContentType:Space" and the search will return all the spaces that you have access to. This view can be sorted to show the most recently created or modified spaces.
You can identify spaces content in a site by navigating to the Pages library and looking for any files with the Content Type “Space”. Note that this column is not shown by default, so you may need to show it in the Show or hide columns dialog after selecting Add column.
Example PnP PowerShell Script for Identifying Sites with Spaces Content
You can identify SharePoint sites with the Spaces feature enabled using a PnP PowerShell script. An example script is shown below to help you get started. If you have not previously used SharePoint PnP you will need to follow the Getting Started instructions to create the EntraAppClientID. The user running this script must have access to all sites in the tenant or it will fail for any sites the user does not have access to; however, the script will run to completion for all sites the user has access to and you could combine results from multiple users to achieve broader coverage.
$entraAppClientID = "[EnterEntraAppID From PnP Setup Instructions]" # Define the Spaces feature GUIDs #$featureGuid = "2AC9C540-6DB4-4155-892C-3273957F1926" #use this GUID to check for sites where the feature is currently enabled $featureGuid = "f4c52091-703d-431c-ac2d-41f9f257052a" #this GUID checks for sites that have ever had the feature enabled and therefore may have spaces in its library
# Connect to SharePoint Online $adminUrl = "https://[InsertTenantInfo].sharepoint.com" $connection = Connect-PnPOnline -Url $adminUrl -Interactive -ClientId $entraAppClientID -ReturnConnection
# Get all site collections $sites = Get-PnPTenantSite -Detailed -Connection $connection $results = @() foreach ($site in $sites) { echo $site.Url
# Connect to the site
Connect-PnPOnline -Url $site.Url -Interactive -ClientId $entraAppClientID -Connection $connection # Check if the MixedReality feature is enabled $feature = Get-PnPFeature -Identity $featureGuid -Scope Site if ($feature.DefinitionId -eq $featureGuid) { # Get the pages library $pagesLibrary = Get-PnPList -Identity "SitePages" echo "Feature On" # Get all pages with content type "Space" $spacePages = Get-PnPListItem -List $pagesLibrary | Where-Object {$_.FieldValues.MetaInfo -match 'ContentTypeId:SW\|0x0101009D1CB255DA76424F860D91F20E6C41180043153F945E98468297E67C3EEE43AB7000'} # Get the total number of spaces $totalSpacePages = $spacePages.Count # Store the result $results += [PSCustomObject]@{ SiteUrl = $site.Url FeatureGuid = $featureGuid TotalSpaces = $totalSpacePages } }}
# Output the results $results | Format-Table -AutoSize
Using App Only Access
If you do not have a user account that has access to all sites, you can utilize App Only access and grant the appropriate application permissions to the Entra ID application (see section “Setting up access to your own Entra ID App for App Only Access and ensure you grant SharePoint permissions sites.read.all or sites.full.control) you create for SharePoint PnP Powershell.
Once you have the Entra ID App ID set up, add certificate details to the script:
$certPath = "[Insert Path to Certificate]" $certPassword = ConvertTo-SecureString -String "[Insert password string]" -AsPlainText -Force $tenantId = "[Insert Tenant ID]"
Then change the Connect-PnPOnline command from Interactive Login to use App Only access:
$connection = Connect-PnPOnline -Url $adminUrl -Interactive -ClientId $entraAppClientID -CertificatePath $certPath -CertificatePassword $certPassword -ReturnConnection
AND
Connect-PnpOnline -Url $site.Url -ClientId $entraAppClientID -Tenant $tenantId -CertificatePath $certPath -CertificatePassword $certPassword -Connection $connection
Disabling spaces feature using PnP PowerShell
It may be useful to disable the SharePoint spaces feature on sites where you want to discourage the creation of new Spaces content. One reason to consider doing this is if you see sites where the feature has been activated, but no Spaces have been created. These sites will continue to have the Space option appear in the +New menu after we turn the feature off by default in March 2025 unless the feature is turned off for the site.
The following PnP PowerShell commands will disable the feature for a site:
$featureGuid = “2AC9C540-6DB4-4155-892C-3273957F1926” Connect-PnPOnline -Url [Insert Site URL] -Interactive -ClientId $entraAppClientID -Connection $connection Disable-PnPFeature -Scope Web -Identity $featureGuid -Force
Notes:
-
Modernization tooling and all other PnP components are open-source tools backed by an active community providing support for them. There is no SLA for open-source tool support from official Microsoft support channels.
-
This example is provided as-is without warranty of any kind, either express or implied, including any implied warranties of fitness for a particular purpose, merchantability, or non-infringement