This PowerShell script enables admins to read entities from from multiple Project Online Project Web App instances using CSOM. The particular example reads the list of Enterprise Custom fields but can easily be updated to display other entities such as projects. The script example can be downloaded here:
To get the script to work you will need to reference two DLLs as seen in the image below:
The first one is the ProjectSever Client DLL, as I ran this on my Project Server 2013 server so just referenced the default location of the DLL.
The second DLL is the SharePoint client DLL from the SharePoint Online Management Shell: https://www.microsoft.com/en-us/download/details.aspx?id=35588
Once the references to the DLL’s are updated the script can be run as seen below. Please note, this has only been tested in PowerShell 3.0 and might not work in other versions. I have seen issues in the past loading some SharePoint / Project Server DLL’s in certain versions of PowerShell so if you have issues try this in PowerShell 3.0.
Firstly it will prompt for how many PWA instances, enter the number:
It will then prompt for the PWA URL:
Then the username:
Then enter the password:
The custom fields from this instance will then display:
Depending on how PWA instances you specific the script may or may not prompt for another PWA instance URL, username and password. If you specified more than 1 PWA instance the output will look like this:
As seen, this displays custom fields but could easily be updated to display another entity, for example to see a list of projects. This can be done by changing the following lines:
Whilst this is very simple by just reading data, this could be updated to create new custom fields for example and push that out to multiple PWA instances without having to navigate to multiple PWA instances. I have created an example .NET C# console application that I will blog about soon that creates new custom fields on multiple PWA Project Online instances.
Whilst this only reads data, as always, this script is provided as is with no warranties etc. use at your own risk and test on a test environment before using on a production environment.