More adventures in scripting - I've been using the Microsoft Deployment Toolkit (MDT) 2010 to work on scripting server installations in our fledgling Hyper-V environment.  The goal of this process is both to be able to quickly stand up new environments for disaster recovery as well as eliminating infrastructure discrepancies when deploying across environments (no more "It worked on my box" or "It worked in the QA environment").  On my future TODO list is to post my learnings for this process (stay tuned).

On to the topic of THIS blog:  One of the challenges I faced was the BizTalk 2006 R2 quiet install.  Although the installation guide shows the command line switches (/CABPATH, /L(og), etc.), when it comes to the "ADDLOCAL" switch, which specifies which features of BizTalk to install, all that they give you is the "ALL" command, which installs all of the features (oddly enough).  Unfortunately, in my environment, I do not want to(and cannot even if I did due to security issues) install every feature.  For example, I can't install portal components and dev/SDK tools into my production environment. 

Unlike the guides for SQL Server, which shows EVERY possible valid value for the ADDLOCAL parameter, I couldn't find much additional information about the values for BizTalk.  I asked around and didn't find anyone who had information as to which values were valid for this switch.  I did find various posts which had a listing of the switches, but they didn't seem to map to the features you see in the GUI very well.  What I ended up doing in the end was installing, one by one, each feature and recording the ADDLOCAL commands which are written to the setup log (which was a real testament to Hyper-V and the snapshot process!).  I post them here in the hopes that others may learn from these.

A few notes:  You may see the commands, such as "BizTalk" and "WMI" repeated for each section heading.  This is by design.  Apparently some components are ubiquitous across all features, but they only need to be specified once.  For example, if you are installing the Server Runtime components and the Administration tools, only specify "BizTalk" and "WMI" once.  Also, I found that the switches are case-sensitive.  FBAMClient blows up while FBAMCLIENT is valid.

 BizTalk 2006 R2 features

Feature

ADDLOCAL Command

Documentation

Documentation

Server Runtime

BizTalk, WMI, Runtime, Engine, MOT, HwsBaseAssemblies, MessageQueuing, MSMQ, HwsRuntime

Base EDI Adapter

(Deprecated in 2006 R2)

BizTalk EDI/AS2 Runtime

MsEDIAS2, MsEDIAS2StatusReporting

Windows Communication Foundation

WCFAdapter

Portal Components

BizTalk, WMI, InfoWorkerApps

Business Activity Services

(Deprecated in 2006 R2)

Business Activity Monitoring

BAMPortal

Human Workflow Web Service

HwsWebService

Administration Tools

BizTalk, WMI, AdminAndMonitoring, AdminTools, MonitoringAndTracking, BizTalkAdminSnapIn, HealthActivityClient, BAMTools, HwsWMIProvider, PAM

Windows Communication Foundation Administration Tools

WcfAdapterAdminTools

Developer Tools and SDK

BizTalk, WMI, SDK, Development, VSTools, BizTalkExtensions, BizTalkExplorer, Designer, OrchestrationDesigner, PipelineDesigner, XMLTools, AdapterImportWizard, HwsDesigner, BasSchemaExtension, DeploymentWizard, TrackingProfileEditor

Additional Software

BizTalk, WMI, AdditionalApps

Enterprise Single Sign-On Administration

SSOAdmin

Enterprise Single Sign-On Master Secret Server

SSOServer

Business Rules Components

RulesEngine

MQSeries Agent

MQSeriesAgent

Windows SharePoint Services Adapter

WssAdapterWS

BAM Alert Provider For SQL Notification Services

OLAPNS

BAM Client

FBAMCLIENT

BAM-Eventing

BAMEVENTAPI

 

 

UPDATE***I went ahead and did the same for BizTalk 2009 features as they changed slightly from 2006 R2 to 2009 (mostly the removal of Human Workflow Services from 2006 R2 and the addition of Project Build Component). 

 BizTalk 2009 features

Feature

ADDLOCAL Command

Portal Components

BizTalk, WMI, InfoWorkerApps

Business Activity Monitoring

BAMPortal

Developer Tools and SDK

Development, MsEDISchemaExtension, MsEDISDK, MsEDIMigration, SDK, WMI, BizTalk, Migration, BizTalkExplorer, BizTalkExtensions, OrchestrationDesigner, Designer, PipelineDesigner, XMLTools, AdapterImportWizard, VSTools, WCFDevTools, DeploymentWizard, TrackingProfileEditor

Documentation

Documentation

Server Runtime

BizTalk, WMI, Runtime, Engine, MOT,  MSMQ

BizTalk EDI/AS2 Runtime

MsEDIAS2, MsEDIAS2StatusReporting

Windows Communication Foundation

WCFAdapter

Administration Tools

BizTalk, WMI, AdminAndMonitoring, AdminTools, MonitoringAndTracking, BizTalkAdminSnapIn, HealthActivityClient, BAMTools, PAM

Windows Communication Foundation Administration Tools

WcfAdapterAdminTools

Additional Software

BizTalk, WMI, AdditionalApps

Enterprise Single Sign-On Administration

SSOAdmin

Enterprise Single Sign-On Master Secret Server

SSOServer

Business Rules Components

RulesEngine

MQSeries Agent

MQSeriesAgent

Windows SharePoint Services Adapter

WssAdapterWS

BAM Alert Provider For SQL Notification Services

OLAPNS

BAM Client

FBAMCLIENT

BAM-Eventing

BAMEVENTAPI

Project Build Component

ProjectBuildComponent

And finally here is a working script for an install on a server with the "basic" components, but omitting such things as the HwsWebService, Developer Tools, and EDI Adapter/Runtime.  This would be included in a .cmd file (I parametarized the script for easier manipulation of the install options.

SET InstallDirectory=d:\Biztalk Server R2
SET CABLocation=d:\Biztalk Server R2\redist\BtsRedistW2k3EN64.cab
SET InstallOptions=BizTalk,WMI,Runtime,Engine,MOT,HwsBaseAssemblies,MessageQueuing,MSMQ,HwsRuntime,WCFAdapter,InfoWorkerApps,BAMPortal,AdminAndMonitoring,AdminTools,MonitoringAndTracking,BizTalkAdminSnapIn,HealthActivityClient,BAMTools,HwsWMIProvider,PAM,WcfAdapterAdminTools,AdditionalApps,SSOAdmin,SSOServer,RulesEngine,OLAPNS,FBAMCLIENT,BAMEVENTAPI
SET InstallDir=D:\Program Files\Microsoft BizTalk Server 2006
SET CompanyName=MyCompany
SET UserName=MyUser
SET OutputLog=BTSinstallLog.log

"%InstallDirectory%\setup.exe" /passive /CABPATH "%CABLocation%" /l "%OutputLog%" /InstallDir "%InstallDir%" /CompanyName "%CompanyName%" /UserName "%UserName%" /AddLocal "%InstallOptions%"

***Update***

I did not previously have the AddLocal commands for the MQSeriesAgent or Windows SharePoint Services Adapter Web Service features listed because my dev machine did not have the pre-requisites installed to support these.  However, I was reminded of the Orca tool which allows you to inspect MSI payload by a colleague, and this lists out all of the features, so I've completed the table with these values.  Thanks John!