在经典团队网站上启用通信网站体验

SharePoint 通信网站 是与组织中的其他人共享信息的绝佳工具。 用户可以以具有视觉吸引力的格式共享新闻、报告、状态和其他信息。 现在,任何经典团队网站也可以具有此功能。 通过运行 PowerShell cmdlet,可以将新式通信网站功能引入经典团队网站。

要求

  • 该网站必须是 未连接到 Microsoft 365 组的经典团队网站 , (STS #0 (工作组网站经典体验) 网站模板) 。
  • 网站必须是网站集中的顶级网站。 它不能是子网站。
  • 运行 PowerShell cmdlet 的用户必须对目标站点具有完全所有者权限。
  • 网站不得在网站集级别启用 SharePoint Server 发布基础结构,也不能在网站级别启用 SharePoint Server 发布。 了解如何启用和禁用发布功能。 如果这些功能以前已启用,但现在已停用,请转到 网站内容页面 ,并确保它不仍然包含页面库。 详细了解在发布网站上启用的功能。

此更改的影响

  • 在网站中创建一个新的新式页面,并将其设置为主页。 若要查看更改,请在新选项卡中打开站点。
  • 有权访问网站的任何用户都会立即看到包含默认 Web 部件和内容的新主页。 在准备好启动新的通信网站体验之前,可以将主页改回前一页。
  • 提供水平导航的全宽页面。 (经典视图中的顶部导航处于隐藏状态,但可以在经典页面上(如网站设置页面)上看到。) 现在可以 在此网站上自定义导航
  • 网站上不允许使用自定义脚本
  • 已启用网站页面库的次要版本控制。 详细了解版本控制
  • 网站页面是网站页面库中的默认内容类型
  • 不更改网站权限。
  • SharePoint 列表和库体验不会更改。
  • 不会更改网站中启用的任何内容类型。
  • 如果经典网站集具有子网站,则它们不会更改。
  • 如果计划以高流量门户的形式启动此网站,或与大量用户共享该网站,请确保遵循 门户启动指南

运行 PowerShell cmdlet

可以使用 SharePoint Online 命令行管理程序 SharePoint PnP PowerShell 在经典团队网站上启用通信网站体验。 建议先使用最少使用的经典网站来测试体验,然后再在组织中常用的经典网站上运行该体验。

重要

在经典网站上启用通信站点体验后,无法撤消更改。

SharePoint 管理员说明

  1. 下载最新的SharePoint在线管理壳。 版本 20122.1200 或更高版本是必需的。

    注意

    如果你已安装早期版本的SharePoint Online Management Shell,请进入添加或删除程序并卸载 "SharePoint Online Management Shell"。

  2. 在Microsoft 365中,以全局管理员或SharePoint管理员连接到SharePoint。 若要了解具体操作步骤,请参阅 SharePoint 在线管理壳入门

  3. 运行以下命令:

    Enable-SPOCommSite -SiteUrl <URL of target site>
    

有关此 cmdlet 的详细信息,请参阅 Enable-SPOCommSite

站点管理员说明

  1. 了解如何使用 SharePoint PnP PowerShell 命令

  2. 在 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

另请参阅

有关在经典网站上自动实现主页新式化的信息,请参阅 经典主页现代化