共用方式為


從 Project Server 2019 公開預覽中刪除使用者資料

重要!:從 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 中刪除特定使用者資訊的程式概觀:

  1. Microsoft 下載中心下載匯出腳本。

  2. 在您的環境中尋找 PWA 網站:尋找 Project Server 伺服器陣列中Project Web App實例的清單。

  3. 尋找使用者的資源識別碼:在每個Project Web App實例上,指定使用者的宣告帳戶,以尋找使用者的唯一資源識別碼。

  4. 關閉所有使用者的專案:這可確保對使用者具有資訊的所有專案進行變更。

  5. 將工作區專案同步至 Project Server

  6. 執行使用者資料的導出:此程式會在 Project Server 2019 公開預覽版中匯出使用者資料中說明。

  7. 從問題和風險中刪除使用者個人資料

  8. 從 PWA 網站刪除使用者的資料: 執行腳本,從每個 PWA 網站刪除使用者的資訊。

  9. 從封存的物件修訂資源資訊:

  10. 清除連線到 PWA 網站之 Project 用戶端使用者的快取

步驟 1 - 下載匯出腳本檔案

按一下 這裡 下載匯出腳本。

關於執行匯出腳本的重要注意事項:

  • 在資訊所在的資料庫內容中執行 .sql 腳本。 您必須擁有資料庫的db_datareader許可權。

  • 您可能需要「解除封鎖」zip 檔案,因為根據預設,不允許執行從網際網路下載的腳本。 請執行下列動作來解除封鎖您的檔案:

  1. 在檔案總管中,移至您儲存 zip 檔案的位置。

  2. 以滑鼠右鍵按一下 zip 檔案,然後按一下 [ 屬性]

  3. 在 [ 一般] 索引標籤上,選取 [ 解除封鎖]。 

  4. 按一下 [確定]。

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 伺服器設定強制檢查項目。

  1. 在 [ 伺服器設定] 頁面的 [ 佇列和資料庫管理 ] 區段中,按一下 [ 強制存回企業物件]

  2. 在 [ 強制存回企業物件 ] 頁面上,從專案清單中選取需要核取之專案旁邊的核取方塊,然後按一下 [ 簽入]

  3. 系統會顯示一則訊息,詢問您是否確定要強制簽入。 按一下 [確定]。

步驟 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 * 網站中的「已刪除的使用者」。

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 * 網站中的 「已刪除的使用者」。

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 * 網站中的「已刪除的使用者」,但時程表記錄除外。

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 - 從封存的物件修訂資源資訊

封存的專案資料

針對已修訂資源的專案:

  1. 在Project Web App設定中,選擇[刪除企業物件]

  2. 選擇 [刪除封存的專案]

  3. 刪除必要的封存專案。

封存的非專案資料

Project Server 只會保留下列封存專案的單一版本:

  • 企業資源集區和行事曆

  • 企業自訂欄位

  • 企業通用

進行新的 系統管理備份。 這會以已修訂資源個人資料的版本覆寫舊版。

步驟 10 - 清除 Project 用戶端使用者連線到 PWA 網站的快取

在Project 專業版或Project Online桌面用戶端連線到Project Online實例的所有裝置上,IT 系統管理員必須清除快取。 清除快取可防止刪除使用者資訊的專案從保留在系統上的快取資料更新。 您也必須先確定用戶端上沒有開啟任何使用者的專案,再清除快取。

若要清除 Project 專業版 2016 和 Project Online Desktop Client 中的快取:

  1. 選取 [ 檔案] 功能表,然後按一下 [ 選項]

  2. 在 [ 專案選項] 頁面上,選取 [ 儲存]

  3. 在 [ 快取] 區段中,選取 [ 清除快取]