Tags: Project 2016, Project Server 2016, SharePoint 2016, SP2016
This blog post will detail the PowerShell commands required to carry out an environment rollover / migration using Windows PowerShell where possible. The steps below use the database approach to rollover the Production environment to the Test / Development environment.
As a prerequisite I would recommend taking full backups of the Test / Dev farm to enable the environment to be rolled back if required. Use your usual farm backup procedures.
Test / Dev environment Prep
Firstly connect to the Test / Dev Application server and launch the SharePoint 2016 Management shell.
Type the following:
Remove-SPSite -Identity ‘<TEST/DEV PWA Site URL>’
You can check in Central admin in the Project Server Service Application to check that the PWA site has been removed.
Using the SharePoint 2016 Management Shell, remove the existing content database from the web application that hosted the PWA site collection that was removed in the previous step.
Type the following:
Dismount-SPContentDatabase ‘<Content database name>’
Test / Dev environment SQL Prep
Take a backup of the PWA Content database from the Production environment and copy this over to the Test / Dev SQL server and restore the database. The database required is:
- Content database that contains the Production PWA site and Project Sites
Make a note of the database name used when this database is restored as it will be required later.
Test / Dev environment configuration
Using the SharePoint Management Shell, mount the restored content database to the web application that will host the PWA site collection.
Type the following:
Mount-SPContentDatabase ‘<content database name restored in previous step>’ -DatabaseServer ‘<Test / DEV SQL Server>’ –WebApplication <web application URL>
The Project Server Cube settings will need to be updated – update the SQL AS server / cube name.
Any Excel based reports in PWA will need to be updated to use the ODC files / connection strings from the Test / Dev environment as they will currently point to the Production ODC files / connection strings. This is done by opening the Excel reports in Excel, changing the ODC file / connection strings then saving the file back to the library.
All projects will need to be republished on the test / dev instance so that the project site features such as the issues and risks sync works as expected. There are other ways to fix that but republishing the projects is the easiest / safest option from what i have found.
#ProjectOnline / #ProjectServer #Project site provisioning using #Office365 PnP remote provisioning #SharePoint #PowerShellMay 4, 2016 at 4:20 pm | Posted in .Net, Add-on, Administration, App, Configuration, Customisation, Functionality, Information, Installation | 1 Comment
Tags: Office365, Project Online, Project Server 2013, Project Server 2016, SharePoint 2013, SharePoint 2016, SharePoint Online
For many years now Project Server deployments have used Project Sites or known as Project Workspaces before Project Server 2010. Typically most deployments have custom requirements for the sites so custom site templates were created from a site created using the default Project Site template. The updated custom site template was then linked to the Enterprise Project Type so that new projects created used the new site template. The biggest issue with this approach was that if you wanted to update the site template later on down the line all of the existing project sites would either need manually updating or writing code to traverse through all the existing sites and make the changes. With the new online world in Office 365 there are other things to think about too. If you create a new custom site template based on the default Project Site template then Microsoft roll out a new feature in the base Project Site template – your new project sites wont get that change either. This is where the PnP remote provisioning engine is great. For a while now – at least a year or 2 I think, the best practise is to stick with the default site templates Microsoft provide, so the Project Site template for example. The Enterprise Project Types should use the default Project Site template so each new project gets a site created using the default site template. But what about my custom lists, or columns or views I hear you ask – deploy the custom artefacts once the site is created from the default site template. In this post I will give you a very quick introduction to the Office 355 PnP Remote Provisioning engine which is part of the PnP core component. PnP, known as Patterns and Practices – details can be seen here: http://dev.office.com/patterns-and-practices. This will enable you to deploy your custom site artefacts.
For this example we will look at the PowerShell variant: https://github.com/OfficeDev/PnP-PowerShell but is also available with managed code. To get started with the PowerShell version follow the steps in the GitHub link to get the components installed. I have created a project / project site using the default Project Site template and added a new list called Change Requests that is linked to a Site Collection Content type in my root PWA site collection:
This list has two views:
I have also updated the default Risks list to use custom content type and included one new column:
I have added my new column to the All Items view:
This is the new site template I want to use. Typically this is where you would save as a template but not for this example.
Once the PnP components are installed on your machine, connect to the source project site using this command – update the Url for your site:
Connect-SPOnline –Url <source site URL>
Enter credentials if prompted to do so.
Now use the following command to extract the site:
Get-SPOProvisioningTemplate -Out C:\Temp\PnP\NewTemplate.xml
This process will extract the site definition and create an XML file in the specified location:
At this point the XML should be modified to remove unneeded properties. For example, as this project site is linked to a project already the property bag will contain certain properties referenced to the source site – I don’t want to overwrite these settings on my target sites so I removed the property bag entries highlighted below.
I have also removed properties for configuration I don’t need to update, other lists etc. See an example below, I have only left the two lists I have added / updated:
I don’t cover this here but I used Visual Studio – really one for the devs out there.
Once you are happy with the source XML file you are ready to deploy this to the existing project site/s. In this example I have a test project site created by the default Project Site template that has not been modified:
In PowerShell I now connect to the test target site using the command below – update the Url for your site:
Connect-SPOnline –Url <target site URL>
Then run the following command to apply the changes:
Apply-SPOProvisioningTemplate -Path C:\Temp\PnP\NewTemplate.xml
Once completed the test target site should be updated, in this example, with a new list and updated risk list. Once you are happy with the test target project site you could repeat the process on other project sites. I have found some settings are not set correctly and some do generate errors in PowerShell but there are usually monthly updates the PnP code so always ensure you regularly update the modules using the Update-Module command.
This is a very simple example using PowerShell, in production you might have a full script that has a list of Project Sites you want to update and get the script to update them all etc. Or better still, go down the manage code route and create an event driven SharePoint provider hosted add-in to do it. Either way, fully test this process on test project sites / projects first before any production projects / project sites!
Tags: Project 2016, Project Server 2016, PS2016, SharePoint 2016
A quick post to highlight some great news this week, Project Server 2016 RTM has been released, the announcement is here:
To view what is new for Project Server 2016 see the MSDN link below:
Some great reasons there for those clients still using the on-premise software to upgrade from earlier versions of Project Server.
To view what has been deprecated or removed in Project Server 2016 see the link below:
To find all of the Project Sever 2016 documentation start here: