8、使用PowerShell管理Office 365 SharePoint Online

使用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创建一个子网站:

  1. 加载必要的CSOM库。
  2. 创建客户端上下文对象。
  3. 使用上下文对象创建子网站。
# 加载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环境的安全性和稳定性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值