在我最近“Office 365开发人员的决定,技巧和窍门”我说过我们’d做了很多“PowerShell with CSOM” work, and this was enabling us to run scripts against 双色球推荐一注 线上 in the same way that we are used to (for on-premises 双色球推荐一注). 这个 is becoming a popular approach, but since I got questions on it I thought it worth writing about.
刚开始使用Office 365时,我记得我非常担心缺少PowerShell cmdlet–基本上我们所有的命令’习惯使用那里不存在。这里’一个免费的图形来说明这一点:
是的,SP2013中的将近800个PowerShell命令(从SP2010中的530个左右)减少到双色球推荐一注 线上中的仅30个。这30个主要涵盖网站,用户和权限的基本操作–没有托管元数据,用户个人资料,搜索等脚本。它’可以肯定地说,其中有些东西现在可以在网站收集范围内使用(当然,当您不这样做时,’t have a true “Central Admin”网站,但仍然“tenant-level”您想要使用脚本而不是通过UI进行手动更改的设置。
所以呢’开发人员/管理员做的不好吗?
答案是像往常一样编写PowerShell,但是将CSOM代码嵌入其中。稍后会有更多示例,但是这里’一个小插图:
#获取网站集范围内的功能集(例如,激活一个)–这里没有显示如何获取$ clientContext。
$ siteFeatures = $ clientContext.Site.Features
$ clientContext.Load($ siteFeatures)
$ clientContext.ExecuteQuery()
所以我们’重新使用.NET CSOM,但我们使用的是PowerShell,而不是C#’调用任何.NET对象的能力(实际上,几乎每个脚本都将使用PowerShell’s 新对象 命令)。我们开始喜欢PowerShell的所有东西都重新摆在桌子上:
- 可以轻松修改脚本,而无需重新编译(或打开Visual Studio)
- 我们可以使用PowerGui或PowerShell ISE进行调试
- 我们可以利用PowerShell擅长的其他方面使用其他PowerShell模块和其他API(包括.NET)等可以轻松地从XML文件读取。
当然, 我们只能在.NET CSOM中存在该方法的地方执行操作 – that’是我们能做的事的界限。
入门
第1步–了解风景
The first thing to understand is that there are actually 3 different approaches for scripting against Office 365/双色球推荐一注 线上, depending on what you need to do. It might just be me, but I think that when you start it’它们之间容易混淆,或者无法完全理解它们全部存在。我的三种方法’m thinking of are:
- 双色球推荐一注 线上 cmdlets
- MSOL cmdlet
- PowerShell + CSOM
这个 帖子着重介绍最后的味道。我还写了一篇简短的随笔文章,内容涉及整体情况,以及其他口味的一些细节/示例,网址为 Using 双色球推荐一注 线上 and MSOL cmdlet in PowerShell with Office 365
第2步– prepare the machine you will run scripts against 双色球推荐一注 线上
选项1-如果您不会从SP2013框(例如SP2013 VM)运行脚本,请执行以下操作:
您需要获取包含.NET CSOM的双色球推荐一注 DLL,并将其复制到计算机上的文件夹中。–您的脚本将引用这些DLL。
- 转到任何双色球推荐一注 2013服务器,并复制任何DLL
- 该文件以C. \ Program Files \ Common Files \ microsoft shared \ Web服务器扩展\ 15 \ ISAPI文件夹中的Microsoft.双色球推荐一注.Client * .dll开头。
- 将它们存储在计算机上的文件夹中C:\ Lib–记录此位置。
选项2-如果要从SP2013框(例如SP2013 VM)运行脚本,请执行以下操作:
在这种情况下,无需复制DLL。–您的脚本将在原始双色球推荐一注安装位置(C:\ Program Files \ Common Files \ microsoft shared \ Web服务器扩展\ 15 \ ISAPI)中引用它们。
脚本顶部–引用DLL和身份验证
在使用API之前,每个调用双色球推荐一注 CSOM的.ps1文件都需要处理两件事。–加载CSOM类型,并认证/获取ClientContext对象。那么你’在脚本顶部需要此代码:
在下面的脚本中,我们’ll include this “top of script”在下面的每个脚本中通过点置TopOfScript.ps1来填充内容–您可以采用类似的方法(也许使用不同的名称!),也可以将这些内容粘贴到您创建的每个脚本中。如果输入一组有效的凭据和URL,则运行上面的脚本应会发现您已经准备就绪:
脚本示例
在SPO中激活功能
您可能需要在某个时候执行的操作是使用脚本启用或禁用功能。下面的脚本和后面的脚本一样,都引用了我上面的TopOfScript.ps1脚本:
Enable 侧装 (for app deployment)
沿着非常相似的思路(因为它还涉及激活功能)是启用“side-loading”在网站上。默认情况下,如果您’重新开发双色球推荐一注应用程序时,只能将其从Visual Studio F5部署到通过“开发人员网站”模板创建的网站,但要启用“side-loading”您也可以在(例如)团队网站上进行操作。由于功能不是’在用户界面中可见,您’需要一个这样的脚本:
迭代网
有时,您可能想遍历网站集中的所有网站,或在特定网站的下方浏览:
(请注意,在上图中,您还可以看到双色球推荐一注托管的应用程序网络,因为它们只是子网站(尽管可以通过应用程序域URL而不是实际主机站点进行访问)’的网络应用程序网址)。
迭代Web,然后列出,并更新每个列表上的属性
还是将上述示例扩展为不仅迭代Web,而且迭代每个Web列表-我在每个列表上更新的属性是EnableVersioning属性,但您可以通过相同的方式轻松使用任何其他属性或方法:
导入搜索架构XML
在双色球推荐一注 2013和Office 365中,搜索配置的许多方面(例如托管属性和爬网属性,查询规则,结果源和结果类型)可以作为XML文件在环境之间导出和导入。以下示例显示了使用PS + CSOM处理的导入操作:
概要
如您所愿,那里 ’使用PowerShell和CSOM组合可以完成很多工作。可以使用CSOM API进行的所有操作都可以包装到脚本中,并且可以像过去一样建立有用的PowerShell代码段库。 您无法使用CSOM做一些有趣的事情(例如,自动化将沙盒WSP上传/部署到Office 365的过程),但是有解决这些问题的方法,我’在以后的文章中,很可能会涉及到这一点(以及我们的经验)。
在PowerShell + CSOM方面的最终想法是,您可以拥有“hybrid”可以同时处理双色球推荐一注 线上和本地双色球推荐一注的脚本。例如,在我当前的项目中,我们构建的所有内容都必须可部署到SPO和本地,并且脚本使用“DeploymentTarget”参数可以在其中的值“Online” or “OnPremises”。脚本之间存在一些差异(即分支),但是对于许多操作,可以运行相同的命令。
相关帖子- Using 双色球推荐一注 线上 and MSO cmdlets in PowerShell with Office 365