Introduction

When installing BizTalk Server it is possible to provide a prerequisite CAB file. This file varies based on BizTalk version, Windows version and 64/32-bit edition of the latter. It is possible to locate and download this file manually. This article will describe a PowerShell script (available in TechNet Gallery) that downloads the correct CAB file automatically based on user input.

For example, with BizTalk Server 2016 the following software may be part of the redistributable CAB file:
  • Microsoft SQL XML 4.0 with Service Pack 1
  • Microsoft Office Web Components
  • Microsoft ADO MD.Net 9.0
  • Microsoft ADO MD.Net 10.0

The CAB-files are specific for each version of BizTalk Server. The image below illustrates the dialog box during installation of BizTalk Server 2016.

Details

The entire script is available below. There is one section per BizTalk Server version, and based on the user's selection of Operating System, the applicable 64 or 32-bit version is downloaded. Only English editions are supported in this script.

<#
.SYNOPSIS
Download BizTalk Server prerequisite CAB-file (English)
.DESCRIPTION
This script downloads the prerequisite CAB-file for BizTalk Server. User is prompted for BizTalk and Windows version and bits
.EXAMPLE
./DownloadBizTalkCAB.ps1
.NOTES
File will be downloaded in current user's Download folder
#>
cls
 
# Get filename from URL
function getfilename($source) {
    $pieces=$source.split("/")
    $piecescount=$pieces.Count
    $filename=$pieces[$piecescount-1]
    return $filename
}
 
$BTversion = Read-Host("Which BizTalk version are you installing? Enter 2016, 2013R2, 2013, 2010, 2009 or 2006R2")
$bits = 64
 
# BizTalk Server 2016
if ($BTversion -eq "2016") {
    $winversion = Read-Host("Which Windows version are you using? Enter 2016, 2012R2, 10 or 8.1")
    switch ($winversion) {
        "10" { $bits = Read-Host("64 or 32-bit version of Windows? Enter 64 or 32")
            switch ($bits) {
            }
        }
        "8.1" { $bits = Read-Host("64 or 32-bit version of Windows? Enter 64 or 32")
            switch ($bits) {
            }
        }
        default { Write-Host("`nInvalid or unsupported Windows version entered. Exiting") -fore Red
                    exit }
    }
}
# BizTalk Server 2013R2
elseif ($BTversion -eq "2013R2") {
    $winversion = Read-Host("Which Windows version are you using? Enter 2012R2, 2012, 8.1 or 7")
    switch ($winversion) {
        "8.1" { $bits = Read-Host("64 or 32-bit version of Windows? Enter 64 or 32")
            switch ($bits) {
            }
        }
        "7" { $bits = Read-Host("64 or 32-bit version of Windows? Enter 64 or 32")
            switch ($bits) {
            }
        }
        default { Write-Host("`nInvalid or unsupported Windows version entered. Exiting") -fore Red
                    exit }
    }
}
# BizTalk Server 2013
elseif ($BTversion -eq "2013") {
    $winversion = Read-Host("Which Windows version are you using? Enter 2012R2, 2008R2, 8 or 7")
    switch ($winversion) {
        "8" { $bits = Read-Host("64 or 32-bit version of Windows? Enter 64 or 32")
            switch ($bits) {
            }
        }
        "7" { $bits = Read-Host("64 or 32-bit version of Windows? Enter 64 or 32")
            switch ($bits) {
            }
        }
        default { Write-Host("`nInvalid or unsupported Windows version entered. Exiting") -fore Red
                    exit }
    }
}
# BizTalk Server 2010
elseif ($BTversion -eq "2010") {
    $winversion = Read-Host("Which Windows version are you using? Enter 2008R2, 2008, 7 or Vista")
    switch ($winversion) {
        "2008" { $bits = Read-Host("64 or 32-bit version of Windows? Enter 64 or 32")
            switch ($bits) {
                64 { $source = "" }
            }
        }
        "7" { $bits = Read-Host("64 or 32-bit version of Windows? Enter 64 or 32")
            switch ($bits) {
            }
        }
        "Vista" { $bits = Read-Host("64 or 32-bit version of Windows? Enter 64 or 32")
            switch ($bits) {
                32 { $source = "" }
            }
        }
        default { Write-Host("`nInvalid or unsupported Windows version entered. Exiting") -fore Red
                    exit }
    }
}
# BizTalk Server 2009
elseif ($BTversion -eq "2009") {
    $winversion = Read-Host("Which Windows version are you using? Enter 2008, 2003, Vista or XP")
    $bits = Read-Host("64 or 32-bit version of Windows? Enter 64 or 32")
    switch ($winversion) {
        "2008" { switch ($bits) {
                64 { $source = "" }
             }
        }
        "2003" { switch ($bits) {
                32 { $source = "" }
             }
        }
        "Vista" { switch ($bits) {
                64 { $source = "" }
                32 { $source = "" }
             }
        }
        "XP" { switch ($bits) {
                64 { $source = "" }
                32 { $source = "" }
              }
        }
        default { Write-Host("`nInvalid or unsupported Windows version entered. Exiting") -fore Red
                    exit }
    }
}
# BizTalk Server 2006R2
elseif ($BTversion -eq "2006R2") {
    $winversion = Read-Host("Which Windows version are you using? Enter 2003, Vista or XP")
    $bits = Read-Host("64 or 32-bit version of Windows? Enter 64 or 32")
    switch ($winversion) {
        "2003" { switch ($bits) {
             }
        }
        "Vista" { switch ($bits) {
             }
        }
        "XP" { switch ($bits) {
              }
        }
        default { Write-Host("`nInvalid or unsupported Windows version entered. Exiting") -fore Red
                    exit }
    }
}
# Invalid Windows version
else {
    Write-Host("`nInvalid or unsupported Windows version entered. Exiting") -fore Red
    exit
}
Write-Host("`nDownloading BizTalk Server $BTversion prerequisite CAB for Windows $winversion - $bits bit edition...") -Fore Green
 
try {
    # Destination downloadfolder
    $destination = $env:USERPROFILE + "\Downloads\"
    $destination += getfilename $source
 
    # Download CAB-file
    Invoke-WebRequest $source -OutFile $destination
 
    Write-Host("`nFile download complete: " + $destination)
}
catch {
    Write-Host("`Download failed. Note that some URLs are not available, check the script source. If the URL is there, verify your Internet connection and try again.") -fore Red
    exit
}

The image below shows one sample run of the script. The user is first prompted for BizTalk version, and then Windows version. The user is only prompted for available and supported Windows versions, based on the selected BizTalk Server version. The applicable CAB-file is eventually available in the user's Downloads folder. Note that the user is not prompted for 64/32-bit version when only one of them is available.

All BizTalk Server versions since 2006R2 are available. The download URLs are based on this article. Note that many links (especially for older versions) are broken. These have not been included in the script.

Instructions

Download the script here. Run the script in an admin PowerShell console. There are no parameters. Answer the questions to get the correct CAB-file. The downloaded file will be available in the user's Downloads folder. To get more than one CAB-file, just run the script again.

See Also

Read suggested related topics:

Another important place to find an extensive amount of BizTalk related articles is the TechNet Wiki itself. The best entry point is BizTalk Server Resources on the TechNet Wiki