Microsoft: “You can also select to allow or prevent commenting on modern pages. If you allow commenting, it can be turned on or off at the page level“
By default both
– Allow users to create new modern pages
– Allow commenting on modern pages
are turned on (enabled)
Tenant or SharePoint admin can find settings under
SharePoint Admin Center -> Settings -> Pages
When you are creating a modern site page – there is an option “Comments” turned On by default:
And page with comments looks like:
Comments on site pages (aka modern pages) can be enabled or disabled at each of the levels:
– Tenant level
– Site (aka site collection) level
– Web (aka subsite ) level
– Page level
Here is how it is done:
Level | How it’s done | Who can do it |
---|---|---|
Tenant | GUI ( SharePoint Administration) or PowerShell | Global Administrator or SharePoint Administrator |
Site (Site Collection) | PowerShell | Global Administrator or SharePoint Administrator |
Web (Subsite) | PowerShell | Site Collection Administrator or Owner (Full Control rights to web) |
Page | GUI (Page Editing screen) | Site Member (Edit right to page) |
If commenting on modern pages disabled at higher level – lower level settings do not work. E.g. If you disable “Allow commenting on modern pages” at tenant level (it takes minutes) – the functionality will gone from all modern pages of all sites.
When you switch page comments Off – all existing comments will be hidden (but not deleted).
If you later turn comments On – comments will reappear, including Likes.
If “Allow commenting on modern pages” disabled at tenant or web level – you will not see “Comments On/Off” switch while editing page.
If “Allow commenting on modern pages” disabled at site collection level – you will see “Comments On/Off” switch while editing page, but you will not be able to turn it ON.
PowerShell
When you disable “Allow commenting on modern pages” at tenant level –
PowerShell Object (site/web) property “CommentsOnSitePagesDisabled” will not be changed for any site/web.
You can still with PowerShell set it to True/False:
“Set-PnPWeb -CommentsOnSitePagesDisabled:$false”
but it does not take any effect.
If you enable “Allow commenting on modern pages” at tenant level (it takes ~10 minutes) – the functionality will return to all modern pages and
all webs and sites properties “CommentsOnSitePagesDisabled” will ???.
You can change it with PowerShell:
“Set-PnPWeb -CommentsOnSitePagesDisabled:$false”.
# having Site Collection Admin Permissions:
# disable Comments On Site Pages for a subsite:
$webName = "SubSite_02"
Set-PnPWeb -Web $webName -CommentsOnSitePagesDisabled:$true
# enable Comments On Site Pages for a subsite
# (only if comments enabled at tenant level):
Set-PnPWeb -Web $webName -CommentsOnSitePagesDisabled:$false
# having global admin or SharePoint admin permissions:
# site collection:
Set-PnPTenantSite -Url $siteUrl -CommentsOnSitePagesDisabled:$true
# tenant-level Comments:
Set-PnPTenant -CommentsOnSitePagesDisabled:$true # disable
comments
Set-PnPTenant -CommentsOnSitePagesDisabled:$false # enable comments
# does not work:
Set-PnPSite -CommentsOnSitePagesDisabled:$true
How do I know if if the page is modern page or classic page (PowerShell)?
$list = Get-PnPList "Site Pages" -Includes ContentTypes, Fields
$list.ContentTypes | ft -a
$cType = Get-PnPContentType -List $list | ?{$_.Name -eq 'Site Page'};
$cType.id
$queryString = "<View><Query><Where><Eq><FieldRef Name='ContentTypeId'/><Value Type='Text'>" + $cType.Id.StringValue + "</Value></Eq></Where></Query></View>"
$modernPages = Get-PnPListItem -List $list -Query $queryString
$modernPages.count
$modernPages | ft -a
How do I know if the page is a Home Page (PowerShell)?
# web object contains relative link to the web's Home Page:
$web = Get-PnPWeb -Connection $siteConnection -includes WelcomePage
$web.WelcomePage
References
– Microsoft “Allow users to create and comment modern pages“
See also:
– Allow users to create modern pages
Note:
We did not discuss “Wiki Pages” or “Web part Pages”, we discussed only “Modern Pages” (aka Site Pages).
I have tested it all personally using Communication sites.
MS-Team (group-based) and standalone SharePoint (no-group) sites – TBP.
Pingback: SPO: Allow users to create modern pages ⋆ Vladilen
If you allow commenting on a modern page can read visitors make comments?
Hello
Excellent writing. How can I get list of site collection where CommentsOnSitePagesDisabled is FALSE? I have tried but no luck!!
like this
Get-PnPTenantSite |where {$_.CommentsOnSitePagesDisabled -eq $false}. It gives me all are FALSE where as couple of sites are set to TRUE.
Thank you