Archive
#ProjectServer 2010 / 2007 high-level Audit Export via #PowerShell #MSProject #PS2010 #EPM
Quite often there is a request for audit information from Project Server but unfortunately there is nothing available out of the box. This post covers a very high-level solution to this using the Project Server PSI and PowerShell.
Most actions in Project Server are processed via the Project Server queue, one simple way to get high-level audit information is to extract the queue information. The following PowerShell script uses the ReadAllJobStatusSimple method from the Queue System web service to export yesterdays processed jobs into a txt file with yesterday date appended to the filename:
$Today = Get-Date
$Yesterday = $Today.AddDays(-1).ToString("yyyy-MM-d")
$Filename = "C:\PSAuditExport\QueueExport-"
$filetype = ".txt"
$svcPSProxy = New-WebServiceProxy -uri "http://vm353/pwa/_vti_bin/PSI/QueueSystem.asmx?wsdl" -useDefaultCredential
$svcPSProxy.ReadAllJobStatusSimple("$Yesterday 00:00:01", "$Yesterday 23:59:59", "200", "0", "QueueCompletedTime" ,"Ascending").Status | Export-CSV $Filename$Yesterday$filetype -Delimiter "|"
For the full post please see:
Slipstream #Project Professional 2010 updates #MSProject #PS2010 #PS2007 #ProjectServer #MSOffice
Following on from my previous post Customising the Project Professional install, this post looks at slipstreaming the Project Professional 2010 updates into the Project install media. This simplifies the install as there is just one install file to run. This post will look at slipstreaming Service Pack 1 and the June 2011 Cumulative update into the Project 2010 install media. The same process applies for Project Professional 2007 but use the 2007 updates. This process also applies for other Microsoft Office applications with the relevant updates.
Firstly download the following updates:
- Project 2010 Service pack 1 – KB 2460052
- Project 2010 June 2011 Cumulative Update – KB 2536590
For the purpose of this post, I have both of the updates on the root of the C:\ drive, if you have the updates in a different location please update the commands to reflect the file location.
Create an Updates folder on the root of the C:\ drive
Open Command Prompt, navigate to the root of the C:\ drive and type the following command to extract Project 2010 SP1 to the new Updates folder:
project2010sp1-kb2460052-x86-fullfile-en-us.exe /extract:C:\Updates
Press Enter and accept the license agreement in the pop up box, you will then see the files extracting dialog box
Once complete you will then see installation complete message:
Click OK then you will see the extracted files in the C:\Updates folder:
Copy the contents of the C:\Updates folder and paste the contents into the Updates folder in the install media.
Once the files have been copied to the Updates folder in the install media for Project Professional 2010, delete all of the files from the C:\Updates folder so that you are ready to extract the Project 2010 June 2011 CU.
Open Command Prompt again and navigate to the root of the C:\ drive then type the following command to extract the Project 2010 June 2011 Cumulative Update to the Updates folder:
project2010-kb2536590-fullfile-x86-glb.exe /extract:C:\Updates
Press Enter and accept the license agreement in the pop up box, you will then see the files extracting dialog box appear followed by the installation complete message:
Click OK then you will see the extracted files in the C:\Updates folder:
Copy the contents of the C:\Updates folder and paste the contents into the Updates folder in the install media.
Now the updates have been extracted to the Updates folder in the installation media for Project Professional 2010, the updates will be applied when Project Professional 2010 is installed.
#ProjectServer 2010 PSI data to a text file using #PowerShell #PS2010 #Project
I recently looked into accessing the Project Server PSI via PowerShell, luckily I came across this MSDN article that helped: http://msdn.microsoft.com/en-us/library/gg607685.aspx#pj14_GettingStartedTa_PowerShell. I needed to get the data into a pipe delimited text file without using compiled code (I’m not a developer!). I have done this before with T-SQL and SSIS but I wanted to try something different. For the purpose of this blog article of have edited the example shown in the MSDN article. The PowerShell script is below:
$pwaUrl = "http://vm353/pwa"
$svcProjectUrl = $pwaUrl + "/_vti_bin/PSI/Project.asmx?wsdl"
$c = Get-Credential
$svcProjectProxy = New-WebServiceProxy -uri $svcProjectUrl -credential $c
$svcProjectProxy.ReadProjectList().Project | Select Proj_name, Proj_UID, Proj_Type `
| Export-CSV C:\projects.txt -Delimiter "|"
This script will export out a list of Project names, Proj UIDs and the Project Types to the C drive in a text file called projects.txt using the pipe delimiter. Screen shots below show the script and the output.
Script:
Output:
This is a very simple example but provides a no code solution to access Project Server data via the PSI.
Manually adding users to Project Workspace / Project Site in #ProjectServer #PS2010 #PS2007 #EPM
This post will detail the errors seen when trying to add or edit items in a Project Site / Project Workspace in Project Server when adding users manually to a Project Site when they don’t have the correct permission in Project Server. For the purpose of this guide I will base this on Project Server 2010 but the same applies for Project Server 2007.
A bit on the background information to start with so that it makes it clear later on in the post why you see these errors. Project Server has its own permission model that works differently to the SharePoint permission model. Users are added to Project Server via the PWA > Server Settings > Manage Users interface and not the SharePoint Site Actions > Site Permissions interface. This is because users will be added to the PWA site based on their Project Server permissions, to an extent the same can be said for the Project Sites. Although Project Sites appear and function the same as a normal SharePoint site, certain lists / document libraries work very differently to standard SharePoint lists / libraries. The Project Documents library, Risks list and Issues list link back to Project Server so therefore when editing / adding items, firstly the SharePoint permissions will be checked, then the Project Server permissions will be checked. If the user doesn’t have the correct permissions in Project Server, then they will see errors, even if they have full control on the Project Site. Each error is shown below.
In this example I have added a user directly to the Project Site, the user has Full Control of this Project Site, also this user does not have any access to PWA.
Project Documents:
When adding a document to the Project Documents library the user will see this error pop up once they click OK to add the document:
When they click, “Go back to Site” they will see that document has still been uploaded:
The error is thrown when the Project Server permissions are validated. The error below can be seen in the SharePoint ULS logs:
System.Web.Services.Protocols.SoapException: ProjectServerError(s) LastError=GeneralSecurityAccessDenied Instructions: Pass this into PSClientError constructore to access all error information at Microsoft.Office.Project.Server.WebServiceProxy.Security.CheckUserProjectPermission(Guid projectUid, Guid categoryPermissionUid) at Microsoft.Office.Project.PWA.CustomFieldWebControls.CustomPWALinkField.OnLoad(EventArgs e)
As you can see from the error above, it fails when checking the Custom PWA Link field as this is used to link the Document back to a task in the Project. As this user doesn’t have access to Project Server the error is thrown.
Risks and Issues lists:
Users will not be able to create an item on the risks or issues list if they do not have the correct permissions in Project Server, they will see the error below when clicking New Item:
The error below can be seen in the SharePoint ULS logs:
System.Web.Services.Protocols.SoapException: ProjectServerError(s) LastError=GeneralSecurityAccessDenied Instructions: Pass this into PSClientError constructore to access all error information at Microsoft.Office.Project.Server.WebServiceProxy.Security.CheckUserProjectPermission(Guid projectUid, Guid categoryPermissionUid) at Microsoft.Office.Project.PWA.CustomFieldWebControls.CustomPWALinkField.OnLoad(EventArgs e)
As a minimum, users will need permission in Project Server to use these lists, I would also recommend that you let Project Server control the users permissions to the Project Sites. To do this check the box “…automatically synchronize Project Web App users with Project Sites when they are created…”, on the PWA > Server Settings > Project Site Provisioning Settings page.
This will synch the users to the Project Site when the Project is published, it will add users to the Project Sites based on their Project Server permissions and therefore less of an administration overhead. The permission the users get on the Project Site can be seen below:
- Project managers who have published a project or who have Save Project permissions on a project are added to the Project Managers (Microsoft Project Server) site group.
- Team members with assignments in a project are added to the Team members (Microsoft Project Server) site group.
- Other Project Server users who have View Project Site permission on a project are added to the Readers (Microsoft Project Server) site group.
Hopefully that explains why you see these errors on the Project Sites.
How to check the SharePoint 2010 and Project Server 2010 service pack / patch level #PS2010 #ProjectServer #SharePoint #SP2010
This article will show how to check the farm version for SharePoint Foundation 2010, SharePoint Server 2010 and Project Server 2010.
The farm patch level can be check in the Central Administration site, click “Upgrade and Migration” then “Check Product and Patch Installation Status”
The patch level of all farm components will be detailed here, as you can see below, Project Server is listed at the bottom:
The farm configuration database version can also be checked on the “Manage Servers in this farm” page:
You can also check the SQL databases directly just running the query below:
select version
, ID
, UserName
, TimeStamp
from versions
Or if you want to see everything:
Select * from versions
This query can be executed against most of the SharePoint 2010 databases and all of the Project Server 2010 PWA databases. Worth noting is that not all SharePoint databases have a versions table, also not all of the versions tables get updated with every update, it usually depends if there is a schema update.
SQL Alias vs DNS Alias for Project Server 2010 install #PS2010 #EPM #ProjectServer
When installing Project Server 2010 it is always best practice to use an alias name for the SQL server as this makes life easier should you want to move SQL servers at a later date. This raises the question, SQL alias (using SQL cliconfg utility – pic below) or a network DNS Alias name (CNAME or HOST Record).
Pic1: SQL Server Client Network Utility (cliconfg)
For Project Server 2007 I would have said there weren’t really any advantages for one method over the other but for Project Server 2010 it’s different. For Project Server 2010 I would always recommend using a network DNS Alias, the reason being is to do with creating Excel Services reports.
When a user either creates a new or edits an existing report in Excel, their Excel client will connect directly to the data source (either Reporting database, custom database or OLAP cube). The ODC file will contain the connection details, SQL server name (alias name if Project Server was installed with an Alias for SQL), and database or cube name. If you installed Project Server 2010 with a SQL Alias on the Application Server, the user’s client machine will not know anything about the SQL Alias name unless you set up the same SQL Alias on all users machines who will create Excel Reports. This is because SQL Alias are only local to the machine that is it created on. Using a network DNS Alias to alias the SQL server will remove this issue.
Paul Mather
Project Server 2007 / 2010 scheduled tasks not running #PS2010 #ProjectServer #EPM #PS2007
Scheduled jobs such as the daily scheduled backup in project server not running but work when you run them manually? I have seen this at many clients and the resolution is usually simple.
All of the scheduled jobs in Project Server 2007 / 2010 run from a SharePoint Timer Job, if you look in Central Administration at the timer job definitions you will see your project server jobs. These include:
- Project Server Cube Admin Job
- Resource Capacity Job
- Scheduled Backup Job (one for each item)
These jobs are created in Central Administration when you set up the scheduled jobs in PWA. If you find that some of the scheduled jobs no longer run automatically, editing the time of the job will usually resolve the issue. So for example, if your daily Project backup that scheduled to run at 02:00 is not working automatically, try editing the time of the job to 03:00 and check the following day to confirm it has worked. To confirm it has run you can check the queue history and add in the “Success” job completion state. You can always set the job to run again at 02:00 for the following night and that should still work. You would need to repeat this for all of the scheduled jobs that were not running automatically.
Project Server 2010 Database Maintenance Plans #EPM #PS2010 #ProjectServer
Just a quick post to mention that Microsoft have now released documentation on the recommended SQL server database maintenance plans for Project Server 2010. SQL Server database plans are very important in keeping Project Server performing reliably and smoothly. Please see the link below for more information:
Project Server 2010 Project Site default fields
Getting synch errors in the Project Queue relating the Reporting WSS sync? Link to task functionality not working? Risks and issues not showing in the reminders web part on the PWA home page? If you have any of these issues then it is quite likely that you have either edited or deleted some of the default fields from the Project Site’s Risks or Issues lists. The Risks, Issues, Deliverables lists are integral to Project Server so the best advise is to leave the default fields alone and create new fields to meet your requirements. It is possible to hide the default fields if required.
One question I see quite a lot of the time is “How can we fix this issue once we have deleted or edited a default field from the Project Site?” The answer is simple but would mean data loss if you want to fix the issue on a Project Site that already had list items on the default Issues, Risks and Deliverables lists. If the issue exists in the current custom Project Site template then this can be resolved easily without any data loss. For both scenarios please see the steps below.
To fix the issue if it exists in your latest custom Project Site template, navigate to PWA and click Site Actions > New Site, select the latest custom template, add a name and URL and click create. Navigate to your new site and delete the default Risks, Issues and Deliverables lists by going to the list settings for each list / library and clicking “Delete this list”.
Click Site Actions > Site Settings > Manage Site Features, scroll down to the “Project Sites Collaboration lists”
Click “Deactivate” and click ok the the warning. Once complete the page will reload the site features, this time click “Activate” next to Project Sites Collaboration Lists.
Running through these steps will recreate the default Risks, Issues and Deliverables lists with all of the correct default fields, any custom fields or changes made to default fields will not be re-applied. Now create any custom fields / views needed on the Risks or Issues list but remember do not touch the default fields or views. Once the template is complete save the site as a template and set as the default site template in Project Server following the usual process. This would have fixed the issues mention above for new Project Sites that are created from the new custom template but the issues will still exist on current project sites.
To fix the issues on current project sites would mean that some data loss will occur. Any list items on the default Risk, Deliverables or Issues list will be lost and not recreated. To fix the issues on existing sites the same process applies as outline above but rather than creating a new site you will need to navigate to the Project site in question then delete the default Risks, Deliverables and Issues lists (remembering that the list items will be lost). If the list items are required, export the lists to Excel first, then you have a copy that can be used to create the items again manually once the lists are recreated. Once the default Risks, Deliverables and Issues lists have been deleted, click Site Actions > Site Settings > Manage Site Features. Deactivate the “Project Sites Collaboration Lists” feature then activate. As mentioned earlier this will recreate the default Risks, Deliverables and Issues lists with all of the default fields. This process will need to be repeated on all Project Sites where you want to resolve the issue and where you are happy to lose the existing Risks, Deliverables and Issues.
I would recommend that this process is carried out on test environment prior to production so that you are happy with steps outlined above.
Project Server 2010 Grid issue
I would just like to share my findings with the behaviour of the Project Server 2010 grids. I was recently investigating an issue raised on one of the Project Server forums and thought I would blog the issue and workaround in case anyone comes across this in future. The issue is that the header rows don’t load correctly if you zoom your Internet Explorer window below 99%. Each grid behaves differently, the Project Centre grid will add an extra header row on the left hand side of the grid as shown below so that the Gantt row no longer aligns with the correct Project detail rows:
On the Tasks page, an extra row is added on both sides of the divider, but the rows are not level as seen below, Process Status and Mon 13/06 are positioned mid rows:
The Resource Centre also adds an extra header row as seen below:
This behaviour can be resolved by increasing the Internet Explorer zoom level to 99% or higher.
Hopefully that will help resolve this annoyance for anyone that has come across this issue