使用PowerShell SharePoint管理入門

你是否覺得SharePoint管理中心無聊、缺乏功能,想要切換到命令列?沒問題,你可以使用PowerShell SharePoint 線上管理模組。

這個模組能讓你使用PowerShell完成在SharePoint管理中心中通常要做的任務。更棒的是,你還可以自動化你的SharePoint線上任務!

本教程將教授PowerShell SharePoint 線上管理的基礎知識。你將學習如何安裝這個模組、執行常見的管理任務,以及自動化重複性的操作。準備好了嗎?馬上開始吧!

前提條件

本教程將提供實際操作示範。如果你想跟著做,請確保你擁有以下條件:

  • 你必須知道你的SharePoint線上管理URL和門戶URL。請參考這個連結以了解如何在你的租用戶中獲取SharePoint線上管理URL。

本教程中將使用門戶URL為HTTPS://lzex.sharepoint.com,管理URL為HTTPS://lzex-admin.sharepoint.com

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

安裝 PowerShell SharePoint Online 模組

要使用 PowerShell 管理 SharePoint Online,您必須先安裝 PowerShell SharePoint Online 管理模組。此模組提供了允許您連接和管理 SharePoint 在線組織和資源的 cmdlet。

安裝 PowerShell SharePoint Online 模組的最快且最方便的方法是從 PowerShell 庫使用 Install-Module cmdlet。請按照以下步驟進行操作。

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 在 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,但不會影響模組的功能。

為了避免此警告,請將 -DisableNameChecking 選項附加到 Import-Module Cmdlet。

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 Online 連線應該已經啟用。

使用 PowerShell SharePoint 模組進行站點、使用者和群組管理

透過 PowerShell,您可以執行 SharePoint Online 和各種資源提供的一些功能。在這一節中,您將執行典型的 SharePoint Online 任務,例如建立站點、建立群組、新增使用者、從群組移除使用者,以及產生使用者報告。

建立新的 SharePoint 站點

利用 New-SPOSite 命令,您可以建立一個新的 SharePoint Online 站點。假設您要建立一個名為「我的第一個團隊網站」的新現代團隊網站,請執行以下步驟。

1. 首先,取得團隊網站範本的名稱。

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 – 指示您要應用於新網站的網頁範本。
  • StorageQuota - 配置網站的儲存配額值(以 MB 為單位)。

注意:StorageQuota 值僅在您的 SharePoint Online 組織中的 網站儲存限制 設定為手動時生效。如果設定為自動,則以租戶的總儲存配額為優先。

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 命令確認新網站的存在。

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

4. 最後,在網頁瀏覽器中打開SharePoint網站的URL,確認網站運作正常。

Opening the new SPO site in the browser

創建網站群組並添加用戶

在創建新的SPO網站後,您可以開始創建群組並添加具有特定權限級別的用戶。在本節中,您將學習如何創建群組並將用戶添加到這些群組中。

首先,根據下表中的規格創建群組。

要獲取權限級別列表,請參閱SharePoint Server中的用戶權限和權限級別文檔。

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

要創建群組,需要執行New-SPOSiteGroup命令。執行以下命令來創建群組。

# 定義網站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命令是完成此任务的正确方法。

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

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

如您所见,在移除唯一成员后,Design TeamUsers列表现在为空。

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文件中並保存。請確保將Owner和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

您可以應用剛才執行的相同技巧來自動執行大量任務,例如網站組創建和網站組成員更新。

結論

PowerShell SharePoint Online 模組使您能夠改善對 SharePoint Online 組織的管理方式。此模組並非旨在取代 SharePoint 管理中心,而是作為增強您的 SharePoint Online 技能的工具。

除了 PowerShell SharePoint Online 模組外,您是否知道還有另一個模組可讓您在 PowerShell 中管理 SharePoint Online?是的,那個模組就是 PnP PowerShell 模組。您為什麼不試試那個模組,並比較哪個對您更有效?

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