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 | Comments Off on Check #MSProject version number on remote machines using #PowerShell #ProjectServer #PS2010 #Office
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:

image

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
Exit
remove-PSSession -Session $session}
}

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

http://technet.microsoft.com/en-us/library/dd819498.aspx

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:

image

Advertisements

Create a free website or blog at WordPress.com.
Entries and comments feeds.

%d bloggers like this: