Powershell

使用 Powershell 從 Office 365/Sharepoint Online MySite 中刪除單個使用者配置文件

  • April 29, 2016

我正在嘗試制定一個流程,允許我的幫助台使用 powershell 從 Office 365 線上共享點中刪除單個使用者的配置文件。

連接到我們的 Sharepoint Online URL 並查看我們擁有的站點很容易:

Connect-MsolService
Connect-SPOService -url https://example-admin.sharepoint.com -Credential AccountWithOffice365AdminRights@example.com

我可以驗證我已連接。 get-sposite如您所料,返回我們的共享點線上 URL 列表。

執行諸如repair-spositeremove-sposite適用於整個網站集的命令,例如repair-sposite -identity https://example-my.sharepoint.com適用於整個網站集,所以我要做的最後一件事是remove-sposite在此級別執行,並且在更深的級別執行它(repair-sposite -identity https://example-my.sharepoint.com/personal/user_example_com)無法找到共享點站點跟…共事。

有一些網站都剪切並粘貼了相同的程式碼片段來迭代 sharepoint mysites 集合中的所有使用者並刪除所有使用者,但我不相信程式碼適用於 sharepoint 2013 網站而且它很簡單從站點中刪除使用者的權限。但我不想做這兩件事,我只想從 mysites中刪除一個使用者的個人資料。

我一直在生成一個用於線上共享點的庫,所以我最近一直在編寫數百個這樣的小任務,但基本上你需要使用 CSOM 命令。首先,下載 sharepoint server 2013 客戶端上下文 SDK。然後確保在程式碼中包含 DLL:

導入模組 ‘C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll’

您的 DLL 路徑可能與我的不同。

現在您可以使用 CSOM 做任何您想做的事情。

這是一些應該完成您正在嘗試做的事情的程式碼。

Import-Module 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll'  #Needed for CSOM
$SPOUsername="username@sharepoint.com"
$SPOPassword="my plain text password"
$SPCred=New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($SPOUsername,(ConvertTo-SecureString $SPOPassword -AsPlainText -Force))
$context = New-Object Microsoft.SharePoint.Client.ClientContext("https://Blah.sharepoint.com/sites/.....")
$context.Credentials = $SPCred
$web=$context.Web
$context.Load($web.SiteUsers)
$context.ExecuteQuery()

$Web.SiteUsers|Select ID,Email,title #Display users and their IDs
$Web.SiteUsers.RemoveById(<ID of target user>)

$context.ExecuteQuery()

引用自:https://serverfault.com/questions/573658