I wrote a very simple PowerShell script which allows you to easily determine the installed BizTalk version and service pack level.
You cannot just look at the version number anymore because it seems SP1 of BizTalk Server 2006 R2 does not update the version number. This means the version numbers for BizTalk 2006 R2 without and with service pack 1 applied are the same. See also my blog post here.
The script will detect any BizTalk version and service pack from 2004 and later. I have tested it on different environments with different BizTalk versions. Please let me know if it is not working
Below is the source, but you can also download it from here.
# Initialization of helper variables # BizTalk version numbers $versionBTS2004 = "3.0.4902.0" $versionBTS2004SP1 = "3.0.6070.0" $versionBTS2004SP2 = "3.0.7405.0" $versionBTS2006 = "3.5.1602.0" $versionBTS2006R2 = "3.6.1404.0" $versionBTS2009 = "3.8.368.0" # BizTalk version description $descriptionBTS2004 = "BizTalk Server 2004" $descriptionBTS2004SP1 = "BizTalk Server 2004 with service pack 1" $descriptionBTS2004SP2 = "BizTalk Server 2004 with service pack 2" $descriptionBTS2006 = "BizTalk Server 2006" $descriptionBTS2006R2 = "BizTalk Server 2006 R2" $descriptionBTS2006R2SP1 = "BizTalk Server 2006 R2 with service pack 1" $descriptionBTS2009 = "BizTalk Server 2009" # Registry paths $bizTalkRegistryPath = "HKLM:\SOFTWARE\Microsoft\BizTalk Server" $biztalk2006SP1UninstallRegistryPath = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Biztalk Server 2006 R2 Service Pack 1 `[KB 974563`]' $installedVersion = $null # Check if BizTalk is installed: if ((Test-Path $bizTalkRegistryPath) -eq $true) { # Set location to BizTalk registry key Set-Location $bizTalkRegistryPath $key = Get-ChildItem # Get version number $productVersion = $key.GetValue("ProductVersion") switch ($productVersion) { $versionBTS2004 { $installedVersion = $descriptionBTS2004 } $versionBTS2004SP1 { $installedVersion = $descriptionBTS2004SP1 } $versionBTS2004SP2 { $installedVersion = $descriptionBTS2004SP2 } $versionBTS2006 { $installedVersion = $versionBTS2006 } $versionBTS2006R2 { if ((Test-Path $biztalk2006SP1UninstallRegistryPath) -eq $false) { $installedVersion = $descriptionBTS2006R2 } else { $installedVersion = $descriptionBTS2006R2SP1 } } $versionBTS2009 { $installedVersion = $descriptionBTS2009 } } } if ($installedVersion -eq $null) { Write-Host "BizTalk Server is not installed on this machine." Exit } Write-Host "BizTalk Server installation found on this machine." Write-Host "Product version number: $productVersion" Write-Host "Installed version: $installedVersion"
Tagged: BizTalk, BizTalk 2006 R2, PowerShell
