重要!:從 Project Server 2019 公開預覽中刪除用戶數據的程式與用於 Project Server 2016、Project Server 2013 和 Project Server 2010 的程式非常不同。 若要瞭解如何從舊版 Project Server 刪除用戶數據,請參閱 從 Project Server 刪除用戶數據。
了解伺服器陣組管理員如何從 Project Server 環境中刪除特定用戶的數據。
本文說明:
刪除了哪些用戶資訊?
刪除案例
程式概觀
步驟 1 - 在 SharePoint Server 伺服器陣列中尋找 Project Web App 實例
步驟 2 - 在每個 PWA 網站上尋找使用者的資源識別碼或宣告帳戶
步驟 3 - 關閉所有使用者的專案
步驟 4 - 將工作區專案同步至 Project Server
步驟 5 - 匯出用戶數據
步驟 6 - 刪除使用者個人資料的問題和風險
步驟 7 - 開啟資源行事曆,並清除使用者的例外狀況原因
步驟 8 - 從資源和專案資源數據表中刪除用戶的個人資訊
步驟 9 - 清除 Project 專業版 連線到 Project Server 實例之使用者的快取。
刪除了哪些用戶資訊?
在 Project Server 中,系統管理員可以使用本文中詳述的步驟,刪除使用者的個人資料和個人識別數據 (可用來識別使用者) 的數據,例如:
顯示名稱、語音名稱、GUID - 您可以選擇刪除或重新命名使用者顯示名稱 (如何執行文稿) 的詳細資料。
使用者特定的檢視設定 - 例如,如果使用者的檢視設定有自定義, (檢視、篩選、群組、數據表、地圖、繪圖、報表) 網格線頁面頂端的檢視 (,例如資源中心、專案中心、排程網頁元件等 ) ,則會刪除這些專案。
行事曆例外狀況詳細數據 - 例如,如果使用者因為病假或休假而在一月份離開一周,則必須手動刪除例外狀況的名稱。 日期會維持不變。
用戶權力 - 例如,如果使用者與專案伺服器類別相關聯,群組/已獲得個別的全域許可權,我們會繼續移除所有關聯。 使用者也會設定為非使用中。
專案網站、問題和風險中包含的使用者個人資訊會儲存在 SharePoint 中,而且不會透過此程序刪除。 您必須直接從 SharePoint Server 刪除此資料。
重要: 建議您先執行 SharePoint Server 使用者資訊刪除程式,再從 Project Server 刪除相同用戶的資訊。 這可防止 Project Server 問題中的用戶個人資訊,以及如果用戶個人資訊仍然存在,對應的 SharePoint Server 數據就無法更新風險。
刪除案例
視您的需求而定,此程式可讓您刪除上面所列的用戶個人資訊,但也允許在刪除共享專案中的用戶顯示名稱方面進行一些控制,例如時程表、專案和指派。 您可以執行三個刪除案例:
案例 1:從 Project Web App 實例中刪除用戶的資訊,但顯示名稱除外
在此案例中,會刪除使用者的所有個人資訊,但用戶的顯示名稱會保持不變。
如果您需要進一步檢閱共用專案 (,例如) 使用者使用中的時程表和專案,您可以選擇此案例。
案例 2:從 Project Web App 實例刪除使用者的資訊,但會在任何地方更新顯示名稱
在此案例中,會刪除使用者的所有個人資訊。 在顯示使用者顯示名稱的所有位置中,它會取代為您選擇的字串,例如「已刪除的使用者」。用戶的資源標識碼會保留下來。
如果不需要保留使用者顯示名稱,您也可以選擇此案例,即使是在時程表和專案等共享記錄中也一樣。
案例 3:從 Project Web App 實例刪除用戶的資訊,但變更時程表記錄以外的所有位置顯示名稱
在此案例中,會刪除所有用戶的個人資訊,但時程表記錄除外。 您可以選擇將使用者的顯示名稱取代為另一個字串,例如「已刪除的使用者」。不過,這不會影響仍然保留使用者名稱的時程表記錄。 更新的顯示名稱會與其時程表記錄取消連結,並產生新的資源識別碼,因此無法透過時程表記錄中的數據來識別更新的用戶名稱。
如果您需要進一步檢閱使用者顯示為提交者或核准者的時程表記錄,您可以選擇此案例。
程式概觀
以下是在 Project Web App 中刪除特定使用者資訊的程式概觀:
從 Microsoft 下載中心下載匯出腳本。
在您的環境中尋找 PWA 網站:尋找 Project Server 伺服器陣列中 Project Web App 實例的清單。
尋找使用者的資源識別碼:在每個 Project Web App 實例上,指定使用者的宣告帳戶來尋找使用者的唯一資源標識符。
關閉所有用戶的專案:這可確保對使用者具有資訊的所有專案進行變更。
將工作區專案同步至 Project Server:
執行用戶數據的導出:此程式會在 Project Server 2019 公開預覽版中匯出用戶數據中說明。
從問題和風險中刪除使用者個人資料:
從 PWA 網站刪除用戶的數據: 執行文稿,從每個PWA網站刪除用戶的資訊。
從封存的物件修訂資源資訊:
清除連線到 PWA 網站之 Project 用戶端使用者的快取:
步驟 1 - 下載匯出腳本檔案
按兩下 這裡 下載匯出文稿。
關於執行匯出文稿的重要注意事項:
在資訊所在的資料庫內容中執行.sql腳本。 您必須擁有資料庫的db_datareader許可權。
您可能需要「解除封鎖」zip 檔案,因為根據預設,不允許執行從因特網下載的腳本。 請執行下列動作來解除封鎖您的檔案:
在 檔案總管 中,移至您儲存 zip 檔案的位置。
以滑鼠右鍵按兩下 zip 檔案,然後按兩下 [ 屬性]。
在 [ 一般] 索引標籤上,選取 [ 解除封鎖]。
按兩下 [確定]。
ZIP 檔案中包含的所有檔案現在都應該是 [解除封鎖]。 您可以檢查 [解除 封鎖 ] 複選框選項是否不再出現在檔案的 [屬性] 頁面的 [ 一般 ] 索引標籤中,以在個別檔案中確認這一 點 。
注意:如果您只能存取解壓縮的檔案,您也可以個別解除封鎖每個檔案。
步驟 2 - 在 SharePoint Server 伺服器陣列中尋找 Project Web App 實例
使用具有下列篩選條件的 Get-SPProjectWebInstance Cmdlet,取得存在於 SharePoint Server 伺服器陣列中 PWA 網站的 URL、網站標識碼和資料庫名稱:
Get-SPProjectWebInstance |ft -a Url,SiteId,DatabaseName,DatabaseServer
當您在稍後的步驟中刪除使用者的個人資料時,您將需要每個網站的資訊。
例如,在我們的範例 Contoso Project Server 伺服器陣列上執行 Cmdlet 可能會傳回下列三個 PWA 網站:
| URL | SiteID | Database | DatabaseServer |
|---|---|---|---|
| 'https://contoso/pwa1' | 63ed0197-3647-4279-ed5e80855fc7 | WSS_Content | SQL01 |
| 'https://contoso/pwa2' | 67fd0727-5279-3321-ef4e90956fc8 | WSS_Content | SQL01 |
| 'https://contoso/pwa3' | 63ed0197-3647-4279-eg7e20233fg9 | WSS_Content | SQL02 |
步驟 3 - 在每個 PWA 網站上尋找使用者的資源識別碼或宣告帳戶
取得 Project Server 伺服器陣列上所有 PWA 網站的信息之後,接下來您必須找到要刪除其個人資料之使用者的資源識別碼 (ResID) 或宣告帳戶。 在步驟 1 中探索到的每個 PWA 網站上執行此動作 (,因為每個 PWA 實例) 的 ResID 不同。
執行 FindUser2019.sql SQL 腳本以尋找使用者的資源識別碼或宣告帳戶。
注意:您必須在 SQL Server Management Studio 中執行 FindUser2019.sql SQL 腳本,而且必須具有伺服器數位管理員許可權,才能存取適當的資料庫。
在相關 PWA 月臺的資料庫上執行腳本。 在步驟 1 提供的範例結果中,所有三個 Project Web App 實例的資料庫WSS_Content 。
在文稿中提供下列參數的值:
| 參數 | 描述 |
|---|---|
| @siteID | 您要在其中尋找使用者資源識別碼之網站的 PWA 網站識別碼。 您在步驟 1 中找到 PWA 網站的 PWA 網站識別碼值。 |
| @searchName | Project Server 使用者的顯示名稱。 |
例如,如果您想要在步驟 1 的範例中找到 Contoso PWA1 網站上 Adam Barr 的 userID,您可以編輯腳本中參數的值,如下所示:
DECLARE @siteId uniqueidentifier = '63ed0197-3647-4279-ed5e80855fc7'
DECLARE @searchName nvarchar (255) = 'Adam Barr'
腳本會傳回使用者的 [資源名稱]、[資源標識符]、[電子郵件位址] 和 [宣告帳戶] 值。
步驟 4 - 關閉所有使用者的專案
您必須確定 Project Server 環境中的所有用戶專案都已關閉。 這可確保不會覆寫刪除腳本所做的變更。
如有需要,PWA 系統管理員可以透過 PWA 伺服器設定強制檢查專案。
在 [ 伺服器設定] 頁面的 [ 佇列和資料庫管理 ] 區段中,按兩下 [ 強制存回企業物件]。
在 [ 強制存回企業物件 ] 頁面上,從專案清單中選取需要核取之專案旁邊的複選框,然後按兩下 [ 簽入]。
系統會顯示一則訊息,詢問您是否確定要強制簽入。 按兩下 [確定]。
步驟 5 - 將工作區專案同步至 Project Server
Sync-ProjectWorkspace2019.ps1 腳本會在 Project Server 中建立佇列作業,以執行專案工作區完整同步處理。針對包含您要尋找之使用者的每個項目執行此腳本。 (您需要每個項目的項目識別碼。 您可以導出 WorkspaceItems [從 Project Server 2019 公開預覽版導出用戶數據] (export-user-data-from-project-server-2019 Public Preview.md) ,以找出與使用者相關的專案。 請先確認佇列作業已完成 ,再繼續進行其他步驟。
步驟 6 - 匯出用戶數據
刪除使用者的個人資料之前,您應該知道使用者所屬的所有專案。 這可讓您稍後確認用戶的數據是否已移除,而且您有正確的使用者要刪除。 從 Project Server 2019 公開預覽版匯出用戶數據會詳細說明匯出用戶數據。
步驟 7- 刪除使用者個人資料的問題和風險
問題和風險會儲存在屬於SharePoint Server 一部分的項目網站中。 建議您先刪除使用者的 SharePoint Server 資訊,再刪除其 Project Server 資訊。 這可防止 Project Server 問題中的用戶個人資訊,以及如果用戶個人資訊仍然存在,對應的 SharePoint Server 數據就無法更新風險。
如果您在已從 Project Server (刪除使用者信息之後,或是從未擁有 Project Server 帳戶的使用者) ,則必須使用其宣告帳戶,因為從 Project Server 刪除資源標識符之後,就無法使用資源識別符。
您可以使用FindUserClaims2019.sql腳本來尋找報告資料庫中所有問題風險的宣告帳戶。
步驟 8 - 從 PWA 網站刪除用戶的數據
在 Project Server 上,以 SharePoint 伺服器陣列管理員身分執行 Invoke-SPProjectRedactUser Cmdlet,從 PWA 網站移除用戶數據,並選擇性地更新使用者的顯示名稱。
Invoke Cmdlet 會使用下列參數:
| 參數 | 描述 | 注意事項 |
|---|---|---|
| -URL | Project Online 實例的 URL。 | 必要 |
| -ClaimsAccount | 使用者的 ClaimsAccount。 | 需要宣告帳戶或 ResourceID。 |
| -ResourceId | 用戶的資源 GUID。 | 需要宣告帳戶或 ResourceID。 |
| -UpdateDisplayName | 使用者的新顯示名稱 | 如果使用,也需要 RedactTimesheet。 |
| -RedactTimesheet | 將變更套用至時程表? ($true 或 $false) |
您可以透過下列方式使用 Invoke Cmdlet 和參數:
案例 1:從 Project Online 實例中刪除用戶的資訊,但顯示名稱除外
使用此命令將會從 PWA 網站移除用戶的數據,但顯示名稱除外。 如果使用者的顯示名稱位於共享專案中,例如專案中的工作擁有者或時程表中的專案,您的組織可能會想要保留使用者的顯示名稱以供稍後檢閱。
請注意,您可以依宣告帳戶或資源標識符來指定使用者。
使用宣告帳戶
如果您要依宣告帳戶指定使用者,請以下列方式使用 Cmdlet
Invoke-SPProjectRedactUser -Url <PWASiteURL> -ClaimsAccount <ClaimsAccount>
例如,下列內容會移除具有宣告 :0#.w| 之使用者的所有數據整個網站的 https://contoso.sharepoint.com/sites/pwacontoso/bob,使用者的顯示名稱除外。
*Invoke-SPProjectRedactUser -Url
https://contoso.sharepoint.com/sites/pwa-ClaimsAccount “i:0#.w|contoso\evac”
*
執行此命令時,會顯示訊息,要求您確認是否要繼續。
確認並成功完成腳本之後,會顯示一則訊息,指出:已移除資源 <用戶顯示名稱> 的所有數據,但資源名稱除外。
使用資源標識碼
如果您要依資源識別元指定使用者,請以下列方式使用 Cmdlet:
Invoke-SPProjectRedactUser -Url <PWASiteURL> -ResourceID <ResourceID>
例如,下列內容會移除整個https://contoso.sharepoint.com/sites/pwa網站中資源標識符為 0c7cd3fb-a0be-e111-9fte-00155d022d022681 的使用者所有用戶數據,但使用者的顯示名稱除外
Invoke-SPProjectRedactUser -Url
https://contoso.sharepoint.com/sites/pwa-ResourceId 0c7cd3fb-a0be-e111-9fte-00155d022d022681
執行此命令時,會顯示訊息,要求您確認是否要繼續。
確認並成功完成腳本之後,會顯示一則訊息,指出:已移除資源 <使用者資源標識> 碼的所有數據,但資源名稱除外。
案例 2:從 Project Server 實例刪除使用者的資訊,但會在任何地方更新顯示名稱
使用此命令會從 Project Online 實例中移除使用者的用戶數據,並將使用者的顯示名稱變更為他們選擇的名稱,而且也會出現在時程表記錄中。 您的組織可能會想要將使用者的顯示名稱變更為將使用者的身分識別設為匿名的名稱,例如「已刪除的使用者」。
請注意,您可以依宣告帳戶或資源標識符來指定使用者。
使用宣告帳戶
如果您是以登入名稱指定使用者,請以下列方式使用 Cmdlet:
Invoke-SPProjectRedactUser -Url <PWASiteURL> -ClaimsAccount <ClaimsAccount> -UpdateDisplayName “<newDisplayName>” -RedactTimesheet $true
例如,下列內容會移除 的所有用戶數據,並將他的顯示名稱變更為 evac@contoso.onmicrosoft.com 整個 *的 「已刪除的使用者」https://contoso.sharepoint.com/sites/pwa* site。
Invoke-SPProjectRedactUser -Url https://contoso.sharepoint.com/sites/pwa -ClaimsAccount “i:0#.w|contoso\evac” -UpdateDisplayName “Deleted User” -RedactTimesheet $true
執行此命令時,會顯示訊息,要求您確認是否要繼續。
確認並成功完成腳本之後,會顯示一則訊息,指出:已移除資源 <使用者登入名稱> 的所有數據,而且資源名稱已變更為 <更新的顯示名稱> ,包括時程表記錄。
使用資源標識碼
如果您要依資源識別元指定使用者,請以下列方式使用 Cmdlet:
Invoke-SPProjectRedactUser -Url <PWASiteURL> -ResourceID ResourceID <> -UpdateDisplayName “<newDisplayName>” -RedactTimesheet $true
例如,下列內容會移除資源標識符為 0c7cd3fb-a0be-e111-9fte-00155d022d022681 的使用者所有用戶數據,並且在整個 *https://contoso.sharepoint.com/sites/pwa* site中將顯示名稱變更為 “Deleted User”。
Invoke-SPProjectRedactUser -Url
https://contoso.sharepoint.com/sites/pwa-ResourceId 0c7cd3fb-a0be-e111-9fte-00155d022d022681 -UpdateDisplayName “Deleted User” -RedactTimesheet $true
執行此命令時,會顯示訊息,要求您確認是否要繼續。
確認並成功完成腳本之後,會顯示一則訊息,指出:已移除資源 <使用者資源標識> 碼的所有數據,且資源名稱已變更為 <更新的顯示名稱> ,包括時程表記錄。
案例 3:從 Project Web App 網站刪除使用者的資訊,但變更時程表記錄以外的所有位置顯示名稱
使用此命令會從 Project Web App 網站移除用戶的數據,並將使用者的顯示名稱變更為您指定的名稱,但不會出現在時程表記錄中。 您的組織可能想要稍後分析他們是否有商業理由要將用戶顯示名稱保留在其時程表記錄中。
請注意,您可以依宣告帳戶或資源標識符來指定使用者。
使用宣告帳戶
如果您要依宣告帳戶指定使用者,請以下列方式使用 Cmdlet:
Invoke-SPProjectRedactUser -Url <PWASiteURL> -ClaimsAccount <ClaimsAccount> -UpdateDisplayName “<newDisplayName>” -RedactTimesheet $false
例如,下列內容會移除 的所有數據,並且會將其顯示名稱變更為evac@contoso.onmicrosoft.com整個 *https://contoso.sharepoint.com/sites/pwa* site的「已刪除的使用者」,但時程表記錄除外。
Invoke-SPProjectRedactUser -Url
https://contoso.sharepoint.com/sites/pwa-ClaimsAccount “i:0#.w|contoso\evac” -UpdateDisplayName “Deleted User” -RedactTimesheet $false
執行此命令時,會顯示訊息,要求您確認是否要繼續。
確認並成功完成腳本之後,會顯示一則訊息,指出:確認並成功完成腳本之後,會顯示一則訊息,指出:已移除資源 <使用者登入名稱> 的所有數據,而且除了時程表記錄以外,資源的名稱已變更為 <更新的顯示名稱> 。
使用資源標識碼
如果您要依資源識別元指定使用者,請以下列方式使用 Cmdlet:
Invoke-SPProjectRedactUser -Url <PWASiteURL> -ResourceID <ResourceID> -UpdateDisplayName “<newDisplayName>” -RedactTimesheet $false
例如,下列內容會移除資源標識符為 0c7cd3fb-a0be-e111-9fte-00155d022d0222681 的使用者所有個人資料,並將顯示名稱變更為整個 https://contoso.sharepoint.com/sites/pwa 網站中的「已刪除的使用者」,但時程表記錄除外。
Invoke-SPProjectRedactUser -Url
https://contoso.sharepoint.com/sites/pwa-ResourceId 0c7cd3fb-a0be-e111-9fte-00155d022d022681 -UpdateDisplayName “Deleted User” -RedactTimesheet $false
執行此命令時,會顯示訊息,要求您確認是否要繼續。
確認並成功完成腳本之後,會顯示一則訊息,指出:已移除資源 <使用者登入名稱> 的所有數據,而且除了時程表記錄以外,資源的名稱已變更為 <更新的顯示名稱> 。
步驟 9 - 從封存的物件修訂資源資訊
封存的項目數據
針對已修訂資源的專案:
在 Project Web App 設定中,選擇 [刪除企業物件]。
選擇 [刪除封存的專案]。
刪除必要的封存專案。
封存的非項目數據
Project Server 只會保留下列封存項目的單一版本:
企業資源集區和行事曆
企業自訂欄位
企業通用
進行新的 系統管理備份。 這會以已修訂資源個人資料的版本覆寫舊版。
步驟 10 - 清除 Project 用戶端用戶連線到 PWA 網站的快取
在 Project 專業版 或 Project Online 桌面用戶端連線到 Project Online 實例的所有裝置上,IT 系統管理員必須清除快取。 清除快取可防止刪除使用者資訊的專案從保留在系統上的快取數據更新。 您也必須先確定用戶端上沒有開啟任何用戶的專案,再清除快取。
若要清除 Project 專業版 2016 和 Project Online Desktop Client 中的快取:
選取 [ 檔案] 功能表,然後按下 [ 選項]。
在 [ 項目選項] 頁面上,選取 [ 儲存]。
在 [ 快取] 區段中,選取 [ 清除快取]。