在经典团队网站上启用通信网站体验
SharePoint 通信网站 是与组织中的其他人共享信息的绝佳工具。 用户可以以具有视觉吸引力的格式共享新闻、报告、状态和其他信息。 现在,任何经典团队网站也可以具有此功能。 通过运行 PowerShell cmdlet,可以将新式通信网站功能引入经典团队网站。
要求
- 该网站必须是 未连接到 Microsoft 365 组的经典团队网站 , (STS #0 (工作组网站经典体验) 网站模板) 。
- 网站必须是网站集中的顶级网站。 它不能是子网站。
- 运行 PowerShell cmdlet 的用户必须对目标站点具有完全所有者权限。
- 网站不得在网站集级别启用 SharePoint Server 发布基础结构,也不能在网站级别启用 SharePoint Server 发布。 了解如何启用和禁用发布功能。 如果这些功能以前已启用,但现在已停用,请转到 网站内容页面 ,并确保它不仍然包含页面库。 详细了解在发布网站上启用的功能。
此更改的影响
- 在网站中创建一个新的新式页面,并将其设置为主页。 若要查看更改,请在新选项卡中打开站点。
- 有权访问网站的任何用户都会立即看到包含默认 Web 部件和内容的新主页。 在准备好启动新的通信网站体验之前,可以将主页改回前一页。
- 提供水平导航的全宽页面。 (经典视图中的顶部导航处于隐藏状态,但可以在经典页面上(如网站设置页面)上看到。) 现在可以 在此网站上自定义导航 。
- 网站上不允许使用自定义脚本。
- 已启用网站页面库的次要版本控制。 详细了解版本控制
- 网站页面是网站页面库中的默认内容类型
- 不更改网站权限。
- SharePoint 列表和库体验不会更改。
- 不会更改网站中启用的任何内容类型。
- 如果经典网站集具有子网站,则它们不会更改。
- 如果计划以高流量门户的形式启动此网站,或与大量用户共享该网站,请确保遵循 门户启动指南。
运行 PowerShell cmdlet
可以使用 SharePoint Online 命令行管理程序 或 SharePoint PnP PowerShell 在经典团队网站上启用通信网站体验。 建议先使用最少使用的经典网站来测试体验,然后再在组织中常用的经典网站上运行该体验。
重要
在经典网站上启用通信站点体验后,无法撤消更改。
SharePoint 管理员说明
下载最新的SharePoint在线管理壳。 版本 20122.1200 或更高版本是必需的。
注意
如果你已安装早期版本的SharePoint Online Management Shell,请进入添加或删除程序并卸载 "SharePoint Online Management Shell"。
在Microsoft 365中,以全局管理员或SharePoint管理员连接到SharePoint。 若要了解具体操作步骤,请参阅 SharePoint 在线管理壳入门。
运行以下命令:
Enable-SPOCommSite -SiteUrl <URL of target site>
有关此 cmdlet 的详细信息,请参阅 Enable-SPOCommSite。
站点管理员说明
在 Windows 10 中,在 PowerShell 中运行以下命令:
Install-Module SharePointPnPPowerShellOnline Connect-PnPOnline –Url <Url of Targetsite> –Credentials (Get-Credential) Enable-PnPCommSite
常见问题解答
此 cmdlet 是否会更改我的所有经典网站?
- 否。 该 cmdlet 一次可以在一个站点上运行。
此 cmdlet 是否会更改网站模板?
- 否。 cmdlet 启用通信网站功能,但网站仍具有 STS#0 网站模板。 该网站在 SharePoint 管理中心继续显示为“团队网站 (经典体验) ”。
为什么我无法在发布网站上使用此 cmdlet?
- 新式通信网站体验与 SharePoint Server 发布功能不兼容。
是否可以在组织的根站点上运行此命令?
- 是的,如果满足本文开头列出的要求。
如何获取已启用通信网站体验的所有经典网站的列表?
function Get-CommsiteEnabledSites{
$adminUrl = Read-Host "Enter the Admin URL of O365 (eg. https://<Tenant Name>-admin.sharepoint.com)"
$userName = Read-Host "Enter the username of O365 (eg. admin@<tenantName>.onmicrosoft.com)"
$password = Read-Host "Please enter the password for $($userName)" -AsSecureString
# set credentials
$credentials = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $userName, $password
$SPOCredentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($userName, $password)
#connect to to Office 365
try{
Connect-SPOService -Url $adminUrl -Credential $credentials
write-host "Info: Connected succesfully to Office 365" -foregroundcolor green
}
catch{
write-host "Error: Could not connect to Office 365" -foregroundcolor red
Break connectToO365
}
get-siteCollections
}
function get-siteCollections{
write-host "----- List of classic sites with comm site feature enabled -------" -foregroundcolor green
#Get all site collections
$siteCollections = Get-SPOSite
#loop through all site collections
foreach ($siteCollection in $siteCollections){
#set variable for a tab in the table
$pixelsweb = 0
$pixelslist = 0
$enabledCommSite = Get-SPOIsCommSiteEnabled($siteCollection.url)
$background = "white"
if($enabledCommSite -ne ""){
$background = "cyan"
}
}
}
function Get-SPOIsCommSiteEnabled($url){
#fill metadata information to the client context variable
$featureID = "f39dad74-ea79-46ef-9ef7-fe2370754f6f"
$context = New-Object Microsoft.SharePoint.Client.ClientContext($url)
$context.Credentials = $SPOcredentials
$web = $context.Web
$context.Load($web)
$context.load($web.Features)
try{
$context.ExecuteQuery()
$isCommSiteEnabled = $web.Features | Where {$_.DefinitionID -eq $featureID}
$webTemplate = $web.WebTemplate
if($webTemplate -ne "SITEPAGEPUBLISHING" -AND $isCommSiteEnabled){
write-host "Found $($web.url)" -foregroundcolor green
return "Enabled"
}
}
catch{
write-host "Could not find web" -foregroundcolor red
}
return ""
}
Get-CommsiteEnabledSites
另请参阅
有关在经典网站上自动实现主页新式化的信息,请参阅 经典主页现代化。