從 Project Server 2019 匯出使用者資料
重要!:從 Project Server 2019 匯出用戶數據的程式與 Project Server 2016、Project Server 2013 和 Project Server 2010 所使用的程式非常不同。 若要瞭解如何從舊版 Project Server 匯出用戶數據,請參閱 從 Project Server 導出用戶數據。
程式概觀
以下是從 Project Server 2019 中的 Project Web App 網站匯出特定使用者資訊的程式概觀:
下載匯出腳本:下載.sql和 Microsoft PowerShell 腳本以匯出用戶數據。
在您的環境中尋找 PWA 網站:在 Project Server 伺服器陣列中尋找 Project Web App 實例的清單。
匯出使用者的工作區專案:在專案網站中尋找用戶數據。
尋找使用者的資源識別碼:在每個 Project Web App 實例上,尋找使用者的唯一資源標識符。 您也可以選擇指定使用者宣告。
執行使用者數據的匯出:使用腳本匯出您想要檢閱的資訊。
檢閱匯出的內容:查看匯出的數據,以取得使用者的相關信息。
封存的專案: 在封存的資料庫中尋找使用者的相關數據。
尋找並儲存自定義檢視、自定義篩選、附件和宏: 找出自定義專案。
您需要手動匯出的數據:尋找匯出中未包含的用戶數據。
步驟 1 - 下載匯出腳本檔案
從 Microsoft 下載中心下載匯出腳本。
關於執行匯出文稿的重要注意事項:
在資訊所在的資料庫內容中執行.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 - 匯出使用者的工作區專案
執行 ExportWorkspaceItemsByDisplayName2019.sql 腳本,並使用使用者的可能顯示名稱來搜尋數據, (部分名稱搜尋) 。
注意:您必須在 SQL Server Management Studio 中執行ExportWorkspaceItemsByDisplayName2019.sql SQL 腳本,而且必須具有伺服器數位管理員許可權,才能存取適當的資料庫。
在相關 PWA 月臺的資料庫上執行腳本。 在步驟 1 提供的範例結果中,會WSS_Content這三個 Project Web App 實例的資料庫。
在文稿中提供下列參數的值:
參數 | 描述 |
---|---|
@siteID | 您要在其中尋找使用者資源識別碼之網站的 PWA 網站識別碼。 您在步驟 1 中找到 PWA 網站的 PWA 網站識別碼值。 |
@searchName | Project Server 使用者的顯示名稱。 |
步驟 4 - 在每個 PWA 網站上尋找使用者的資源識別碼或宣告帳戶
取得 Project Server 伺服器陣列上所有 PWA 網站的信息之後,接下來您必須找到要刪除其個人資料之使用者的資源識別碼 (ResID) 或宣告帳戶。 在步驟 1 中探索到的每個 PWA 網站上執行此動作 (,因為每個 PWA 實例) 的 ResID 不同。
執行 FindUser2019.sql SQL 腳本以尋找使用者的資源識別碼或宣告帳戶。
在文稿中提供下列參數的值:
參數 | 描述 |
---|---|
@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'
腳本會傳回使用者的 [資源名稱]、[資源標識符]、[電子郵件位址] 和 [宣告帳戶] 值。
步驟 5 - 從 PWA 網站匯出用戶的數據
接下來,您必須執行** ExportProjectUserContent** PowerShell 腳本,以從 Project Server 環境中的每個 PWA 網站匯出用戶的數據。 若要執行文稿,您必須確定您和環境符合必要條件。
必要條件
- Project Online Desktop Client 或 Project Professional 2019 公開預覽版:您將需要 Project Online Desktop Client 或 Project Professional 2019,並聯機到 Project PWA 實例。
若要將 Project 用戶端連線到 Project PWA 實例:
按兩下 [檔案] 索引標籤以開啟Backstage檢視。 按兩下 [資訊],然後按兩下 [ 管理 帳戶]。
在 [ Project Web App 帳戶] 對話框中,按兩下 [ 新增]。
在 [ 帳戶屬性] 對話框的 [帳戶名稱] 方塊中輸入此 帳戶的名稱 。
在 [ Project Server URL ] 方塊中,輸入您要連線的 PWA 網站 URL。
按一下確定。
在 [ Project Web App 帳戶 ] 對話框中,選 取 [設定為預設值], 然後按兩下 [ 確定]。
重新啟動 Project,然後登入 PWA 網站。
許可權: 若要擁有執行文稿的必要許可權,您必須至少執行下列其中一項:
將您自己新增為執行文本之 PWA 網站的網站集合管理員。
如果您處於 Project 許可權模式,請獲指派 [管理使用者和群組 ],以及 Project Server 實例上的 存取 Project Server Reporting Service 許可權。 如果您處於 SharePoint 許可權模式,請擔任 SharePoint 系統管理員角色。
執行 ExportProjectUserContent 腳本
使用 ExportProjectUserContent.ps1 PowerShell 腳本來匯出用戶的數據。
執行文稿時,您必須設定四個參數。
-Url | PWA 網站的 URL |
---|---|
-ResourceID | 用戶的資源標識碼。 |
-ClaimsAccount | 使用者的宣告帳戶 |
-OutputDirectory | 儲存匯出檔案的位置。 |
您也必須選擇驗證方法。
參數 | 描述 |
---|
驗證參數 | 描述 |
[沒有傳入任何專案] | 以目前的使用者身分使用NTLM和 Kerberos 通訊協議進行驗證。 |
-PromptForCredential | 使用基本或摘要通訊協議進行驗證,或使用NTLM和/或 Kerberos 與不同的使用者進行驗證。 |
-UseWebLogin | 使用表單和 ADFS/SAML 通訊協定進行驗證。 |
您可以藉由指定使用者的資源識別碼或登入名稱,選擇執行腳本。
使用使用者資源標識碼執行 ExportProjectUser 腳本
您會在 Powershell 中使用下列命令,並搭配上面所列的參數:
.\ExportProjectUserContent.ps1 -Url <PwaSiteURL> -ResourceUid <UsersResourceID> -OutputDirectory <LocationToStoreOutput>
例如,如果您想要從 Costoso PWA1 網站匯出使用者數據, (資源標識符為 cb5c91cf-fd6b-e711-80d0-00155da4a406 的使用者的網站 URL https://contoso/sites/pwa1) ,並且讓導出檔案儲存至 c:\pwa1siteOutput,您會輸入:
.\ExportProjectUserContent.ps1 -Url https://contoso/sites/pwa1 -ResourceUid cb5c91cf-fd6b-e711-80d0-00155da4a406 -OutputDirectory c:\pwa1siteOutput
使用使用者宣告帳戶執行 ExportProjectUser 腳本
您會在 Powershell 中使用下列命令,並搭配上面所列的參數:
.\ExportProjectUserContent.ps1 -Url <PwaSiteURL> -ClaimAccount <UsersClaimAccount> -OutputDirectory <LocationToStoreOutput>
例如,如果您想要從 Costoso PWA1 網站匯出使用者數據, (登入名稱為 之AdamB@contoso.onmicrosoft.com使用者的https://contoso/sites/pwa1)網站 URL,並將匯出檔案儲存至 c:\pwa1siteOutput,您會輸入:
.\ExportProjectUserContent.ps1 -Url https://contoso/sites/pwa1 -LoginName AdamB@contoso.onmicrosoft.com -OutputDirectory c:\pwa1siteOutput
成功執行腳本之後,所有匯出的數據都會儲存在您指定的 -OutputDirectory 中。
選取要導出的特定功能相關用戶數據檔
您收到的一些匯出用戶內容會包含一些 json 格式的檔案,其中包含功能特定的用戶資訊。 例如,Security.json檔案包含使用者安全組、類別和許可權設定的相關數據。 下一節將詳細說明這些 功能相關的 json 檔案 。 根據預設,當您執行 ExportProjectUserContent 腳本時,會收到所有 27 個功能相關的 json 檔案。 不過,您可以使用 -Options 參數來選取要下載的特定 json 檔案。 包括下列各項:
-Options 值 | 您收到的 JSON 檔案 |
---|---|
全部 | 所有功能相關的 json 檔案、所有專案特定的 json 檔案,以及所有專案清單檔案。 |
Engagements | Engagements_page#.json |
資源 | Resource.json、ReportingResource.json |
作品集 | BusinessDrivers.json、DriverPrioritizations.json、PortfolioAnalyses.json |
專案 | DraftProjectList.xml 、PublishedProjectList.xml。 ReportingProjectList 針對使用者所屬的每個專案,您也會收到下列其中一項: Project_projName_draft.json、Project_projName_draft.mpp、Project_projName_draft.xml、 Project_projName_published.json、Project_projName_ published.mpp、Project_projName_ published.xml、 Project_projName_reporting.json、Project_projName_reporting_Tasks、Project_projName_reporting_Assignments、Project_projName_reporting_Resources、Project_projName_reporting_Baselines、Project_projName_reporting_TaskTimephased、Project_projName_reporting_AssignmentTimephased、Project_projName_reporting_TaskBaselineTimephased、Project_projName_reporting_ AssignmentBaselineTimephased |
ResourcePlans | ResourcePlans_page#.json、ReportingResourcePlans.json |
安全性 | Security.json |
ServerSettings | CustomFields.json、LookupTables.json、Calendars.json、Delegations.json、QueueJobs.json、SubscribedReminders.json、UnsubscribedAlerts.json、ReminderEmails.json AdminAudit.json |
時程表 | Timesheets_Reporting.json、Timesheets_page#.json 針對Timesheets_page#.json,您會取得每個頁面的檔案。 |
TaskStatus | Rules.json、TaskStatus_AssignmentsHistory_page#.json、TaskStatus_AssignmentsSaved.json、TaskStatus_AssignmentsSubmitted.json |
StatusReports | StatusReports.json |
工作流程 | Workflow.json |
WorkspaceItems | WorkspaceItems.json |
UserViewSettings | UserViewSettings.json |
如果您想要從 PWA 網站匯出特定功能的用戶數據,使用 -Options 參數會很有説明。 例如,如果您只在 [公事包分析] 功能中關注用戶的數據,您可以執行 -Options 參數,其值為 [公事包]:
.\ExportProjectUserContent.ps1 -Url https://contoso/sites/pwa1 -ResourceUid cb5c91cf-fd6b-e711-80d0-00155da4a406 -OutputDirectory c:\pwa1siteOutput -Options Portfolio
這可讓您匯出三個 json 檔案,其中包含與公事包分析功能 (BusinessDrivers.json、DriverPrioritizations.json、PortfolioAnalyses.json) 相关的用户数据。
步驟 6 - 檢閱匯出的內容
成功執行 ExportProjectUserContent PowerShell 腳本之後,您在執行命令時所指定的輸出目錄中會有下列輸出:
專案清單檔案 - 您會收到三個 .xml 檔案,其中提供包含在用戶所屬之專案草稿和已發佈架構中的項目清單。 這表示使用者已參與專案,至少為下列其中一項:
是項目擁有者。
在專案中將工作指派給他或她。
這是專案中工作的指派擁有者。
這是專案中工作的狀態管理員。
這三個 .xml 檔案如下:
名稱 | 描述 |
---|---|
DraftProjectList.xml | 對應至上述條件之草稿架構的項目清單。 |
PublishedProjectList.xml | 與上述條件對應之已發佈架構的項目清單。 |
ReportingProjectList.xml | 報表架構中對應至上述條件的項目清單。 |
這三個 .xml 檔案的項目清單可能稍有不同。 例如,使用者可以儲存專案,但無法發佈,這表示該專案會出現在 DraftProjectList.xml 檔案中,但不會出現在 PublishedProjectList.xml 或 ReportingProjectList.xml 檔案中。
項目系統管理員可以使用專案清單 .xml 檔案,提供他們想要分析哪些專案特定匯出檔案的相關信息,以決定應該與用戶共用多少匯出的內容。
這三個 ProjectList.xml 檔案都會針對列出的每個專案具有下列屬性:
屬性 | 描述 |
---|---|
SiteId | 專案所在 PWA 網站的唯一標識碼。 |
Proj_UID | 專案的唯一標識碼。 |
Proj_Name | 專案名稱。 |
- 功能相關的檔案 - 針對使用者所屬的每個 PWA 網站,下列功能特定的.json檔案會匯出至指定的輸出目錄。 功能特定的檔案會包含用戶數據,因為它與整個 PWA 網站的功能使用有關。 例如,Drivers.json檔案會包含使用者建立或擁有之公事包分析商務驅動程式的相關數據。 如果用戶沒有與特定 PWA 網站上功能相關的數據,檔案將不會包含任何數據。
功能特定的.json檔案包括:
名稱 | 描述 |
---|---|
AdminAudit | Project Web App 伺服器設定會變更數據。 |
BusinessDrivers | 產品組合分析商務驅動程序數據。 |
行事曆 | 企業行事曆數據。 |
CustomFields | 自訂欄位數據。 |
代表團 | 委派數據。 |
DriverPrioritizations | 商務驅動程式會排定數據的優先順序。 |
Engagements | 資源參與數據。 |
LookupTables | 查閱表格數據。 |
PortfolioAnalysis | 公事包會分析數據。 |
QueueJobs | 使用者作業的相關數據會透過佇列服務進行處理。 |
ReminderEmails | 提醒電子郵件數據。 |
ReportingResourcePlans | 資源報告數據。 |
資源 | 資源數據。 |
ResourcePlans | 資源計劃數據。 |
規則 | 規則數據。 |
安全性 | 安全組、類別和許可權的相關數據。 |
StatusReports | 狀態報表數據。 |
SubscribedReminders | 訂閱提醒數據。 |
TaskStatus_AssignmentsHistory | 狀態指派歷程記錄數據。 |
TaskStatus_AssignmentsSaved | 狀態指派會儲存數據。 |
TaskStatus_AssignmentsSubmitted | 狀態指派會提交數據。 |
時程表 | 時程表的相關數據。 |
Timesheets_Reporting | 報告有關時程表的數據。 |
UnsubscribedAlerts | 取消訂閱的警示數據。 |
UserViewSettings | 用戶檢視設定數據。 |
工作流程 | 專案工作流程數據。 |
WorkspaceItems | 來自項目網站的 SharePoint 專案相關數據。 |
某些功能特定的 json 檔案可能會很大,因此為了改善效能,下列 json 檔案會在多個檔案之間繁衍:
Engagements.json
ResourcePlans.json
Timesheets.json
TaskStatus_AssignmentHistory.json
注意:若要深入瞭解每個功能特定.json檔案中包含的物件,請參閱 Project Online 和 Project Server 導出數據定義的功能特定數據一節。
專案特定檔案 - 如果使用者是任何專案的一部分,則每個項目都會將數個個別檔案匯出至輸出目錄。 如果使用者是特定專案的一部分,就會發生這種情況,如下所示:
項目擁有者
在專案中將工作指派給他或她
這是專案中工作的指派擁有者
這是專案中工作的狀態管理員
專案特定數據與功能相關數據不同,因為數據是單一專案特有的。 功能相關數據可以包含使用者在 PWA 網站中屬於其中之許多專案的用戶數據,但與單一功能有關。
注意:對於您收到的所有專案特定檔案,它們前面會加上特定項目的 項目名稱。 例如,如果專案具有 Project1 的專案名稱,我們將在本節中描述的所有專案特定檔案前面加上 Project1。
針對使用者所屬的每個專案,您會收到下列三組檔案:
- 來自草稿和已發行資料庫的專案 .xml 檔案:
名稱 | 描述 |
---|---|
<projectName>_draft.xml | 從草稿架構儲存為 .xml 格式的項目檔。 |
<projectName>_published.xml | 已發行架構中儲存為 .xml 格式的項目檔。 |
注意: 請參閱 專案 XML 資料交換架構參考 ,以瞭解這些檔案中包含的 Project XML 數據。
- 來自草稿和已發行資料庫的專案.mpp檔案:
名稱 | 描述 |
---|---|
<projectName>_draft.mpp | 從草稿架構儲存為專案.mpp檔的項目檔。 |
<projectName>_published.mpp | 已發行架構中儲存為 Project .mpp 檔的項目檔。 |
注意事項
您可以使用 Project Professional 2016、Project Professional 2019 或 Project Online Desktop 用戶端開啟.mpp檔案。 不支援將導出的.mpp檔儲存回 Project Online 或 Project Server。
- 報告架構中專案的八個.json檔案:
名稱 | 描述 |
---|---|
<Project_projectName>_reporting_AssignmentBaselineTimephased.json | 從報表架構指派專案的基準時段數據。 |
<Project_projectName>_reporting_AssignmentTimephased.json | 報表架構中專案的指派時段數據。 |
<Project_projectName>_reporting_ProjectBaseline.json | 報表架構中專案的專案基準數據。 |
<Project_projectName>_reporting_Tasks.json | 報表架構中專案的專案工作數據。 |
<Project_projectName>_reporting_Assignments.json | 從報表架構指派專案的資源數據。 |
<Project_projectName>_reporting_Resources.json | 報表架構中項目的資源數據。 |
<Project_projectName>_reporting_TaskBaselineTimephased.json | 報表架構中專案的工作基準時段數據。 |
<Project_projectName>_reporting_TaskTimephased.json | 報表架構中專案的工作時段數據。 |
注意:若要深入瞭解每個.json檔案中包含的物件,請參閱 Project Online 匯出 json 物件定義的 Project 特定數據檔一節。
- 三個.json檔案,其中包含來自草稿、已發行和報告架構的專案元數據:
名稱 | 描述 |
---|---|
<projectName>_draft.json | 草稿架構中的專案元數據檔案 |
<projectName>_published.json | 來自已發佈架構的專案元數據檔案 |
<projectName>_reporting.json | 來自報表架構的專案元數據檔案 |
注意:若要深入瞭解每個.json檔案中包含的物件,請參閱 Project Online 和 Project Server 匯出數據定義的 Project 特定元數據檔案一節。
步驟 7 - 封存的專案
ExportArchievdData2019.sql 會傳回儲存在與資源相關之封存資料庫中的下列數據。
匯出選項 | 輸出定義 |
---|---|
封存的專案 - 行事曆 | 行事曆 |
封存的專案 - 自定義欄位 | CustomFields |
封存的專案 - 查閱表格 | 查閱表格 |
封存的專案 - 專案 |
項目清單 ProjectVersionId (封存版本標識碼) ProjectVersionDescription (備份) 的日期和時間 ProjectVersionDate (備份) 的日期 |
封存的專案 - 資源 | 資源 |
封存的專案 - 資源自定義欄位 | 資源 - 自定義欄位 |
封存的項目資料:匯出封存的專案:
封存的非項目資料:
使用 SharePoint 備份和復原 來建立目前伺服器陣列的複本。
從系統管理備份和還原封存專案 (請參閱先前的程式) 。
匯出使用者相關數據。
步驟 8 - 尋找並儲存自定義檢視、自定義篩選、附件和宏
接收導出的使用者內容之後,您可以使用資料來尋找使用者的自定義檢視、自定義篩選、自定義數據表、附件和宏。 若要尋找這些專案,您必須針對要搜尋的每個項目擁有 MPP 和 XML 檔案。 如需如何執行這項操作的詳細資訊,請 參閱在 Project Online 和 Project Server 用戶匯出數據中尋找自定義的用戶專案。
主要和插入項目的考慮
如先前所述,導出腳本只會匯出使用者身為擁有者、具有指派任務、工作分派擁有者,或是工作狀態管理員的專案。 當使用者是插入專案的一部分,而不是主專案時,只會匯出插入的專案。 同樣地,如果使用者只是主專案的一部分,而不是任何插入的專案,則只會匯出主要專案。
儲存使用者所屬的主要專案時,如果出現提示,您就不需要儲存任何相關聯的插入專案。
步驟 9 – 您需要手動匯出的數據
專案作者
不會使用上述步驟匯出專案的作者。 您可以執行ExportProjectAuthor2019.sql,以取得作者符合使用者顯示名稱或使用者宣告的項目清單。
參數 | 描述 |
---|---|
@siteID | 您要尋找使用者是否為專案作者之網站的 PWA 網站識別碼。 |
@searchName | Project Server 使用者的顯示名稱或宣告。 |