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:
Step 2 - Find all Project Web App sites in your Office 365 environment
Step 3 - Find the user's Resource ID in each PWA site (optional)
Step 6 - Find and save custom views, custom filters, attachments, and macros
Considerations for Project Home favorite and recently viewed projects
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:
In File Explorer, go to the location where you saved the zip file.
Right click on the zip file, and click Properties.
On the General tab, select Unblock.
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.
- 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
- 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:
In the Project Online Server Settings, in the Enterprise Data section, click Resource Center.
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.
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.
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.
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:
Click the File tab to open the Backstage view. Click Info, and then click Manage Accounts.
In the Project Web App Accounts dialog box, click Add.
In the Account Properties dialog box, type a name for this account in the Account Name box.
Enter the URL of the PWA site you are connecting to in the Project Server URL box.
Click OK.
In the Project Web App Accounts dialog box, select Set as Default, and then click OK.
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.
- 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.
Select specific feature-related user data files to export
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.
Log in to Office 365.
In your browser, navigate to the URL project.microsoft.com to open your Project Home page.
On the Project Home page, take a screenshot of the projects listed in the Favorites and Recent sections.