Archive

Author Archive

#ProjectServer 2010 / 2007 high-level Audit Export via #PowerShell #MSProject #PS2010 #EPM

March 9, 2012 1 comment

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:

http://pwmather.wordpress.com/2012/03/05/projectserver-2010-2007-high-level-audit-export-via-powershell-msproject-ps2010-epm/

Slipstream #Project Professional 2010 updates #MSProject #PS2010 #PS2007 #ProjectServer #MSOffice

August 2, 2011 Leave a comment

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

image

Press Enter and accept the license agreement in the pop up box, you will then see the files extracting dialog box

image

Once complete you will then see installation complete message:

image

Click OK then you will see the extracted files in the C:\Updates folder:

image

Copy the contents of the C:\Updates folder and paste the contents into the Updates folder in the install media.

image

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

image

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:

image

Click OK then you will see the extracted files in the C:\Updates folder:

image

Copy the contents of the C:\Updates folder and paste the contents into the Updates folder in the install media.

image

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

July 15, 2011 Leave a comment

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:

image

Output:

image

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

July 11, 2011 Leave a comment

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:

image

When they click, “Go back to Site” they will see that document has still been uploaded:

image

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:

image

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.

image

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

July 8, 2011 Leave a comment

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”

image

The patch level of all farm components will be detailed here, as you can see below, Project Server is listed at the bottom:

image

The farm configuration database version can also be checked on the “Manage Servers in this farm” page:

image

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

July 6, 2011 2 comments

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).

image

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

Categories: Work Tags: , ,

Project Server 2007 / 2010 scheduled tasks not running #PS2010 #ProjectServer #EPM #PS2007

July 4, 2011 Leave a comment

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.

Follow

Get every new post delivered to your Inbox.

Join 1,663 other followers

%d bloggers like this: