共用方式為


從 Project Server 匯出使用者資料

重要!:本文說明如何從 Project Server 2016、Project Server 2013 或 Project Server 2010 匯出使用者資料。 從 Project Server 2019 匯出使用者資料的程式與舊版非常不同,而且不包含在本文中。 若要瞭解如何從舊版 Project Server 2019 公開預覽版匯出使用者資料,請參閱 在 Project Server 2019 公開預覽版中匯出使用者資料

您的組織可以從 Project Server 環境匯出特定使用者的內容。 若要匯出此內容,Project Server 伺服器陣列管理員可以遵循下列步驟:

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

步驟 2- 在 SharePoint Server 伺服器陣列中尋找Project Web App實例

步驟 3- 匯出使用者的工作區專案

步驟 4 - 在每個 PWA 網站上尋找使用者的資源識別碼或宣告帳戶

步驟 5 - 尋找包含您要尋找之使用者的專案

步驟 6 - 匯出資料的其他查詢

步驟 7 - 封存的專案

步驟 8 - 尋找並儲存附件、檢視和 VBA 檔案

程式概觀

以下是從Project Web App匯出特定使用者資訊的程式概觀:

  1. 下載匯出腳本:下載 .sql 和 Microsoft PowerShell 腳本以匯出使用者資料。

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

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

  4. 執行使用者資料的導出:使用 Scipt 匯出您想要檢閱的資訊。

    針對不同版本的 Project Server 使用腳本

本文適用于 Project Server 2016、Project Server 2013 和 Project Server 2010。 雖然一般程式適用于這三個版本,但有些特定專案可能適用于不同的版本,特別是在執行 SQL 腳本時。 下列各節會記下這些資訊。 請確定您已將最新的更新部署到伺服器陣列和Project 專業版用戶端。

注意事項

專案作者不會匯出為本文中程式的一部分。

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

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

下載包含一個 ZIP 檔案,其中包含每個 Project Server 版本的個別資料夾。 使用您版本或 Project Server 的腳本,如下列步驟 5 所述。

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

  • 腳本資料夾包含數個 .wsdl 檔案。 PowerShell 腳本需要這些專案。 當您執行它們時,請確定它們與 PowerShell 腳本位於相同的目錄中。

  • SetupReportingProcedures201x.sql 腳本會暫時在 sql 會話內可用的記憶體中建立一些全域預存程式。 下列腳本需要這些預存程式:

    • ExportReportingProject201x.sql

    • ExportReportingResource201x.sql

    • ExportTimesheetReporting201x.sql

注意事項

執行任何腳本之前,請先執行 SetupReportingProcedures201x.sql。

  • 每個腳本都有一或多個必須定義的變數,例如 UserID 或資料庫名稱,才能執行它。 請檢查腳本本身中的描述區段,以取得任何必要的參數。

  • 在資訊所在的資料庫內容中執行每個 .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 資料庫 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

在 SharePoint Server 2010 伺服器陣列中尋找Project Web App實例

針對 Project Server 2010,您也需要尋找 Project Server PSI 服務應用程式 的服務應用程式識別碼。 使用下列參數執行 Get-ServiceApplication PowerShell Cmdlet 來執行此動作:

Get-SPServiceApplication | ? { $_.TypeName -eq "Project Server PSI Service Application" } | ft -a

這也會傳回 Project Server 服務應用程式的名稱。 然後,您可以使用 Get-SPProjectWebInstance Cmdlet 來傳回四個 Project Server 資料庫的名稱,方法是使用 -ServiceApplication 參數來指定服務應用程式名稱:

Get-SPProjectWebInstance -ServiceApplication "Project Server"  | ft -a Url,PrimaryServer,PublishedDatabase,DraftDatabase,ArchiveDatabase,ReportingServer,ReportingDatabase

您必須能夠參考每個資料庫的資料庫名稱。

注意事項

Project Server 2010 報表資料庫可以位於與其他三個資料庫不同的SQL Server實例上。

步驟 3 - 匯出使用者的工作區專案

執行 ExportWorkspaceItemsByDisplayName201x.sql 腳本,並使用使用者可能的顯示名稱來搜尋資料, (部分名稱搜尋) 。

針對 Project Server 2010 在報表資料庫上執行腳本,或在適用于更新版本之相關 PWA 月臺的資料庫上執行腳本。 在步驟 1 提供的範例結果中,所有三個Project Web App實例的資料庫都會WSS_Content

在腳本中提供下列參數的值:

參數 描述
僅@siteID (Project Server 2016)
您要在其中尋找使用者資源識別碼之網站的 PWA 網站識別碼。 您在步驟 1 中找到 PWA 網站的 PWA 網站識別碼值。
@resDisplayName
Project Server 使用者的顯示名稱或部分顯示名稱。

步驟 4 - 在每個 PWA 網站上尋找使用者的資源識別碼或宣告帳戶

取得 Project Server 伺服器陣列上所有 PWA 網站的資訊之後,接下來您必須找到要刪除其個人資料之使用者的資源識別碼 (ResID) 或宣告帳戶。 在步驟 1 中探索到的每個 PWA 網站上執行此動作 (,因為每個 PWA 實例) 的 ResID 不同。

執行 FindUser201x.sql SQL 腳本來尋找使用者的資源識別碼或宣告帳戶。

注意事項

您必須在 SQL Server Management Studio 中執行 FindUser201x.sql SQL 腳本,而且必須具有伺服器陣列管理員許可權,才能存取適當的資料庫。

在 Project Server 2010 的已發行資料庫上,或在相關 PWA 月臺的資料庫上執行腳本,以供更新版本使用。 在步驟 1 提供的範例結果中,所有三個Project Web App實例的資料庫都會WSS_Content

在腳本中提供下列參數的值:

參數 描述
僅@siteID (Project Server 2016)
您要在其中尋找使用者資源識別碼之網站的 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'

腳本會傳回使用者的 [資源名稱]、[資源識別碼]、[電子郵件地址] 和 [宣告帳戶] 值。

步驟 5 - 尋找包含您要尋找之使用者的專案

您可以使用您在步驟 4 中找到的資源識別碼,找出使用者所涉及的專案。 這是使用 SQL 腳本來查詢針對專案清單儲存的 Project 資料來完成。

Project Server 中的每個資料存放區都有個別的腳本。 腳本的結果可能很類似,但如果您有尚未發佈的草稿專案,可能會看到一些差異。

執行腳本之前,請使用您要尋找的資源識別碼加以更新。

針對 Project Server 2010,執行下列腳本:

(務必閱讀每個腳本頂端的描述。某些腳本需要您新增資料庫名稱或更新其他參數。)

  • ExportDraftProjectList2010.sql

  • ExportPublishedProjectList2010.sql

  • ExportReportingProjectList2010.sql

針對 Project Server 2013,執行下列腳本:

  • ExportDraftProjectList2013.sql

  • ExportPublishedProjectList2013.sql

  • ExportReportingProjectList2013.sql

針對Project Server 2016,請執行下列腳本:

  • ExportDraftProjectList2016.sql

  • ExportPublishedProjectList2016.sql

  • ExportReportingProjectList2016.sql

檢查查詢的輸出,並判斷您要在其中尋找特定使用者資料的專案。 為了方便起見,您可能想要將清單從SQL Server匯出至 CSV 檔案。

當您決定要搜尋使用者資訊的專案時,請使用上述腳本所傳回的 ProjectUID,針對每個專案執行下列腳本:

針對 Project Server 2010,執行下列腳本:

(務必閱讀每個腳本頂端的描述。某些腳本需要您新增資料庫名稱或更新其他參數。)

  • ExportDraftProject2010.sql

  • ExportPublishedProject2010.sql

  • ExportReportingProjects2010.sql

  • ExportReportingProjectTimephasedData2010.sql

針對 Project Server 2013,執行下列腳本:

  • ExportDraftProject2013.sql

  • ExportPublishedProject2013.sql

  • ExportReportingProjects2013.sql

  • ExportReportingProjectTimephasedData2013.sql

針對Project Server 2016,請執行下列腳本:

  • ExportDraftProject2016.sql

  • ExportPublishedProject2016.sql

  • ExportReportingProjects2016.sql

  • ExportReportingProjectsTimephased2016.sql

如需這些查詢輸出值的相關資訊,請參閱 報表資料中的專案特定使用者資料

如果您需要其他使用者資訊,請參閱步驟 6 以取得腳本,以擷取資源、時程表、狀態等的相關資訊。

步驟 6 - 匯出資料的其他查詢

執行這些額外的查詢,以尋找資源、時程表、狀態等的其他資訊。

如需如何執行 PowerShell 腳本 的資訊,請參閱下面的執行 PowerShell 腳本。

從 Project Server 2010 匯出資料

若要從 Project Server 2010 匯出資料,請使用 .sql 腳本和 Microsoft PowerShell 腳本,如下表所述。 如需輸出中每個欄位的詳細資訊,請參閱 輸出定義 資料行中的連結。

(務必閱讀每個腳本頂端的描述。某些腳本需要您新增資料庫名稱或更新其他參數。)

匯出選項 執行下列腳本: 輸出定義
作品集
ExportPortfolioModels2010.sql
司機
優先順序
分析
資源計劃
Export-ResourcePlanTimephasedData2010.ps1
ExportResourcePlans2010.sql
ExportReportingResourcePlans2010.sql
ResourcePlan
資源
ExportResource2010.sql
ExportReportingResource2010.sql
資源
ReportingResource
安全性
ExportSecurity2010.sql
安全性
服務設定
ExportServerSettings2010.sql
QueueJobs
CustomFields
LookupTables
行事曆
UnsubscribedAlerts
SubscribedReminders
ReminderEmails
代表團
狀態報表
ExportStatusReports2010.sql
StatusReports
TaskStatus
ExportAssignmentsSavedData2010.sql
ExportSubmittedTaskStatusUpdates2010.sql
ExportAssignmentTransactionHistory2010.sql
ExportAssignmentHistoryData2010.ps1
ExportSavedTaskStatusUpdates2010.sql
Export-SavedTaskStatusUpdates2010.ps1 (附注)
StatusAssignSaved
StatusAssignHistory
時程表
ExportTimesheets2010.sql
ExportReportingTimesheets2010.sql
時程表
Timesheets_Reporting
使用者檢視設定
Export-UserViewSettings2010.ps1
UserViewSettings
工作流程
ExportWorkflow2010.sql
工作流程
工作區專案
ExportWorkspaceItemsByDisplayName2010.sql
WorkspaceItems

從 Project Server 2013 匯出資料

若要從 Project Server 2013 匯出資料,請使用 .sql 腳本和 Microsoft PowerShell 腳本,如下表所述。 如需輸出中每個欄位的詳細資訊,請參閱 輸出定義 資料行中的連結。

匯出選項 執行下列腳本: 輸出定義
作品集
ExportPortfolioModels2013.sql
司機
優先順序
分析
資源計劃
ExportResourcePlanTimephasedData2013.ps1
ExportResourcePlans2013.sql
ResourcePlan
資源
ExportResource2013.sql
ExportReportingResource2013.sql
資源
ReportingResource
安全性
ExportSecurity2013.sql
安全性
服務設定
ExportServerSettings2013.sql
QueueJobs
CustomFields
LookupTables
行事曆
UnsubscribedAlerts
SubscribedReminders
ReminderEmails
代表團
狀態報表
ExportStatusReports2013.sql
StatusReports
TaskStatus
ExportAssignmentsSavedData2013.sql
ExportSubmittedTaskStatusUpdates2013.sql
ExportAssignmentTransactionHistory2013.sql
ExportAssignmentHistoryData2013.ps1
ExportSavedTaskStatusUpdates2013.sql
Export-SavedTaskStatusUpdates2013.ps1 (附注)
StatusAssignSaved
StatusAssignHistory
時程表
ExportTimesheets2013.sql
ExportReportingTimesheets2013.sql
時程表
Timesheets_Reporting
使用者檢視設定
Export-UserViewSettings2013.ps1
UserViewSettings
工作流程
ExportWorkflow2013.sql
工作流程
工作區專案
ExportWorkspaceItemsByDisplayName2013.sql
WorkspaceItems

從 Project Server 2016 匯出資料

若要從Project Server 2016匯出資料,請使用 .sql 腳本和 Microsoft PowerShell 腳本,如下表所述。 如需輸出中每個欄位的詳細資訊,請參閱 輸出定義 資料行中的連結。

匯出選項 執行下列腳本: 輸出定義
Engagements
ExportEngagementScripts2016.sql
投入
作品集
ExportPortfolioModels2016.sql
司機
優先順序
分析
資源計劃
ExportResourcePlans2016.sql
ResourcePlan
資源
ExportResource2016.sql
ExportReportingResource.sql
資源
ReportingResource
安全性
ExportSecurity2016.sql
安全性
服務設定
ExportServerSettings2016.sql
QueueJobs
CustomFields
LookupTables
行事曆
UnsubscribedAlerts
SubscribedReminders
ReminderEmails
代表團
狀態報表
ExportStatusReports2016.sql
StatusReports
TaskStatus
ExportAssignmentsSavedData2016.sql
ExportSubmittedTaskStatusUpdates2016.sql
ExportAssignmentTransactionHistory2016.sql
ExportAssignmentHistoryData.ps1
ExportSavedTaskStatusUpdates2016.sql
Export-SavedTaskStatusUpdates2016.ps1
StatusAssignSaved
StatusAssignHistory
時程表
ExportTimesheets2016.sql
ExportReportingTimesheets2016.sql
時程表
Timesheets_Reporting
使用者檢視設定
Export-UserViewSettings2016.ps1
UserViewSettings
工作流程
ExportWorkflow2016.sql
工作流程
工作區專案
ExportWorkspaceItemsByDisplayName2016.sql
WorkspaceItems

步驟 7 - 封存的專案

ExportArchievdData201x.sql 會傳回下列儲存在與資源相關之封存資料庫中的資料。

匯出選項 輸出定義
封存的專案 - 行事曆 行事曆
封存的專案 - 自訂欄位 CustomFields
封存的專案 - 查閱表格 查閱表格
封存的專案 - 專案 專案清單
ProjectVersionId (封存版本識別碼)
ProjectVersionDescription (備份) 的日期和時間
ProjectVersionDate (備份) 的日期
封存的專案 - 資源 資源
封存的專案 - 資源自訂欄位 資源 - 自訂欄位

封存的專案資料:匯出封存的專案:

  1. 封存目前的專案。 (2010)
  2. 還原封存的版本。 (2010)
  3. 匯出使用者相關資料。
  4. 從封存還原專案。

封存的非專案資料:

  1. 使用 SharePoint 備份和複 原 (2010) 來建立目前伺服器陣列的複本。
  2. 從系統管理備份和還原封存專案 (請參閱先前的程式) 。
  3. 匯出使用者相關資料。

步驟 8 - 尋找並儲存附件、檢視和 VBA 檔案

若要尋找附件和檢視,建議您將指定的專案匯出至 XML。 若要這樣做,請在 Project 專業版 中開啟它,然後將它儲存為 XML 檔案。 一旦您有想要檢閱之專案的 XML 檔案,請參閱在 Project Online 中尋找自訂的使用者專案和 Project Server 使用者匯出資料

執行 PowerShell 腳本

下表顯示指定腳本所需的參數。 以伺服器陣列管理員身分在 SharePoint 管理命令介面中執行每個腳本。

指令碼 參數
ResourcePlanTimephasedData201x.ps1
Export-SavedTaskStatusUpdates201x.ps1
ExportTaskStatusUpdateHistory201x.ps1
ProjectServerURL
渣 油
OutputPath
PromptForCredential
UseWebLogin
Sync-ProjectWorkspace201x.ps1 ProjectServerURL
ProjectId
PromptForCredential
UseWebLogin
Export-UserViewSettings201x.ps1 ProjectServerURL
渣 油
OutputPath

下表將說明這些參數。

參數 描述
ProjectServerURL PWA 網站的 URL
渣 油 使用者的資源識別碼
OutputPath 儲存匯出檔案的位置。
ProjectId 要同步處理的專案工作區

也請在每次執行腳本時包含下列其中一個授權參數:

驗證參數 描述
[沒有傳入任何專案] 以目前的使用者身分使用 NTLM 和 Kerberos 通訊協定進行驗證。
PromptForCredential 使用基本或摘要通訊協定進行驗證,或使用 NTLM 和/或 Kerberos 與不同的使用者進行驗證。
UseWebLogin 使用表單和 ADFS/SAML 通訊協定進行驗證。

例如:

.\Export-UserViewSettings2016.ps1 -ProjectServerURL "https://pwa" -resId "55efd6ff-853c-4fec-8abd-6df2c90b94e5" -OutputPath "C:\"

如需參數的進一步範例和資訊,請參閱每個 PowerShell 腳本檔案。

執行 Export-SavedTaskStatusUpdates201x.ps1 (2010 和 2013 僅)

若要執行Export-SavedTaskStatusUpdates201x.ps1腳本,您必須以匯出之使用者的委派身分執行,才能檢視儲存的指派。 請使用下列程序:

  1. 在 Project Server 中開啟委派
  2. 針對要匯出的使用者啟用委派許可權
  3. 自行啟用委派許可權以委派為該使用者。 (身為系統管理員,您可能已經擁有 permissions.)
  4. 將自己設定為要匯出之使用者的委派
  5. 登入 Project Web App。
  6. 按一下齒輪圖示,然後按一下 [做為委派]
  7. 啟動委派會話。
  8. 執行 Export-SavedTaskStatusUpdates201x.ps1 PowerShell 腳本。
  9. 停止委派會話。

另請參閱

從 Project Server 刪除使用者資料