使用PowerShell管理Office 365 SharePoint Online
1. 引言
随着云计算的普及,越来越多的企业选择将他们的SharePoint环境迁移到云端。Office 365提供了强大的SharePoint Online服务,使得用户可以在多租户环境中管理自己的SharePoint实例。为了更好地管理和自动化这些任务,微软推出了SharePoint Online Management Shell,它允许用户通过PowerShell远程配置和与SharePoint Online实例进行交互。本文将详细介绍如何使用PowerShell管理Office 365中的SharePoint Online,涵盖从安装工具到执行具体管理任务的方方面面。
2. 安装和配置SharePoint Online Management Shell
2.1 安装工具
安装SharePoint Online Management Shell非常简单。工具安装完成后,您可以打开一个新的实例。最简单的方法是通过搜索找到工具的位置。假设您已经在运行Windows 8或更高版本的桌面操作系统上安装了该工具(此技巧也适用于Windows Server 2012 R2),只需按键盘上的Windows键并开始输入“SharePoint Online Management Shell”。
如果找不到应用程序,您可以启动一个新的PowerShell控制台(或集成脚本编辑器),并输入以下PowerShell代码行以加载SharePoint Online Management模块:
Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking
2.2 连接到Office 365实例
连接到Office 365实例是使用管理shell的第一步。管理shell提供了一个名为
Connect-SPOService
的cmdlet,它允许您远程连接到Office 365 SharePoint Online服务。每个PowerShell会话都必须首先使用此方法进行认证。例如,您可以通过以下PowerShell命令行连接到您的环境:
Connect-SPOService -URL https://PoShSP2016-admin.sharepoint.com -Credential PoShSP2016@PoSHSP2016.onmicrosoft.com
在这个命令中,
URL
参数是您Office 365账户的SharePoint管理中心的根地址,使用的凭据是具有SharePoint Online实例管理员权限的用户凭据。调用这段PowerShell代码将会自动提示用户输入他们的凭据。
3. 列出可用命令
为了保持代码示例易于阅读,我们将继续使用集成脚本编辑器。通过使用
Get-Command
cmdlet,您可以生成在线shell中所有可用cmdlet的列表。为了仅显示与SharePoint相关的cmdlet,您可以使用以下PowerShell代码行:
$spo = Get-Command | Where-Object { $_.ModuleName -eq "Microsoft.Online.SharePoint.PowerShell" }
通过这个命令,您已经将所有与SharePoint Online相关的PowerShell cmdlets捕获到一个名为
$spo
的变量中。获取这个变量的
Count
属性将告诉您目前有41个cmdlets可用于管理SharePoint Online。
4. 管理站点集
4.1 创建新的站点集
PowerShell提供了11个cmdlet用于管理SharePoint Online站点集。在创建新的站点集时,您可以使用
New-SPOSite
cmdlet。此cmdlet需要三个强制性参数:新站点集的URL、将成为其所有者的Office 365用户名和存储配额。例如:
New-SPOSite -URL https://PoShSP2016.sharepoint.com/sites/dev -Owner PoShSP2016@PoShSP2016.onmicrosoft.com -StorageQuota 500 -Template DEV#0
4.2 设置站点集属性
使用
Set-SPOSite
cmdlet可以设置或修改站点集的属性。例如,您可以设置站点集的标题、存储配额、资源配额等。以下是设置站点集属性的一些常用参数:
| 参数 | 描述 |
|---|---|
-Identity
| 指定要修改的站点集的URL。 |
-Title
| 设置站点集的标题。 |
-StorageQuota
| 设置站点集的存储配额(以MB为单位)。 |
-StorageQuotaWarningLevel
| 设置存储配额警告级别(以MB为单位)。 |
-ResourceQuota
| 设置站点集的资源配额(以MB为单位)。 |
-ResourceQuotaWarningLevel
| 设置资源配额警告级别(以MB为单位)。 |
-SandboxedCodeActivationCapability
| 确定是否启用沙盒解决方案。 |
4.3 获取和删除站点集
使用
Get-SPOSite
cmdlet可以获取指定的站点集信息。例如:
Get-SPOSite -Identity https://PoShSP2016.sharepoint.com/sites/dev
要删除一个站点集,可以使用
Remove-SPOSite
cmdlet。例如:
Remove-SPOSite -Identity https://PoShSP2016.sharepoint.com/sites/dev
5. 管理用户和权限
5.1 添加外部用户
SharePoint Online支持添加外部用户,这些用户可以通过他们的个人或外部组织的电子邮件地址识别(例如,@gmail.com,@hotmail.com,@contoso.com等)。使用
Add-SPOExternalUser
cmdlet可以邀请外部用户加入您的SharePoint站点。例如:
Add-SPOExternalUser -Site https://PoShSP2016.sharepoint.com/sites/dev -Email user@example.com -DisplayName "Example User"
5.2 获取外部用户列表
使用
Get-SPOExternalUser
cmdlet可以显示当前Office 365租户账户中所有外部用户的列表。例如:
Get-SPOExternalUser
此cmdlet不需要任何参数,它会连接到您的租户存储并返回所有外部用户。这些用户需要接受邀请并至少登录一次才会出现在列表中。
5.3 用户权限管理
使用
Set-SPOUser
cmdlet可以设置用户权限。例如,将用户添加到站点集的管理员组:
Set-SPOUser -Site https://PoShSP2016.sharepoint.com/sites/dev -LoginName user@example.com -IsSiteCollectionAdmin $true
通过以上步骤,您可以轻松地管理SharePoint Online中的用户和权限,确保您的环境安全可控。
图1:创建新站点集的流程
graph TD;
A[开始] --> B[安装SharePoint Online Management Shell];
B --> C[连接到Office 365实例];
C --> D[使用New-SPOSite创建新站点集];
D --> E[设置站点集属性];
E --> F[完成];
表1:站点集属性设置参数
| 参数 | 描述 |
|---|---|
-Identity
| 指定要修改的站点集的URL。 |
-Title
| 设置站点集的标题。 |
-StorageQuota
| 设置站点集的存储配额(以MB为单位)。 |
-StorageQuotaWarningLevel
| 设置存储配额警告级别(以MB为单位)。 |
-ResourceQuota
| 设置站点集的资源配额(以MB为单位)。 |
-ResourceQuotaWarningLevel
| 设置资源配额警告级别(以MB为单位)。 |
-SandboxedCodeActivationCapability
| 确定是否启用沙盒解决方案。 |
通过以上内容,您可以全面了解如何使用PowerShell管理Office 365中的SharePoint Online实例。接下来的部分将继续探讨更多高级管理任务,如日志管理、性能监控等,帮助您进一步提升工作效率。
6. 日志管理和性能监控
6.1 获取租户日志条目
日志管理是确保SharePoint Online环境稳定运行的重要组成部分。使用
Get-SPOTenantLogEntry
cmdlet可以获取租户级别的日志条目。这些日志条目包含了有关任何组件故障(如BCS、用户配置文件服务等)的信息,以及环境中发生的重要事件。例如:
$logs = Get-SPOTenantLogEntry
$logs[0].Message
此命令将返回最新的日志条目消息。通过定期检查日志,您可以及时发现并解决问题,确保环境的正常运行。
6.2 获取日志最后可用时间
有时您可能需要知道日志的最后可用时间。使用
Get-SPOTenantLogLastAvailableTimeInUtc
cmdlet可以获取最新的日志条目时间。这对于自动化脚本非常有用,可以定期检查云服务器是否有新的错误记录,并通知用户。例如:
Get-SPOTenantLogLastAvailableTimeInUtc
图2:日志管理流程
graph TD;
A[开始] --> B[获取租户日志条目];
B --> C[检查日志条目内容];
C --> D[获取日志最后可用时间];
D --> E[完成];
7. 使用客户端上下文进行更多操作
7.1 客户端对象模型简介
虽然SharePoint Online Management Shell提供了30个cmdlet用于管理SharePoint Online,但对于更复杂的操作,您可以使用客户端对象模型(CSOM)。CSOM允许开发人员构建在SharePoint服务器外部远程运行的应用程序,并与远程SharePoint环境进行交互。CSOM有三种实现方式:JavaScript模型、Silverlight模型和.NET模型。
7.2 使用CSOM进行高级操作
使用CSOM,您可以执行更多高级操作,例如在站点集合下创建网站和子网站,并动态更改网站的主题。以下是一个简单的示例,展示如何使用CSOM创建一个子网站:
- 加载必要的CSOM库。
- 创建客户端上下文对象。
- 使用上下文对象创建子网站。
# 加载CSOM库
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
# 创建客户端上下文对象
$siteUrl = "https://PoShSP2016.sharepoint.com/sites/dev"
$context = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl)
# 设置凭据
$credentials = Get-Credential
$context.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($credentials.UserName, $credentials.Password)
# 创建子网站
$web = $context.Web
$newWebInfo = New-Object Microsoft.SharePoint.Client.WebCreationInformation
$newWebInfo.Title = "New Subsite"
$newWebInfo.Url = "newsubsite"
$newWebInfo.WebTemplate = "STS#0"
$newWebInfo.Description = "Description of new subsite"
$newWeb = $web.Webs.Add($newWebInfo)
$context.Load($newWeb)
$context.ExecuteQuery()
8. 网站模板管理
8.1 获取可用的网站模板
使用
Get-SPOWebTemplate
cmdlet可以获取SharePoint Online中所有可用的网站模板。这些模板用于创建新的网站。例如:
Get-SPOWebTemplate
此命令将返回一个包含所有可用网站模板的列表,您可以根据需要选择合适的模板来创建新的网站。
表2:默认SharePoint Online站点集及其关联的站点模板ID
| 站点集URL | 模板ID |
|---|---|
| https://PoShSP2016.sharepoint.com | EHS#1 |
| https://PoShSP2016.sharepoint.com/search | SRCHCEN#0 |
| https://PoShSP2016-my.sharepoint.com | SPSMSITEHOST#0 |
| https://PoShSP2016.sharepoint.com/portals/community | POINTPUBLISHINGTOPIC#0 |
| https://PoShSP2016.sharepoint.com/hub | POINTPUBLISHINGHUB#0 |
9. 网站和子网站管理
9.1 创建和管理网站
虽然通过SharePoint Online Management Shell无法直接创建新的网站,但在创建新的站点集时,您会自动创建一个根网站。您可以使用CSOM或其他方法来创建子网站。此外,您可以使用
Set-SPOWeb
cmdlet来管理网站属性,例如设置网站标题、描述等。
9.2 获取和删除网站
使用
Get-SPOWeb
cmdlet可以获取指定的网站信息。例如:
Get-SPOWeb -Identity https://PoShSP2016.sharepoint.com/sites/dev/newsubsite
要删除一个网站,可以使用
Remove-SPOWeb
cmdlet。例如:
Remove-SPOWeb -Identity https://PoShSP2016.sharepoint.com/sites/dev/newsubsite
图3:网站和子网站管理流程
graph TD;
A[开始] --> B[获取可用网站模板];
B --> C[创建新的站点集];
C --> D[使用CSOM创建子网站];
D --> E[管理网站属性];
E --> F[获取和删除网站];
F --> G[完成];
通过以上内容,您可以全面了解如何使用PowerShell管理Office 365中的SharePoint Online实例,涵盖了从安装工具到执行具体管理任务的方方面面。无论是创建和管理站点集,还是用户权限管理、日志管理和性能监控,您都可以通过PowerShell实现高效、自动化的操作,从而提升工作效率,确保SharePoint Online环境的安全性和稳定性。
超级会员免费看
1299

被折叠的 条评论
为什么被折叠?



