开始使用 PowerShell SharePoint 管理

SharePoint 管理中心让你感到厌烦,觉得它有所欠缺,并且想切换到命令行吗?是的,通过 PowerShell SharePoint Online 管理模块,这是可能的。

该模块允许你在 PowerShell 中完成通常在 SharePoint 管理中心中完成的任务。更重要的是,你可以自动化你的 SharePoint Online 任务!

本教程将教授 PowerShell SharePoint Online 管理的基础知识。你将学习如何安装该模块,执行常见的管理任务,并自动化重复的操作。请立即开始,不要走开!

先决条件

本教程将进行实际演示。如果你想跟随操作,请确保具备以下条件:

  • 你必须在 Microsoft 365 租户中拥有“SharePoint 管理员”或更高的角色。
  • 你必须知道你的 SharePoint Online 管理 URL 和门户 URL。请参考此链接,了解如何获取你租户中的 SharePoint Online 管理 URL。

本教程将使用门户 URL HTTPS://lzex.sharepoint.com 和管理 URL HTTPS://lzex-admin.sharepoint.com。

  • Windows PowerShell 5.1或Windows上的最新PowerShell 7。本教程在Windows 10上使用Windows PowerShell 5.1。

安装PowerShell SharePoint Online模块

要使用PowerShell管理SharePoint Online,首先必须安装PowerShell SharePoint Online管理模块。该模块提供了允许您连接和管理SharePoint在线组织和资源的cmdlet。

安装PowerShell SharePoint Online模块的最快和最便捷的方法是使用Install-Module cmdlet从PowerShell库中安装。要这样做,请按照以下步骤进行操作。

1. 以管理员身份打开PowerShell。

2. 然后运行下面的命令。此命令安装Microsoft.Online.SharePoint.PowerShell模块。

Install-Module -Name Microsoft.Online.SharePoint.PowerShell

3. 要确认模块安装成功,请运行下面的命令获取模块信息。

Get-Module -Name Microsoft.Online.SharePoint.PowerShell -ListAvailable | Select-Object Name,Version

该命令返回模块的名称和版本。如下所示,此计算机上有一个Microsoft.Online.SharePoint.PowerShell模块的版本。截至本文撰写时的最新版本为16.0.22615.12000

Listing the PowerShell SharePoint Online module information

4. 最后,在PowerShell中运行以下命令以导入PowerShell SharePoint模块。

注意:虽然PowerShell SharePoint Online模块与PowerShell 7兼容,但您必须使用 -UseWindowsPowerShell 开关显式导入该模块。

# 在Windows PowerShell 5.1上
Import-Module Microsoft.Online.SharePoint.PowerShell

# 在PowerShell 7x上
Import-Module Microsoft.Online.SharePoint.PowerShell -UseWindowsPowerShell

忽略关于未批准动词的警告。该警告提醒您有关Get-Verb列表中不以批准动词开头的cmdlet,但不会影响模块的功能。

要避免此警告,请在Import-Module cmdlet中附加 -DisableNameChecking 开关。

Importing the PowerShell SharePoint Online module

连接到PowerShell SharePoint Online

您现在可以连接到PowerShell SharePoint Online会话。但在执行之前,请了解语法和方法会根据您的管理员帐户的多因素身份验证状态而变化。

未启用MFA的管理员帐户

如果您的管理员帐户未启用MFA,请运行以下命令 Connect-SPOService。在-Url参数之后指定您的管理员URL,-Credential参数之后指定您的用户主体名称(UPN)

Connect-SPOService -Url <https://tenant-admin.sharepoint.com/> -Credential spoadmin@domain.com

在下一个提示中输入密码,然后按Enter键。

Connect SPOService
Connecting to PowerShell SharePoint online without MFA

-Credential参数还接受PSCredential对象,您可以使用Get-Credential cmdlet创建该对象。

带有 MFA 的管理员帐户

对于 MFA 管理员帐户,请按照以下步骤连接到 PowerShell SharePoint Online 会话。

1. 在 PowerShell 中运行以下命令。确保指定正确的 SharePoint 管理员 URL。

Connect-SPOService -Url https://tenant-admin.sharepoint.com/

2. 在弹出的登录窗口中,输入您的管理员用户名,然后单击“下一步”。

Type the SharePoint admin username

3. 接下来,输入管理员帐户的密码,然后单击“登录”按钮。

Enter the account password

4. 最后,完成您的 MFA 挑战。根据您为帐户配置 MFA 的方式,MFA 方法可能与下面的屏幕截图不同。

Completing the MFA challenge

完成这些步骤后,您的 PowerShell SharePoint 在线连接现在应该处于活动状态。

使用 PowerShell SharePoint 模块管理站点、用户和组

通过 PowerShell,您可以执行一些 SharePoint 提供给 SharePoint 在线和各种资源的功能。在此部分,您将执行典型的 SharePoint 在线任务,如创建站点、创建组、添加用户、从组中删除用户以及生成用户报告。

创建新的 SharePoint 站点

利用 New-SPOSite 命令,您可以创建一个新的 SharePoint 在线站点。假设您正在创建一个名为 My First Team Site 的新现代 Team Site 站点,请执行以下步骤。

1. 首先,获取 Team Site 模板的名称。

Get-SPOWebTemplate

寻找你想应用于新网站的模板。在这个示例中,复制“团队网站”(没有Microsoft 365组)模板的“名称”值,STS#3。

Listing all available SharePoint web templates

2。现在,运行以下命令创建现代团队网站。确保以下参数完整。

  • Url - 指定新站点的URL。此URL结构遵循此约定 - HTTPS://<tenant>.sharepoint.com/sites/<site-slug>。

确保URL是唯一的。即使站点位于回收站中,如果存在具有相同URL的站点,站点创建将失败。

  • Title – 为新站点设置标题。
  • Owner - 指定站点所有者的用户主体名称。

注意:如果您指定的所有者具有管理员角色,SPO会自动将公司管理员组设置为站点所有者。

  • Template – 指示您应用于新站点的Web模板。
  • StorageQuota - 配置站点的存储配额值(以MB为单位)。

注意:只有在 站点存储限制 在您的SharePoint Online组织中设置为手动时,StorageQuota值才会生效。如果设置为自动,则租户的总存储配额优先。

New-SPOSite `
    -Url 'https://lzex.sharepoint.com/sites/MyFirstTeamSite' `
    -Title 'My First Team Site' `
    -Owner '[email protected]' `
    -Template 'STS#3' `
    -StorageQuota 1000

如果站点创建成功,PowerShell中将得到无响应或消息。

3. 通过运行Get-SPOSite cmdlet确认新站点是否存在。

Get-SPOSite -Identity 'https://lzex.sharepoint.com/sites/MyFirstTeamSite'
Getting the new SPO site details

最后,在您的网页浏览器中打开SharePoint站点URL,确认站点是否正常工作。

Opening the new SPO site in the browser

创建站点组并添加用户

创建新的SPO站点后,您可以开始创建组并添加用户,赋予特定权限级别。在本节中,您将学习如何创建组并将用户添加到这些组中。

首先,根据下表中的规范创建组。

要获取权限级别列表,请访问SharePoint服务器中的用户权限和权限级别文档。

Site Group PemissionLevels
https://tenant.sharepoint.com/sites/MyFirstTeamSite Editing Team Edit
https://tenant.sharepoint.com.sites/MyFirstSite Design Team Design

要创建组,需要执行New-SPOSiteGroup cmdlet。运行以下命令以创建组。

# 定义站点URL。
$siteURL = '<https://lzex.sharepoint.com/sites/MyFirstTeamSite>'
# 使用“编辑”权限在站点上创建“编辑团队”组。
New-SPOSiteGroup -Site $siteURL -Group 'Editing Team' -PermissionLevels Edit
# 使用“设计”权限在站点上创建“设计团队”组。
New-SPOSiteGroup -Site $siteURL -Group 'Design Team' -PermissionLevels Design
Creating new groups on the SPO site

接下来,添加您希望成为组成员的用户。要做到这一点,请运行下面的Add-SPOUser命令。

# 将用户添加到“编辑团队”站点组
Add-SPOUser -Site $siteURL -Group 'Editing Team' –LoginName spoeditor@lzex.ga
# 将用户添加到“设计团队”站点组
Add-SPOUser -Site $siteURL -Group 'Design Team' –LoginName spodesigner@lzex.ga

每次执行命令后,您将收到类似下图的结果。

Adding users to SPO site groups

生成站点用户列表

利用Get-SPOUser命令,您可以生成可以访问该站点的用户。

运行下面的命令以生成我的第一个团队站点上的用户列表。

Get-SPOUser -Site <https://lzex.sharepoint.com/sites/MyFirstTeamSite> | Format-Table -Wrap -AutoSize | Out-File <path-to-savereport> -Force -Width 360 -Append

结果会与下图类似。如您所见,输出显示了用户列表及其组成员资格。

Getting the list of users on the SPO site

您还可以将结果输出到不同的文件类型,包括CSVXMLJSON、YAMLHTML和纯文本。

从站点组中移除用户

您可能需要移除用户,可能是因为您将用户添加到了错误的组中,或者该用户已不再与团队合作。Remove-SPOUser cmdlet是此任务的正确工具。

例如,运行下面的命令将用户[email protected]Design Team中移除。

Remove-SPOUser `
    -LoginName spodesigner@lzex.ga `
    -Site <https://lzex.sharepoint.com/sites/MyFirstTeamSite> `
    -Group 'Design Team'

如您所见,在从中移除仅有成员后,Design Team中的Users列表现在为空。

Removing a user for the SPO site group

使用PowerShell SharePoint Online进行自动化

由于您正在使用 PowerShell,您可以利用其自动化功能。例如,在创建多个站点时,脚本编写将是一种更实用的方法。

您可以将 PowerShell SharePoint Online New-SPOSite 命令与像 Import-Csv 和 ForEach-Object 这样的内置命令结合使用。以下步骤为您提供了使用不同属性创建多个站点的示例。

1. 运行以下命令以创建名为 sites.csv 的新 CSV 文件。

New-Item -Type File -Path .\sites.csv

2. 接下来,在文本编辑器中打开 CSV 文件。此示例使用 notepad.exe。

notepad.exe .\sites.csv

3. 将以下文本复制到您的 CSV 文件中并保存。确保替换所有者和 URL 值以匹配您的组织。

Owner,StorageQuota,Url,Template,Name
spoadmin@lzex.ga,100,https://lzex.sharepoint.com/sites/new-site,STS#0,新站点
ata_dev@lzex.ga,100,https://lzex.sharepoint.com/sites/dev-site,DEV#0,开发站点

您的 CSV 文件将类似于下面的屏幕截图。

Creating the CSV list of new sites

4. 在 PowerShell 中运行以下脚本。

Import-Csv .\sites.csv | ForEach-Object {
    New-SPOSite `
        -Owner $_.Owner `
        -StorageQuota $_.StorageQuota `
        -Url $_.Url `
        -Template $_.Template `
        -Title $_.Name `
        -NoWait
}

如果没有错误,则屏幕上不会显示任何其他结果。

Creating multiple sites using the PowerShell SharePoint online script

5. 最后,执行以下命令以确认新站点存在。

Import-Csv .\sites.csv | ForEach-Object {
    Get-SPOSite -Identity $_.Url | Select-Object Title,Url,Owner
}
Listing the new sites

您可以应用您刚刚执行的相同技术来自动化批量任务,如站点组创建和站点组成员更新。

Conclusion

PowerShell SharePoint Online 模块允许您改善管理 SharePoint 在线组织的方式。此模块并非用于取代 SharePoint 管理中心,而是作为增强您的 SharePoint 在线技能的工具。

除了 PowerShell SharePoint Online 模块外,您知道还有另一个模块可以让您在 PowerShell 中管理 SharePoint 在线吗?是的,那个模块就是 PnP PowerShell 模块。为什么不尝试探索一下该模块,并比较哪个对您更有效呢?

Source:
https://adamtheautomator.com/powershell-sharepoint/