Check #MSProject version number on remote machines using #PowerShell #ProjectServer #PS2010 #Office

May 14, 2012 at 8:09 pm | Posted in Administration, CU, Information, Installation, PowerShell, Service Pack | Leave a comment
Tags: , ,

Below are two examples of PowerShell scripts to check the Project Professional 2010 version on remote machines. Ultimately the best solution would be to use Microsoft System Centre Configuration Manager to manage software updates. It is key that all Project Professional clients have the same version, especially if connecting to Project Server. Having all Project Professional clients at the same patch level will help with the stability of your EPM farm.

The two PowerShell scripts below give the same results but I wanted to include both as these are only examples of what is possible. Both scripts read the client machines from a text file. Add all of the client machines that have Project Profession installed into the text file as seen below:


The first simple version just checks the product version from the file system on the client machine using a UNC path location:

$pcs = Get-Content "C:\pcs.txt"
foreach($pc in $pcs)
$proj = (Get-Command "\\$pc\C$\Program Files (x86)\Microsoft Office\Office14\WINPROJ.exe").FileVersionInfo.Productversion
Write-host "$pc has the following version of Project Professional:" $Proj

The second option is slightly more complex and automates Project Professional and gets version from the build property:

$pcs = Get-Content "C:\pcs.txt"
foreach($pc in $pcs)
$session = New-PSSession -Name $pc1 -ComputerName $pc
Write-host $pc -NONEWLINE
Invoke-Command -Session $session -ScriptBlock {
$Proj = new-object -comobject msproject.application
Write-host " has the following version of Project Professional:" $Proj.Build
$Proj.quit | out-null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Proj) |out-null
remove-PSSession -Session $session}

The second option will require the remote machines to be configured for PowerShell remoting:

Both scripts should be run with an account that has admin access (domain admin) on all client machines.

An example output for both scripts can be seen below. Please note, the scripts were only run against one machine, if you have multiple client machines each one will appear on a new line:



Leave a Comment »

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at
Entries and comments feeds.

%d bloggers like this: