Editing the TinyTERM Plus MSI File
The TinyTERM MSI file is the complete product install. Once the necessary configuration is done, the MSI can be customized using any MSI editing tool. The following instructions assume TinyTERM version 4.7.0 or higher, and Microsoft Orca as the MSI editor.
A screencast demonstrating this process for TinyTERM versions 4.60-4.65 is also available.
- Install TinyTERM onto a PC and license it. This can be the same PC where the MSI file will be edited.
- Make any desired changes: keyboard mappings, connection configurations, etc.
- On the PC with Orca installed, copy the TinyTERM MSI file into a working directory. No other files should be in this directory.
- Rename the MSI file to
- From the PC where TinyTERM is installed, copy the files changed during the configuration into the working directory. These should all be in the user's Documents\TinyTERM folder.
- Get and record the size of each of these files by right-clicking the file and selecting Properties.
- Open the
TinyTERM-modified.msifile in Orca.
- From the Transform menu, select New Transform.
- Locate and select the File table.
- Sort the File table by clicking the header to the Sequence column. Note the last number in the column.
- From the Table menu, select Add Row. For each file from step 5:
- Set the File, Component and File Name fields all to match the file name.
- Enter the file size in bytes as found in step 8.
- Set the Attribute to
8192to indicate an uncompressed file.
- Set the Sequence to be one higher than the highest existing in the File table, incrementing it further for each file.
- Each row creates a new component reference for the associated file. To add these, select the Components table.
- From the Table menu, select Add Row. Again for each file:
- Set the Component and KeyPath values to the file name.
- Set the Directory to
TINYTERMto put the file into the default install directory.
- Set the Attributes to
8to allow the installer to count references to the file.
- Each file must also be added to the Feature table:
- Set Feature to the file name.
- Set Title to any unique name, preferably one easy to associate
with the file; e.g.,
- Set Display to a moderately high odd number for a silent install, such as
- Set Level to
1so the file is installed initially.
- As before, the Directory is
- Set Attributes to
0so the installer will check locally for the file.
- Each new Feature must have its components specified in the FeatureComponents table. Set both Feature and Component to the file name, as in step 9a.
- The nextt table to edit is the Media table. Once media source is already listed, the existing MSI file. Add a second source for the custom configuration files:
- Set the DiskID to
- Set LastSequence to the highest number used in step 13d, which will be the last file pulled from this source.
- DiskPrompt is the text that prompts the user to insert the disk. For a silent install, any text can be used.
- Set the VolumeLabel to
DISK2, giving the new media line a unique name.
- Windows Vista and newer have additional security on the TinyTERM directory.
For files that all users need access to, such as
license.crt, edit the LockPermissions table. For each file, enter a new line using these parameters:
- LockObject: enter the file name; e.g.,
- Domain: leave this field blank
- This completes the chain of references. To create the transform, go to
the Transform menu and select Generate Transform. Save the file in the working
directory that contains
TinyTERM-modified.msias the file name
At this point the transform is complete. To use the transform, copy the working directory structure to a location with access for all users. On Windows XP, execute it in silent mode with the following command:
msiexec /i TinyTERM-modified.msi TRANSFORMS=TinyTERM-modified.mst /qn
For Windows Vista, Windows 7, Windows 8 or Windows 10, you'll need to add
ALLUSERS="1" to the command:
msiexec /i TinyTERM-modified.msi TRANSFORMS=TinyTERM-modified.mst ALLUSERS="1" /qn
As with other Windows commands, this can be run from a batch file, a login script, etc.