使用 Powershell 從 Office 365/Sharepoint Online MySite 中刪除單個使用者配置文件
我正在嘗試制定一個流程,允許我的幫助台使用 powershell 從 Office 365 線上共享點中刪除單個使用者的配置文件。
連接到我們的 Sharepoint Online URL 並查看我們擁有的站點很容易:
Connect-MsolService Connect-SPOService -url https://example-admin.sharepoint.com -Credential AccountWithOffice365AdminRights@example.com
我可以驗證我已連接。
get-sposite
如您所料,返回我們的共享點線上 URL 列表。執行諸如
repair-sposite
或remove-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()