自定义 OneDrive 网站

可在 Microsoft 365 中自定义 OneDrive 网站,或根据公司要求使用加载项模型。 执行此自定义的实际技术与本地方案中的不同,因为只可以使用加载项模型技术。

重要

适用于 SharePoint Online 中的经典 OneDrive for Business 体验。 如果使用的是新的默认体验,则不支持该功能。 OneDrive 的现代或新体验不支持自定义品牌。 租户管理员可以通过 SharePoint Online 管理设置控制默认体验。

专用模式和本地模式在使用加载项模型技术方面完全相同,但在可以使用的可能的技术方面存在差异。

为什么自定义 OneDrive 网站?

将自定义设置应用到 OneDrive 网站是许多方面。 您可以自定义这些网站,因为它们是 SharePoint 网站,但应始终考虑自定义项的短期和长期影响。

下面是自定义 OneDrive 网站高级指南:

  • 使用 Microsoft 365 主题或 SharePoint 网站主题引擎应用品牌自定义。
  • 如果主题引擎不够,可以使用备用 CSS 选项来调整某些 CSS 设置。
  • 避免使用自定义母版页自定义 OneDrive 网站,因为这会导致额外的长期成本和未来更新的挑战。
    • 在大多数情况下,可以通过主题和备用 CSS 完成所有常见品牌打造场景。
    • 如果选择使用自定义母版页,当主要功能更新应用到 Microsoft 365 时,请准备对网站应用更改。
  • 可以使用 JavaScript 嵌入来修改或隐藏网站中的功能。
  • 可使用 CSOM 控制 OneDrive 网站中的语言或区域设置(请参阅新的 API)。
  • 不建议在 OneDrive 网站中使用内容类型和网站栏。 将 OneDrive 网站用于个人非结构化数据和文档。 将团队网站和协作网站用于公司数据和文档,可以在其中使用任何想要使用的信息管理策略和元数据。

Microsoft 365 明确支持自定义,你可以继续将其与 OneDrive 网站一同使用。 我们只是想要确保你从操作和维护的角度考虑这些自定义的影响。 这并非特定于 SharePoint,而是使用任何平台构建的任何 IT 解决方案的经验法则。

以下是已按照先前指南进行自定义的 OneDrive 网站的示例。 在这种情况下,通过 Microsoft 365 主题、网站主题和使用 JavaScript 嵌入模式获得最终结果。

自定义的 OneDrive 网站

应用 OneDrive 网站自定义的挑战

每个 OneDrive 网站当前使用与个人网站或"我的网站"相同的体系结构,这些体系结构在 SharePoint 2007 和 SharePoint 2010 中使用的。 这意味着每个 OneDrive 网站都是其自己的网站集,我们没有任何集中位置来应用品牌打造或任何其他自定义项。

每个 OneDrive 网站都是个人托管路径下自己的网站集,并且根据分配的用户配置文件创建 URL。在图像中,三个站点作为子站点列出。第一个子站点的 URL 以 /bill_contoso_com 结尾。第二个以 /vesa_contoso_com 结尾。第三个以 /john_contoso_com 结尾。

用于将所需配置应用到 OneDrive 网站的经典解决方案基于场级别的功能装订。 这意味着你将服务器场解决方案部署到 SharePoint 服务器场,并使用功能框架来关联自定义功能(该自定义功能将在每次创建“我的网站”时被激活),然后负责应用所需的自定义。

此方法在 Microsoft 365 中不起作用,因为它需要部署服务器场解决方案,而对于 Microsoft 365 站点来说,这是不可能的。 为此,我们需要寻找替代方案,以将需要的更改应用到该网站。

在 Microsoft 365 中,创建 OneDrive 网站时,不会引发我们可以将自定义代码附加到的集中式事件。 因此,我们需要考虑替代解决方案,这与外接程序模型方法很常见。 不要卡在旧模型上:考虑如何使用新的 API 和技术实现相同的最终结果。 从要求的角度来看,我们如何将自定义项应用到网站并不重要,只要这些自定义项被应用,因为业务要求不是使用功能装订,它就是使用支持的任何技术机制来应用所需的自定义项。

应用自定义的选项

有四种不同机制可以集中设置 Microsoft 365 中的 OneDrive 网站。 还可以将手动选项视为第五个选项,但在拥有数百个或数千个 OneDrive 网站的情况下,使用手动选项是不现实的。 选项包括:

  • Microsoft 365 套件级别设置(Microsoft 365 主题和其他设置)
  • 具有用户上下文的隐藏应用部件
  • 预先创建和应用配置
  • 基于用户配置文件更新的远程计时器作业

每个选项都有各自的优缺点,选择哪个选项取决于具体的业务需求。 还可以从 Office 365 套件级别应用某些设置,但需要寻找更多的详细信息,因此需要实际的自定义。

Microsoft 365 套件级别设置

Microsoft 365 不仅仅是 SharePoint。 可以找到更多不基于 SharePoint 体系结构的服务,例如 Delve 和 Yammer。 这意味着企业品牌和配置不仅仅是控制我们在 SharePoint 网站中拥有的内容;相反,我们应该考虑整体最终用户体验,以及如何在不同的服务之间提供一致的配置。

这些企业需求的一个典型示例是品牌打造,对此我们已推出了 Office 365 主题,可用于在某种程度上控制品牌打造。

下图显示了 Microsoft 365 当前设置,可以跨所有 Microsoft 365 服务应用该设置。

显示 Microsoft 365 网站,其中显示了自定义主题选项卡页,标题为“管理组织的自定义主题”、“自定义Office 365以反映组织的品牌”。设置可用于自定义徽标、可单击徽标的 URL、背景图像、主题色、导航栏背景色、文本和图标颜色以及应用菜单图标颜色。

由于默认情况下Office 365主题设置控制 OneDrive 网站套件栏,因此你很可能将这些选项与其他选项一起使用,以确保你至少可以在 OneDrive 网站中提供正确的品牌元素。 请注意,如果更改(例如 Office 365 管理工具中的 Office 365 主题设置)后,应用 OneDrive 网站的设置确实需要很长时间,所以请耐心等待。

具有用户上下文的隐藏应用部件

此方法将集中登录页面用作启动所需自定义过程的位置。 这意味着你需要一个集中位置,例如公司 Intranet 主页,用户在打开其浏览器时会始终登录到该位置。 这是中型和大型企业的典型过程,其中公司登陆页面通过使用 Active Directory 中的组策略设置进行控制。 这可确保最终用户无法覆盖已加入公司域的浏览器的默认欢迎页。

当用户到达 Intranet 网站时,页面上的隐藏应用部件将启动自定义流程。 它实际上可负责整个 OneDrive 网站创建,因为通常,用户必须访问 OneDrive 网站一次,网站创建过程开始之前。 隐藏的应用部件托管来自托管在 Azure 中的提供程序托管的加载项的页面。 然后,该页面负责启动自定义过程。

让我们深入了解一下此方法的逻辑设计。

显示关系的关系图。SharePoint 网站上的应用程序部件使用实例化转到提供程序托管的应用程序。提供程序托管的应用程序使用添加消息转到存储队列。存储队列使用实例化转到 WebJob。WebJob 使用“应用修改”转到 OneDrive 网站。

  1. 将隐藏的应用部件置于最终用户所登录的集中网站。 通常情况下,这是公司 Intranet 的首页。
  2. 应用部件从提供程序托管的加载项托管页面,我们通过将需要的元数据添加到 Azure 存储队列在服务器端代码中启动自定义流程。 这意味着此页面仅接收自定义请求,但实际上不会应用任何更改来保持处理时间正常。
  3. 这是实际的 Azure 存储队列,它将接收要排队进行处理的消息。 这样,我们可以异步处理自定义控制过程,以便最终用户在 Intranet 的首页停留多长时间并不重要。 如果自定义过程是同步的,那么在页面执行完成前,我们需要依赖最终用户,以在 Intranet 首页中将浏览器保持打开状态。 这肯定不是最佳的最终用户体验。
  4. WebJob 被挂钩以跟踪 Azure 存储队列,在存储队列中放置新项时调用该队列。 此 WebJob 将收到来自排队消息的所需参数和元数据,以访问正确的网站集。 WebJob 使用仅适用于应用的令牌,并且已被授予操作租户级别的网站集所需的权限。
  5. 实际的自定义是逐个应用到这些访问 Intranet 首页以启动此流程的用户的网站的。

这是确保 OneDrive 网站中的准确配置的最可靠流程。 你可以轻松地将自定义版本控制逻辑添加到该过程,当需要更新并且用户下次访问 Intranet 首页时,该流程会将任何所需的更新应用于 OneDrive 网站。 但是,此选项的确需要你拥有最终用户登录的集中位置。

如果您熟悉包含服务器场解决方案的经典 SharePoint 开发模型,此过程类似于一次性执行计时器作业。

预先创建和应用配置

此选项依赖于预先创建 OneDrive 网站,然后用户才能访问这些网站。 这可以通过使用相对较新的 API 来实现,该 API 为我们提供了一种使用 CSOM 或 REST 在批处理过程中为特定用户创建 OneDrive 网站的方法。 可以使用 PowerShell 脚本或通过编写调用远程 API 的实际代码来启动所需的代码。

管理员使用、预创建和自定义来创建 OneDrive 网站。

  1. 管理员使用远程创建 API 为用户创建 OneDrive 网站,并作为脚本过程的一部分将所需自定义设置应用到 OneDrive 网站。
  2. 为特定用户且与其用户配置文件相关联,会为 Microsoft 365 创建实际 OneDrive 网站。

虽然这是一个可靠的过程,但必须管理新用户并手动更新,这与使用隐藏的应用部件方法相比,该过程需要执行更多的操作。 不过,这是一种有效的方法,如果你要从其他文件共享解决方案迁移到 OneDrive,并希望避免用户在开始实际创建网站之前需要一次访问 OneDrive 网站,则此方法特别有用。

基于用户配置文件更新的远程计时器作业

此方法意味着浏览用户配置文件并检查已创建 OneDrive 网站的用户,然后根据需要将更改应用到网站。 这是指计划作业在 SharePoint 外部运行,它将定期检查状态并执行所需的自定义。 计划作业可以在 Azure 中作为 WebJob 运行,或像自己的 Windows 计划程序中的 PowerShell 脚本一样运行。 显然,部署的规模对已选的计划选项具有重大影响。

远程计时器使用、遍历网站集,以自定义每个网站。

  1. 将启动计划任务,访问用户配置文件以检查已预配 OneDrive 网站的用户。
  2. 实际网站将基于业务需求逐一进行自定义。

此选项的其中一个关键点在于,用户可以在应用自定义之前访问 OneDrive 网站。 同时,此选项是其他选项的有趣加载项,可确保最终用户未更改网站上的任何必需设置,或检查 OneDrive 网站内容符合公司策略。

另请参阅