#ProjectServer #PS2010 / #PS2013 bulk #Project site creation using #PowerShell 3.0 or later #SP2013 #SP2010

March 5, 2014 at 11:18 am | Posted in Add-on, Administration, Configuration, Customisation, Functionality, PowerShell, PSI | 4 Comments
Tags: , , , , , , , , ,

I recently had to bulk delete and then bulk create project sites for a client. Rather than engaging one of our devs I wrote a PowerShell script to do this. This does need PowerShell 3.0 or later to work. This post covers the bulk create script as this is generic, the bulk delete was specific to the client so I haven’t published that. The script can be downloaded from the script galley below:


The web service proxy URLs will need to be updated for your PWA instance, replace the http://vm753/pwa with the correct URL.

The script can be seen running and creating sites below:

From the PowerShell ISE:


From PowerShell:


Project Sites are created using the correct site template that is associated to the EPT.

If all projects have a site associated, the following is returned:


Test this on a test / dev farm before running a live production farm.

Should I display duration fields on the #ProjectServer PDPs? #PS2010 #PS2013 #SP2010 #SP2013 #SharePoint #ProjectOnline #MSProject

November 12, 2013 at 10:11 am | Posted in Administration, Configuration, Customisation, Functionality, Information | 1 Comment
Tags: , , , , , , , , , ,

The answer to this question in my opinion is no. In this blog post I will explain why using an example.

Firstly I have created a new test duration field on my test Project Server 2013 environment, this is called _duration.


For the purpose of this post, I also have a new Project Detail Page (PDP) that only displays the _duration field. A new project is created, the schedule it not important here, just the value you specify in the _duration field. As you can see below, I have entered 10 days:


Save and publish this to Project Server and take a look at the project in PWA. You can see the project in PWA as shown below:

Project Center:


Notice the _duration field correctly shows the 10 days.



Notice the _duration field correctly shows the 10 days.

All ok at this point. Before we move on, I just want to show the project options for this project, specifically the hours per day:


Notice this is set to the default 8 hours per day. Update this to 7 hours per day. You will then notice that the _duration field correctly updates to 11.43 days:


Reset this back to 10 days then save and publish the project again.

The Project Center still display 10 days in the _duration field:


The PDP will show the incorrect duration in the _duration field:


The PDP’s assume the default 8 hours per day is used for each project. At this point the PM will probably think, lets correct the 8.75 days to 10 days. So lets do this, this is now correct in the PDP:


Great. Not quite, now take a look in the Project Center:


Notice the 11.43 days. Also check the Project Information in Project:


I was aware of this issue in Project Server 2010 but only just came across the same thing in Project Server 2013.

Hopefully that explains why I answered “no” to displaying duration fields on the Project Server PDP’s, it will save a lot of confusion with your Project Managers! As with all answers there is normally an exception to the rule and you can probably guess what that is. Displaying duration fields on PDP’s will be fine if your projects are 8 hour days Smile

Create a #ProjectServer #PS2010 #PS2013 project from a template and update the EPT #SP2013 #SP2010 #PowerShell

August 30, 2013 at 11:24 am | Posted in Add-on, Administration, Configuration, Customisation, Functionality, PowerShell, PSI | 1 Comment
Tags: , , , , , , , , ,

I have been meaning to publish this PowerShell script for a few months but finally got around to it today. The PowerShell script creates a project from a template then updates the Enterprise Project Type (EPT). I did write a post over a year ago on how to create a project using PowerShell but this didn’t update the EPT:


The issue is that even if your Project Plan Template is associated to an EPT in Project Server, the project created from the CreateProjectFromTemplate method is associated to the default EPT regardless. This script will prompt for the project name, the project plan template name and the EPT name. It will create the project then update the project to associate it to the desired EPT. The script can be downloaded from the script gallery below:


Once downloaded, the script will need to be updated with the correct PWA URL, the lines that need updating are 9 and 23. These can bee seen below:



Update the http://vm753/pwa part of the URL for your PWA URL.

A walkthrough using the script is below.

Open Windows PowerShell and navigate to the PowerShell file, in this example it is on the desktop:


Press Enter and complete the details:


The new Project will be called “CPS Test Project by Paul Mather”, it will use the “PMTemp1” template and then associate the new project to the “PM TEST” EPT.


The project is created as you can see in the Project Center:


It is also associated to the specified EPT:


The default EPT on this PWA instance is “Enterprise Project”:


When using the CreateProjectFromTemplate method only, this new project would have been associated to the Enterprise Project EPT as this is the default EPT.

This is just an example of what can be done, many improvements could be made, certainly around error handling but it provides a working example for you to build on. Smile

#ProjectServer #PS2010 and #SP2010 Service Pack 2 Released #PPM

July 24, 2013 at 8:34 am | Posted in Administration, Configuration, Functionality, Information, Service Pack | 5 Comments
Tags: , , , , ,

Service Pack 2 has been released for Office 2010, this includes Project Server 2010 and SharePoint 2010. For links to all Office 2010 SP2 updates see the office update site below:


Project 2010 SP2: http://support.microsoft.com/kb/2687457

Project Server 2010 SP2: http://support.microsoft.com/kb/2687452

SharePoint 2010 SP2: http://support.microsoft.com/kb/2687453

For a full list of fixes, download the following Excel file:


For more information see the following blog post:


#ProjectServer 2010 field calculation in PWA #PS2010 #MSProject #SP2010

June 18, 2013 at 3:44 pm | Posted in Administration, Configuration, Customisation, Fixes, Functionality, Information, Issue, Workarounds | 1 Comment
Tags: , , , ,

A quick blog post to highlight an issue and workaround for editing plans in PWA when using custom fields that use the inbuilt fields. This post uses Finish Variance as an example. The Finish Variance field doesn’t recalculate in PWA after making edits to plans, this only updates after changes in Project Pro. This post relates to the Finish Variance field but other fields will more than likely have the same issue.

In the screen shot below you will see a simple plan with 2 tasks that was created and baselined in Project Pro. There are 3 custom fields in the view:

Finish Variance RAG, the formula is IIf([Finish Variance] > 0, "Slipped", "On schedule")

Finish Variance (Calc) RAG, the formula is IIf([Task Finish Variance] > 0, "Slipped", "On schedule")

Task Finish Variance, the formula is ProjDateDiff([Baseline Finish], [Finish]) / 480


As you can see the Finish Variance and the Task Finish Variance values are currently the same and so are the 2 RAG fields.

Edit the plan in PWA and increase the task durations, for this example double the durations. Calculate the plan then save and publish the project. Refresh the page and you will see that the Finish Variance is incorrectly 0, the Finish Variance RAG is still green as this uses the Finish Variance field. The good news is that the custom field that calculates finish variance (Task Finish Variance) shows the correct values and the Finish Variance (Calc) RAG also shows the correct RAG.


To correct the Finish Variance values and the Finish Variance RAG, open the plan in Project Pro, press F9 to recalculate then save and publish. The Finish Variance default field now shows the correct values in PWA as does the Finish Variance RAG:


To get the RAGs to calculate correctly when editing in PWA you might need to create your own custom fields to replicate the calculations used on inbuilt fields. Obviously it would not be recommended to create too many task level calculated fields due to performance issues but hopefully that little workaround helps for key RAGs.

#ProjectServer and #SharePoint 2010 / 2013 June 2013 Cumulative Update #PS2010 #SP2010 #PS2013 #SP2013 #MSProject

June 15, 2013 at 9:24 am | Posted in Administration, CU, Fixes, Information | 3 Comments
Tags: , , , , , , , , ,

The Office 2013 June 2013 Cumulative Updates are now available, please see the links below:


Project Server 2013 Server Roll up package June 2013 CU (Recommended):
http://support.microsoft.com/kb/2817415 (Delayed)
Project Server 2013 June 2013 CU (Included in the Server Roll up package):
Project 2013 June 2013 CU:

Also worth noting, install the March 2013 Public update: http://support.microsoft.com/kb/2768001 if installing the June 2013 CU.

The Office 2010 June 2013 Cumulative Updates are now available, please see the links below:


Project Server 2010 Server Roll up package June 2013 CU (Recommended):
Project Server 2010 June 2013 CU (Included in the Server Roll up package): 
http://support.microsoft.com/kb/2817378 & http://support.microsoft.com/kb/2817387
Project 2010 June 2013 CU:
Remember SP1 is a pre-requisite for the Office 2010 June 2013 CUs.

For more details please see:

As always, test these updates on a replica test environment before deploying to production

#SharePoint 2010 error setting PerformancePoint unattended account #SP2010 #PS2010 #HP

May 7, 2013 at 8:35 pm | Posted in Administration, Configuration, Functionality, Information, Installation, Workarounds | 1 Comment
Tags: , , ,

A short blog post to highlight a workaround to a recent issue we experienced on a Project Server 2010 deployment. When trying to set the PerformancePoint unattended account we received an error:

The account credentials for the Unattended Service Account are not valid. Verify the domain user name and password are correct and that the account is located in a Trusted Domain

We experienced the same error via the UI in Central Admin and via PowerShell. The fix / workaround was quite simple in the end. This particular client had the HP ProtectTools enabled, this blocks any passwords being sent as plain text. We added an <SE>\ tag as shown below in the password string:

Set-SPPerformancePointSecureDataValues -ServiceApplication "PerformancePoint Service Application" -DataSourceUnattendedServiceAccount (New-Object System.Management.Automation.PSCredential "domain\user", (ConvertTo-SecureString "<SE>\password" -AsPlainText -Force))

With this tag in place the HP ProtectTools ignored that fact that the password was plain text and the unattended account was set successfully. This workaround only works when setting the unattended account using the example PowerShell script above. It doesn’t work in the UI.

Update #SharePoint list item author and editor #SP2010 #PowerShell #PS2010 #SSRS

May 1, 2013 at 7:52 am | Posted in Administration, Configuration, Fixes, Functionality, Information, PowerShell, Workarounds | 1 Comment
Tags: , , ,

Recently while working on a client deployment we had an issue relinking the SSRS reports to the data sources within the same library – SSRS was in SharePoint integrated mode. We had developed the Project Server solution internally and migrated it to the clients environment at a later date. All worked as expected apart from trying to relink the SSRS Reports to the updated data sources. The SSRS data sources had been edited to use the correct databases / PSI web services but when we tried to link the reports to the databases from the Manage Data Sources menu, SharePoint threw an error when trying to browse to the data sources. The error from the ULS log can be seen below:

Microsoft.ReportingServices.Diagnostics.Utilities.SharePointException: , Microsoft.ReportingServices.Diagnostics.Utilities.SharePointException: Report Server has encountered a SharePoint error. —> System.NullReferenceException: Object reference not set to an instance of an object.  
at Microsoft.ReportingServices.SharePoint.Objects.RSSPImpUser.get_LoginName()  
at Microsoft.ReportingServices.SharePoint.Utilities.CatalogItemUtilities.GetListItemUserLoginName(RSSPListItem item, String fieldName)

The cause of this error was that the user who created the SSRS objects had been removed from SharePoint when the system was cleaned up to take on to the clients environment.

There is a simple fix, that is to update the Author (Created By) and Editor (Modified By) fields with a user that exists on the SharePoint farm. The Author field can’t be updated via the UI but it can be update via the object model.

I created a simple PowerShell script that will update the author and editor for all SharePoint list items in the chosen list. To download the PowerShell script please see the link below:


There are some variables / settings that need to be updated before running the script, these can be found below:

$newuser = "support\paulmather"  This needs to be updated with the new author and editor’s user account.

$site = get-SPWeb http://vm353/pwa/ProjectBICenter This needs to be updated with the correct URL for the site that contains the list / library.

$list = $site.Lists["Test"] This needs to be updated with the name of the correct library / lists that contains the list items that need to be updated, in this example the SSRS items.

That is it, the script is then ready to run.

Please fully test on a replica test farm before running on Production.

#ProjectServer and #SharePoint 2010 / 2013 February 2013 Cumulative Update #PS2010 #SP2010 #PS2013 #SP2013 #MSProject

February 15, 2013 at 1:56 pm | Posted in Administration, CU, Fixes | 1 Comment
Tags: , , , , , , , , , , ,

Now that the first CU’s for 2013 are available, I will include both 2010 and 2013 updates in the future posts.

The Office 2013 February 2013 Cumulative Updates are now available, please see the links below:


Project Server 2013 Server Roll up package February 2013 CU (Recommended):
Project Server 2013 February 2013 CU (Included in the Server Roll up package):
Project 2013 February 2013 CU:

The Office 2010 February 2013 Cumulative Updates are now available, please see the links below:

Project Server 2010 Server Roll up package February 2013 CU (Recommended):
Project Server 2010 February 2013 CU (Included in the Server Roll up package):
Project 2010 February 2013 CU:
Remember SP1 is a pre-requisite for the Office 2010 February 2013 CUs.
For more details please see:

As always, test these updates on a replica test environment before deploying to production

Dynamic Timeline image on #ProjectServer Project Site #PS2010 #SP2010 #MSProject #VBA

February 4, 2013 at 4:06 pm | Posted in Add-on, Administration, Configuration, Customisation, Functionality, Reporting, VBA | 3 Comments
Tags: , , , , ,

One question we have from many clients is, can we have the project timeline image on the project site. The answer is yes, but this will not update automatically in Project Server 2010. On a side note, it is possible to have the timeline view in Project Server 2013 PWA!

This blog post covers a workaround to this limitation in Project Server 2010 using VBA. At this point I will state that I am no VBA expert, my VBA knowledge is very limited to say the least. This is a simple macro but I’m sure it could be improved Smile

For this to work a custom DLL is required on the workstations as there is no option to save a clipboard image to a file in VBA (as far as I know!). The DLL can be downloaded here: http://www.vbforums.com/showthread.php?585616-clipboard-activex-for-vba-vbs-etc Use this at your own risk as I do not know the code behind this DLL!

For this example, I created a file share to store my images \\vm353\ProjectSiteTimeLineImages. All users will need read / write access to this share.

The VBA code can be seen below, add this to the Enterprise Global:

Private Sub App_ProjectBeforePublish(ByVal pj As Project, Cancel As Boolean)
Dim clip As Object
Dim proj As Project
Set proj = ActiveProject
Dim path As String
path = “\\vm353\ProjectSiteTimeLineImages\”
Dim file As String
file = “.bmp”
Dim fileName As String
fileName = path & proj & file

Application.ViewApply Name:=”Timeline”
Application.TimelineExport SelectionOnly:=0, ExportWidth:=1000
Application.ViewApply Name:=”Gantt Chart”
Set clip = CreateObject(“clipbrd.clipboard”)
SavePicture clip.GetData, fileName
Set clip = Nothing
End Sub

Before a project is published the timeline image will be saved as a file to the share. See the example / walkthrough below:

File share before publish:


Create a new project, save and publish:


File share after publish:




Now we have the timeline as an image, this needs to be added to the project site using an image viewer web part – I won’t go into the details as this is basic SharePoint end user config task. See the Project site below with the image:


Notice only 3 tasks are added to the timeline, lets add some additional tasks.

I have added task T5 and added this to the timeline:


After publishing this project, refresh the project site:


A nice simple solution to a dynamic timeline image on the Project Server 2010 Project Sites. After publishing more projects, more timeline images will appear in the shared folder:


As mentioned, the VBA could be improved with error handling etc. Use this and the custom DLL at your own risk and fully test on a test workstation and PWA instance first.

Next Page »

Blog at WordPress.com.
Entries and comments feeds.