The Microsoft Provisioning System (MPS) Deployment Tool is a stand-alone .NET Framework application that enables you to automate the distribution and configuration of MPS components in your hosting environment. The purpose of the Deployment Tool is to automate MPS deployment, as well as to automate the steps necessary to deploy the hosting environment.

What Does It Do?

The following is a general list of actions that the MPS Deployment Tool is able to perform to deploy components of a solution:

  • Runs Microsoft Windows Installer (MSI) packages (currently this feature is only used for installation and uninstallation actions).
  • Runs MPS named procedures:
    • Initialization Procedures
    • Deployment Automation Namespace Procedures
  • Automates the configuration of Active Directory.

MPS Deployment Tool UI

The MPS Deployment Tool UI provides the following key features:

  • Assign servers to key roles:
    • MPS Servers
    • SQL Servers
  • Display available deployment actions.
  • Display the status of actions taken.
  • Display a history of actions taken.
  • Display a list of pending actions.

MPS Deployment Tool Engine

The Deployment Tool Engine provides the following:

  • Enforcement of dependencies as defined in the MpsRequirements.xml file
  • Automation of deployment actions
  • Running of MSIs through MpsRemoteExec.exe
    Note:
    MSI command-line parameters are primarily hard coded and in many cases specific to the MSI being installed. The following are some types of MSIs installed by the Deployment Tool.
    • MPF.msi (installs all MPF related things)
    • Namespace MSIs
    • Non-Core MPF Providers (core providers are installed by MPF.msi)
    • Provisioning Clients including Microsoft FrontPage and Windows SharePoint Services
    • Web Services
    Every time that an MSI is run, a log file is created for troubleshooting purpose. For information about reading MSI logs, see Read a Deployment Tool MSI Log.
  • Synchronization of passwords across services, for example, Active Directory, COM+ component, and Win32 Services
  • Direct and specific Active Directory modifications
  • Running of MPS named procedures

Configuration files

There are two key configuration files: MpsConfig.xml and MpsRequirements.xml. These are created and maintained on the first server that the Deployment Tool is installed in a given Active Directory domain or forest.

  • MpsConfig.xml - Stores the state of the currently deployed solution. The Deployment Tool reads from and writes to this file during usual operation.
  • MpsRequirements.xml - Stores the initial definition of the solution and defines the actions that can be taken as part of a solution deployment. This file also defines the components that will be installed in a given solution, as well as dependencies between entities. The MpsRequirements.xml file contains no deployment or customer specific information. The Deployment Tool transfers the contents of this file to the MpsConfig.xml file in the following cases:
    • The requirements schemaVersion tag is greater than that of MpsConfig.xml in the case of an upgrade.
    • MpsConfig.xml has no requirements schemaVersion tag in the case of a new installation.

Every time that the Deployment Tool starts, it locates these configuration files by first checking the following Object in Active Directory. This object is created in the System container at the root of an Active Directory forest.

  Copy Code
Dn: CN=MPS Server Config Entity,CN=System,DC=Fabrikam,DC=com

The location of the actual files or more specifically the MSIShare and ConfigShare Universal Naming Convention (UNC) paths is stored in the adminDescription attribute as follows:

  Copy Code
adminDescription: <config><comment>WARNING - DO NOT MODIFY THIS PROPERTY</comment> 
<logShare>\\MPSENG\ConfigShare</logShare><msiShare>\\MPSENG\MSIShare</msiShare></config>

MpsRemoteExec.exe

The main idea behind this component is to allow for secure remote running of MSIs for a user account with Domain Administrator rights. To achieve this, the Deployment Tool runs MpsRemoteExec.exe on the remote or target server. MpsRemoteExec.exe is available to any server in the environment because it is installed to the MSIShare directory. Here is a summary of the process:

  1. The Deployment Tool runs MpsRemoteExec.exe on the remote or local server.
  2. MpsRemoteExec.exe then installs and starts a service called MPSRemoteExecSVC, which is embedded inside MpsRemoteExec.exe at build time.
  3. The MPSRemoteExecSVC service then runs MsiExec.exe, passing the command line specified by the Deployment Tool and referencing the MSI that is stored in the MSIShare share, which was created the first time the Deployment Tool was installed.
  4. A log file is created on a local or remote share called ConfigShare under the Log directory.
  5. When an MSI exits, it returns either a success or a failure which the Deployment Tool then reads and reports back to the user.