Export user data from Project Online

Your organization can export a specific user's content from your Project Online environment. To export this content, an Office 365 global administrator can follow these steps:

Work with your Project Admins

Depending on your company, your Office 365 global admin might be knowledgeable about managing Office 365 administrative tasks, but may know little about Project Online administration. If this is the case, we recommend that the Office 365 global admin work collaboratively with their PWA site admins to accomplish these tasks. For example, a Office 365 global admin would probably be best suited to run the PowerShell script to find all PWA sites, but would probably need to work collaboratively with the PWA admin to accomplish the remaining steps and for help regarding business rules and configuration of each PWA site.

Step 1 - Download the export script files

You will need the use of several PowerShell script files for the procedures in this article. The script files referenced in this article are contained in the Project Online User Content Export and Delete script package. Download and unzip the files to a location you can reference.

Some of the files included in this package are used to delete user data in Project Online and will not be needed for this article.

Unblock your files

You will need to "unblock" the files you downloaded in the Project Online User Content Export and Delete script package in order to user them in PowerShell. This is because by default, executing scripts downloaded from the Internet is not allowed. Do the following to unblock your files:

  1. In File Explorer, go to the location where you saved the zip file.

  2. Right click on the zip file, and click Properties.

  3. On the General tab, select Unblock.

    Unblocking the file.

  4. Click OK.

All files contained in the zip file should now be Unblocked. You can verify this in the individual files by checking to see if the Unblocked checkbox option no longer appears in the General tab of the file's Properties page.

Note

If you only have access to unzipped files, you can also unblock each file individually.

Step 2 - Find all Project Web App sites in your Office 365 environment

Global admins will need to use the SharePoint Online Management Shell to connect to their SharePoint Online Admin Center and run the Get-SPOSite PowerShell cmdlet to get a listing of URLs for each PWA site in their Office 365 environment.

Note

To run the Get-SPOSite PowerShell cmdlet, you need to be either in a Global admin or SharePoint admin role.

  1. In the SharePoint Online Management Shell module, connect to your SharePoint Online Admin Center with the Connect-SPOService cmdlet:
Connect-SPOService -URL <AdminSiteURL> 

For example:

Connect-SPOService -URL https://contoso-admin.sharepoint.com 
  1. After connecting to your SharePoint Online Admin Center, use the Get-SPOSite PowerShell cmdlet to find all PWA sites in your Office 365 environment:
Get-SPOSite | ?{$_.PWAEnabled -eq "Enabled"} | ft -a Url,Owner

After successfully running, a list of all PWA sites and site owners in your Office 365 environment will display.

Step 3 - Find the user's Resource ID in each PWA site (optional)

Note

If you have the user's login account, this step is optional. You will need either the user's login account or Resource ID for each PWA site in order to run the export script.

If you want to find the user's resource ID, PWA site admins can to do the following on each PWA site that you found in the previous step:

  1. In the Project Online Server Settings, in the Enterprise Data section, click Resource Center.

  2. On the Resource Center page, in the Resource Name column, locate the user's name then look in that row to see if you can find a value in the Unique ID column. This value is the user's Resource ID. For example, in the graphic below, you can see Aaron Painter's Resource ID value listed in the Unique ID column.

    User's Resource ID in the Unique ID column.

    In some cases, your table may be customized so that the Unique ID column is not available. If so, select the checkbox to the left of the user name and then click Edit located in the Resources tab in the ribbon, and then go to the next step.

  3. On the Edit Resource page for the specific user, go to the System Identification Data section and find the value listed for the GUID. The GUID is the users resource ID for this PWA site.

    Finding a users Resource ID.

Note

If you have multiple PWA sites, each PWA site will have a different Resource ID for the same user. Make sure to pair the Resource ID your find for the user with the specific PWA site URL.

Step 4 - Export your user's data from the PWA site

Next, you will need to run the ExportProjectUserContent PowerShell script in order to export your user's data from each PWA site in your Office 365 environment. In order to run the script, you need to make sure you and your environment meet the prerequisites, and then you can run the script.

The ExportProjectUserContent PowerShell script is included with the Project Online User Content Export and Delete script package.

Prerequisites

  • License for Project Online: You need to be assigned a Project Online Premium or Project Online Professional license.

  • Project Online Desktop Client: You will need the Project Online Desktop Client and be connected to the Project Online instance. The Project Online Desktop Client is included with a Project Online Premium or Project Online Professional license.

    To connect your Project client to your Project Online instance:

  1. Click the File tab to open the Backstage view. Click Info, and then click Manage Accounts.

  2. In the Project Web App Accounts dialog box, click Add.

  3. In the Account Properties dialog box, type a name for this account in the Account Name box.

  4. Enter the URL of the PWA site you are connecting to in the Project Server URL box.

  5. Click OK.

  6. In the Project Web App Accounts dialog box, select Set as Default, and then click OK.

  7. Restart Project, and log on to the PWA site.

  • Permissions: In order to have the required permissions to run the script, you need to do at least one of the following:

    • Add yourself as a site collection admin to the PWA Site for which you are running the script.

    • If you are in Project permission mode, be assigned Manage Users and Groups and the Access Project Server Reporting Service permissions on the Project Online instance. If you are in SharePoint permission mode, be in the Global admin or SharePoint admin role.

Run the ExportProjectUserContent script

Use the ExportProjectUserContent.ps1 PowerShell script to export your user's data.

  1. In the SharePoint Online Management Shell, run the ExportProjectUserContent script. You will need to configure the following parameters when running the script:
   
Parameter
Description
-URL
URL of the PWA site
-ResourceID
Resource ID of the user.
-LoginName
Login name of the user.
-OutputDirectory
Location to store the export files.
-Region
This optional parameter specifies the Office 365 environment you are using. The values you can use for this parameter include:
Default - Project Public Cloud.
China - Gallatin.
Germany - BlackForest.
ITAR - Office 365 United States Government.
If the parameter is not used, the default value is used ( Default ).

You can chose to run the script either by specifying the user's Resource ID or login name.

To run the ExportProjectUser script using the users Resource ID

You would use the following command in PowerShell with the parameters listed above:

.\ExportProjectUserContent.ps1 -Url <PwaSiteURL> -ResourceUid <UsersResourceID> -OutputDirectory <LocationToStoreOutput>

For example, if you want to export user data from the Costoso PWA1 site (site URL of https://contoso/sites/pwa1) for a user with a Resource ID of cb5c91cf-fd6b-e711-80d0-00155da4a406, and have the export files save to c:\pwa1siteOutput, you would enter:

.\ExportProjectUserContent.ps1 -Url https://contoso/sites/pwa1 -ResourceUid cb5c91cf-fd6b-e711-80d0-00155da4a406 -OutputDirectory c:\pwa1siteOutput

To run the ExportProjectUser script using the users Login Name

You would use the following command in Powershell with the paramaters listed above:

.\ExportProjectUserContent.ps1 -Url <PwaSiteURL> -LoginName <UsersLoginName> -OutputDirectory <LocationToStoreOutput>

For example, if you want to export user data from the Costoso PWA1 site (site URL of https://contoso/sites/pwa1) for a user with a Login Name of AdamB@contoso.onmicrosoft.com, and have the export files save to c:\pwa1siteOutput, you would enter:

.\ExportProjectUserContent.ps1 -Url https://contoso/sites/pwa1 -LoginName AdamB@contoso.onmicrosoft.com -OutputDirectory c:\pwa1siteOutput

After the script runs successfully, all exported data will be stored in the -OutputDirectory you specified.

Some of the exported user content you receive will include a number of json formatted files that includes feature-specific user information. For example, the Security.json file contains data about the user's security groups, categories, and permissions settings. These feature-related json files are described in more detail in the next section. By default, you will receive all 27 feature-related json files when you run the ExportProjectUserContent script. However, you can use the -Options parameter to select specific json files to download. These include the following:

-Options values Json files you receive
All
All feature-related json files, all project-specific json files, and all project-list files.
Timesheets
Timesheets_Reporting.json, Timesheets_page#.json
For the Timesheets_page#.json, you will get file per page.
TaskStatus
Rules.json, TaskStatus_AssignmentsHistory_page#.json, TaskStatus_AssignmentsSaved.json, TaskStatus_AssignmentsSubmitted.json
Security
Security.json
Portfolio
BusinessDrivers.json, DriverPrioritizations.json, PortfolioAnalyses.json
StatusReports
StatusReports.json
Engagements
Engagements_page#.json
ResourcePlans
ResourcePlans_page#.json, ReportingResourcePlans.json
Projects
DraftProjectList.xml , PublishedProjectList.xml. ReportingProjectList
You will also receive one of each of the following for each project that the user was a part of:
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
UserViewSettings
UserViewSettings.json

Using the -Options parameter can be helpful if you want to export user data from the PWA site for specific features. For example, if you are only concerned with your user's data in the Portfolio Analysis feature, you can run the -Options parameter with the value of Portfolio:

.\ExportProjectUserContent.ps1 -Url https://contoso/sites/pwa1 -ResourceUid cb5c91cf-fd6b-e711-80d0-00155da4a406 -OutputDirectory c:\pwa1siteOutput -Options Portfolio

This will allow you to export the three json files that contain your user's data that pertains to the Portfolio Analysis feature (BusinessDrivers.json, DriverPrioritizations.json, PortfolioAnalyses.json).

Step 5 - Review your exported content

After you run the ExportProjectUserContent PowerShell script successfully, you will have the following output in the output directory you specified when running the command:

  • Project list files - You will receive three .xml files that provide a list of projects contained in the Project Draft and Published schemas in which the user was a part of. This means the user was involved in the project as at least one of the following:

    • Was the project owner.

    • Has a task assigned to him or her in the project.

    • Is an assignment owner of a task in the project.

    • Is the status manager of a task in the project.

      These three .xml files are:

   
Name
Description
DraftProjectList.xml
List of projects from the Draft schema that corresponds to the conditions above.
PublishedProjectList.xml
List of projects from the Published schema that corresponds to the conditions above.
ReportingProjectList.xml
List of projects from the Reporting schema that corresponds to the conditions above.

The list of projects may differ slightly for each of the three .xml files. For example, a user can save the project but not publish, meaning that it will appear in the DraftProjectList.xml file, but not the PublishedProjectList.xml or ReportingProjectList.xml files.

A project admin can use the Project list .xml files to give them information about which project-specific export files they be interested in analyzing to decide how much of the exported content should be shared with the user.

All three of the ProjectList.xml files will have the following properties for each project listed:

   
Property
Description
SiteId
The unique identifier for the PWA site in which the project exists.
Proj_UID
The unique identifier for the project.
Proj_Name
Name of the project.
  • Feature-related files - For each PWA site that the user is part of, the following feature-specific .json files will be exported to the specified output directory. The feature-specific files will contain user data as it pertains to the feature use throughout the PWA site. For example, the Drivers.json file will include data about Portfolio Analysis business drivers the user created or owned. If the user has no data relating to the feature on the specific PWA site, the file will contain no data.

    The feature-specific .json files include:

Name Description
AdminAudit
Project Web App server settings change data.
BusinessDrivers
Portfolio analysis business drivers data.
Calendars
Enterprise calendar data.
CustomFields
Custom field data.
Delegations
Delegation data.
DriverPrioritizations
Business driver prioritizations data.
Engagements
Resource engagement data.
LookupTables
Lookup table data.
PortfolioAnalysis
Portfolio analyses data.
QueueJobs
Data about user jobs process through the Queue Service.
ReminderEmails
Reminder email data.
ReportingResource
Resource reporting data.
Resource
Resource data.
ResourcePlans
Resource plan data.
Rules
Rules data.
Security
Data about security groups, categories, and permissions.
StatusReports
Status report data.
SubscribedReminders
Subscribed reminders data.
TaskStatus_AssignmentsHistory
Statusing assignments history data.
TaskStatus_AssignmentsSaved
Statusing assignments save data.
TaskStatus_AssignmentsSubmitted
Statusing assignments submit data.
Timesheets
Data about timesheets.
Timesheets_Reporting
Reporting data about timesheets.
UnsubscribedAlerts
Unsubscribed alerts data.
UserViewSettings
User view settings data.
Workflow
Project workflow data.
WorkspaceItems
Data about SharePoint items from project sites.

Certain feature-specific json files have the possibility of being large, so to improve performance, the following json files will spawn across multiple files:

  • Engagements.json

  • ResourcePlans.json

  • Timesheets.json

  • TaskStatus_AssignmentHistory.json

    Note

    To learn more about the objects contained in each of the feature-specific .json files, see the Feature-specific data section of Project Online export json object definitions.

  • Project-specific files - If the user is part of any project, then for each of those projects, several individual files will be exported to the output directory. This will happen if the user is part of the specific project as one of the following:

    • The project owner

    • Has a task assigned to him or her in the project

    • Is an assignment owner of a task in the project

    • Is the status manager of a task in the project

      Project-specific data differs from the Feature-related data in that the data is specific to a single project. Feature-related data can include user data across many projects in the PWA site that the user was a part of, but pertaining to a single feature.

      Note

      For all project-specific files you receive, they will be prefixed with the specific project's Project Name. For example, if a project has a Project Name of Project1, all project-specific files we describe in this section will be prefixed with Project1.

      For each project the user is a part of, you will received the following three sets of files:

      - An .xml file for the project from the draft and published databases:

   
Name
Description
<projectName>_draft.xml
The project file from the draft schema saved as .xml format.
<projectName>_published.xml
The project file from the published schema saved as .xml format.

Note

See the Project XML Data Interchange Scheme Reference to understand the Project XML data contained in these files.

- An .mpp file for the project from the draft and published databases:

   
Name
Description
<projectName>_draft.mpp
The project file from the draft schema saved as a Project .mpp file.
<projectName>_published.mpp
The project file from the published schema saved as a Project .mpp file.

Note

You can open the .mpp file with Project Professional 2019, Project Professional 2016, or the Project Online Desktop client. Saving the exported .mpp files back to Project Online or Project Server is not supported.

- Eight .json files for the project from the reporting schema:

Name Description
Reporting_AssignmentBaselineTimephased
Assignment Baseline Timephase data for the project from the reporting schema.
Reporting_AssignmentTimephased
Assignment Timephase data for the project from the reporting schema.
Reporting_ProjectBaseline
Project Baseline data for the project from the reporting schema.
Reporting_Tasks
Project tasks data for the project from the reporting schema.
Reporting_Assignments
Assignment resources data for the project from the reporting schema.
Reporting_Resources
Resources data for the project from the reporting schema.
Reporting_TaskBaselineTimephased
Task baseline timephased data for the project from the reporting schema.
Reporting_TaskTimephased
Task timephased data for the project from the reporting schema.

Note

To learn more about the objects contained in each of the .json files, see the Project-specific user data from the reporting data section of Project Online export json object definitions.

- Three .json files with the project's metadata from the draft, published, and reporting schemas:

   
Name
Description
<projectName>_draft.json
Project metadata file from the Draft schema
<projectName>_published.json
Project metadata file from the Published schema
<projectName>_reporting.json
Project metadata file from the Reporting schema

Note

To learn more about the objects contained in each of the .json files, see the Project-specific Metadata files section of Project Online export json object definitions.

Step 6 - Find and save custom views, custom filters, attachments, and macros

After receiving the exported user content, you can use your data to find the user's custom views, custom filters, custom tables, attachments, and macros. To find these, you will need to have the MPP and XML file for each project in which you want to search. For more information on how to do this, see Find customized user items in Project Online and Project Server user export data.

Considerations for master and inserted projects

As noted earlier, the export script will only export projects that the user was a part of as an owner, has an assigned task, is an assignment owner of a task, or is the status manager of a task. When the user is part of an inserted project, but not the master project, only the inserted project will be exported. Similarly, if the user is only part of a master project and not any of the inserted projects, only the master project will be exported.

When saving a master project that a user was a part of, you will not need to save any associated inserted projects if you are prompted.

Considerations for Project Home favorite and recently viewed projects

Data for a user's favorite and recently viewed projects in Project Home can only be accessed directly in-app. The user needs to log in with their Office 365 account credentials to access their Project Home page and see the projects that are listed.

  1. Log in to Office 365.

  2. In your browser, navigate to the URL project.microsoft.com to open your Project Home page.

  3. On the Project Home page, take a screenshot of the projects listed in the Favorites and Recent sections.

    ProjectHome.

See Also

Project Online export json object definitions

Delete user data from Project Online