Monday, April 23, 2018

Display version info for installed SharePoint product and language packs

PowerShell script which retrieves the version information for the patch baseline from the registry and allows to identify components.

**************************************

Param(
  # decide on whether all the sub-components belonging to the product should be shown as well
  [switch]$ShowComponents
)
# location in registry to get info about installed software
$RegLoc = Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall
# Get SharePoint Products and language packs
write-host "Products and Language Packs"
write-host "-------------------------------------------"
$Programs = $RegLoc | 
where-object { $_.PsPath -like "*\Office*" } | 
foreach {Get-ItemProperty $_.PsPath} 
$Components = $RegLoc | 
where-object { $_.PsPath -like "*1000-0000000FF1CE}" } | 
foreach {Get-ItemProperty $_.PsPath} 
# output either just the info about Products and Language Packs
# or also for sub components
if ($ShowComponents.IsPresent)
{
$Programs | foreach { 
$_ | fl  DisplayName, DisplayVersion; 
$productCodes = $_.ProductCodes;
$Comp = @() + ($Components | 
where-object { $_.PSChildName -in $productCodes } | 
foreach {Get-ItemProperty $_.PsPath});
$Comp | Sort-Object DisplayName | ft DisplayName, DisplayVersion -Autosize
}
}
else
{
$Programs | fl DisplayName, DisplayVersion

}

**************************************

Output is something like this:


No comments:

Post a Comment