SCIF 2.0 Specification - Design Change Requests

3.3.1.3 Installer: Automate update of packages associated with custom task steps

Issue Description:

(Work item 3736 - http://scif.codeplex.com/WorkItem/View.aspx?WorkItemId=3736)
With most task sequence steps, there is an associated package. This is the case with all of the OEM steps. When you create the task sequence and the steps, the package specific to that OEM kit is linked to the step. However, if you uninstall and reinstall, or install a new version that installs a new package (and therefore a new package ID), the task sequence steps are not updated to reflect the new package ID. This causes task sequences to fail unless the ID is updated.

Currently, the only way to update the associated package IDs to existing task sequences is by editing the task sequence. The code within the OEM kit will automatically link the task steps to the appropriate package when the task sequence editor loads the steps. However, it requires that you open every task sequence, edit something to allow the "Apply" button to become enabled, then you have to save the task sequence. This could be a large chore for admins with lots of task sequences.

Changes Needed:

Create the appropriate automations that will automatically update all package references in existing task sequences to the desired package IDs.

Change Description:

InstallShield:
Add a new page to the installation wizard (or a new control on an existing page such as the one for modifying the source boot images) that allows the user to choose whether or not to update all existing task sequences with the newly-installed package information. If they approve (check the box), then InstallShield treats that as a feature selection and drops an XML file into the directory similar to the other XML files that contain installation directives.

ObjectInstaller code:
The code would be modified to accept the <PostInstall> element and perform actions as directed, based on the schema elements defined in the XSD file. The developer would define the WMI class name of the custom task step to search for, as well as the package name and version to find within ConfigMgr and then use for inserting into the task sequences.

Installer Schema:
The following elements would be added to the schema inside the “InstallActions” element:
<xs:element name="PostInstall" minOccurs="0" maxOccurs="1">
  <xs:complexType>
    <xs:choice maxOccurs="unbounded">
      <xs:element name="ResetTsPackageIds" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:attribute name="WmiClassName" type="xs:string" use="required">
          </xs:attribute>
          <xs:attribute name="PackageName" type="xs:string" use="required">
          </xs:attribute>
          <xs:attribute name="PackageVer" type="xs:string" use="required">
          </xs:attribute>
        </xs:complexType>
      </xs:element>
    </xs:choice>
  </xs:complexType>
</xs:element>

Example Scenario:

Last edited Sep 3, 2009 at 8:53 PM by rhearn, version 1

Comments

No comments yet.