围绕 Office 365 的那些 CLI

发布于: 2020 年 06 月 29 日
围绕 Office 365 的那些 CLI

CLI 介绍

CLI,命令行界面,Command-Line Interface,是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(character user interface, CUI)。

通常认为,命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作。因为,命令行界面的软件通常需要用户记忆操作的命令,但是,由于其本身的特点,命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。所以,在现在的图形用户界面的操作系统中,通常都保留着可选的命令行界面。

常见的 CLI 程序

  • bash / sh / ksh / csh / zsh(Unix-like系统)

  • COMMAND.COM(MS-DOS系统)

  • cmd.exe / 命令提示符(Windows NT和Windows CE系统)

  • Windows PowerShell(支持.NET Framework技术的Windows NT系统)

Office 365 为什么有 CLI?

Office 365 中众多的软件服务以图形化形式面向最终用户,正因为软件服务众多,Office 365 体系内的管理和维护体量也比较大,因此,CLI 在管理和维护中的优势就体现出来了,效率高,可批量处理,自动化,接入平台便捷等。在整个 Office 365 体系中,围绕不同的软件服务有不少的 CLI,下面我来一一介绍。

Office 365 CLI

第一个要介绍的是 Office 365 CLI,从名字就能看出来,它是 Office 365 体系中当之无愧的一哥,先看一下它的自我介绍:

使用Office 365 CLI,您可以在任何平台上管理Microsoft Office 365租户和SharePoint Framework项目。 无论您是在Windows,macOS还是Linux上,使用Bash,Cmder或PowerShell,使用Office 365 CLI,都可以配置Office 365,管理SharePoint Framework项目和构建自动化脚本。

这个自我介绍做的很低调,它所能管理的不只是租户和SharePoint Framework项目。它的第一个版本是在 2017 年 11 月发布,2019 年 9 月发布了第二版,在目前提供的命令中几乎涵盖了 Office 365 中所有的软件服务,有图为证:

除了通过命令行工具对 Office 365 租户及各种软件服务的管理,Office 365 CLI 最厉害的地方是跨平台,支持几乎所有的 CLI 外壳程序,带来的结果就是很自然的支持自动化构建。

具体使用详情这里不展开,请参考以下链接:

  • https://github.com/pnp/office365-cli

  • https://pnp.github.io/office365-cli/

SharePoint Online Management Shell

第二个出场的是 SharePoint Online Management Shell,看名字就知道,这个 CLI 是专门针对 SharePoint Online,而且是只适用于 PowerShell,它的自我介绍是:

SharePoint Online Management Shell 是 Windows PowerShell 模块,可用于在组织级别和网站集级别管理 SharePoint 设置。 Windows PowerShell 中的命令行操作由一系列命令组成。 每个命令都使用一个 cmdlet 和一组称为参数的设置。 例如,您使用 New-SPOSite cmdlet 创建具有指定标题,URL,所有者,存储配额和模板(参数)的新网站集。

仔细看一下 SharePoint Online Management Shell 中提供的所有命令,是围绕 SharePoint Online 的配置管理进行的,比如创建网站,删除网站,添加用户,移除用户等,并没有涉及到 SharePoint Online 网站结构,网站数据等方面的管理。因此,SharePoint Online Management Shell 是租户管理员的好帮手。

由于是 PowerShell 模块,所以它目前只能在 Widnows 平台上运行,详情请参考以下链接:

  • https://docs.microsoft.com/en-us/powershell/sharepoint/sharepoint-online/introduction-sharepoint-online-management-shell?view=sharepoint-ps

PnP PowerShell

上一个我们讲到 SharePoint Online Management Shell 是提供给租户管理员的工具,那么有没有提供给开发者使用的管理工具呢?当然有,PnP PowerShell 就是,首先还是看它的自我介绍:

SharePoint Patterns and Practices (PnP) 包含PowerShell命令库(PnP PowerShell),使您可以对 SharePoint 执行复杂的配置和内容管理操作。 这些命令使用CSOM,并且可以同时作为SharePoint内部部署与SharePoint Online一起使用。

PnP PowerShell 基于 CSOM(Client Side Object Model),这是 SharePoint 从 2010 版本开始的在.Net Framework 下的客户端开发模型,可以帮助开发者在脱离 SharePoint 宿主能访问到 SharePoint 的结构及数据。因此,PnP PowerShell 目前也只能在 Windows 平台上运行,并且对.Net Framework 版本和 SharePoint client side dll 都有一定的要求(社区一直在呼吁把 PnP PowerShell 迁移到 .net core 上去,这样就可以跨平台使用了)。

PnP PowerShell 支持的 SharePoint 版本范围很广,从 SharePoint 2013 一路支持到SharePoint Online,每个版本下需要安装特定的 PowerShell 模块:

Install-Module SharePointPnPPowerShellOnline #SharePoint Online
Install-Module SharePointPnPPowerShell2019 #SharePoint 2019
Install-Module SharePointPnPPowerShell2016 #SharePoint 2016
Install-Module SharePointPnPPowerShell2013 #SharePoint 2013

在日常的开发维护和数据迁移方面,PnP PowerShell 提供很强大的支持,以后会写一些具体的使用场景介绍。由于 PnP PowerShell 是社区开源驱动的一个项目,加上本身提供了较为复杂的功能,因此在实际使用过程中还会有一些 bug,这些需要使用者谨慎对待,下面是 PnP PowerShell 的相关链接:

  • https://github.com/pnp/PnP-PowerShell

  • https://docs.microsoft.com/en-us/powershell/sharepoint/sharepoint-pnp/sharepoint-pnp-cmdlets?view=sharepoint-ps

Teams PowerShell

现在,Teams 算得上是 Office 365 体系中的当家花旦,是用户与 Office 365 交互的信息集成中心(这里心痛 SharePoint 两秒,早两年这个角色是它)。围绕 Teams 也有一个 PowerShell 模块,主要用于 Teams 的配置管理,就像 SharePoint Online Management Shell 和 SharePoint Online 一样,还是先看一下自我介绍:

Microsoft Teams为IT管理员提供了丰富的工具集,可通过Microsoft Teams管理中心,PowerShell模块和Graph API来管理产品。

自我介绍直接了当,Teams PowerShell 是给 IT 管理员管理 Teams 的工具之一,用于配置管理,基于 Teams 还有一个套很厉害的开发框架,全部基于前端技术栈的,这里我们先按下不表,等到开发篇的时候具体聊。

Teams PowerShell 的相关链接:

  • https://docs.microsoft.com/en-us/microsoftteams/teams-powershell-overview

参考资料

  • 命令行界面:https://zh.wikipedia.org/wiki/%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%95%8C%E9%9D%A2

发布于: 2020 年 06 月 29 日 阅读数: 6
用户头像

手艺人杨柳

关注

光荣的 Debugger! 2020.04.30 加入

企业应用开发实践者。

评论

发布
暂无评论
围绕 Office 365 的那些 CLI