Macrovision InstallScript Engine

Version: 8
Views: 4.8k  |  Created: 05/19/2006

Average Rating: 0
InstallScript Engine has 1 inventory records, 1 Questions, 0 Blogs and 2 links. Please help add to this by sharing more!

Deployment Tips (9)

Most Common Setup Type
Not Determined
Average Package Difficulty Rating
Rated 4 / 5 (Somewhat Difficult) based on 3 ratings
Most Commonly Reported Deployment Method
Windows Installer with Custom Transform (MST)
or cancel
125
Note
Here is a simple solution to deploying and using ISscript (any version to date) that has worked for us. Firstly I will explain what I understand to be the problem so that you can understand the solution better. Please note this will be more difficult for installations that have embedded versions of isscript rather than a sepearate isscript msi but the principal is the same.

The problem is down to DCOM. The installscript engine is used for any installation that contains installscript (like wscript/cscript is needed to run a vbscript).
If you were to run DCOMCNFG.EXE on your PC, you will most likely see some entries for InstallShield DCOM configuration items. This is a major part of ISScript. If you select the properties you will notice that an 'out-of-the-box" installation of Isscript sets the identity to interactive user. What this means is that Isscript will run with the credentials of the logged on user which is not normally good enough in a deployment situation. Instead what we want is for Isscript to run as the launching user. In otherwords we need to run Isscript using the elevated user that group policy, sms or other deployment method uses such as the system account.

This all explains why Isscript installs correctly but when attempting to use it, it does not work.

The most popular solution found in other posts would be to delete the run as interactive user key in the isscript msi. By deleting the key you are installing the DCOM object as the launching user. The default for a DCOM object is launching user and you set that by NOT having a run as key. This is all very good but in the real world, this would not work. The reason being is that although installshield versions overwrite each other, the DCOM objects don't so you may be too late in getting your modified version to the PC and a manual installation or other previously attempted deployed version has already done its damage and your modified package will not fix it.

Some other solutions i have found have been:

Install and modify all version onto a PC - Isscript does not co-exist with other versions. New versions overwrite older ones and older versions overwrite newer ones (Except for DCOM objects).

Big long list of changes to registry keys etc in the isscript MSI - Now i have explained the problem, hopefully you can see a complex solution like this is very unlikely to work and is more likely to break Isscript than to do any good.

********************
Finally my solution
********************

This has to be done for every Isscript package

1. Deploy Isscript.msi (untouched) on to the target machine
2. Run the script shown below. The script looks for all required Installscript DCOM objects (all Isscript versions) using WMI, reports on the AppID and deletes the run as registry key for that AppID. No modification is required to the script for your version of Isscript or environment.
3. deploy your product that requires Isscript

*********************************************************
Script - Copy from the line directly below these stars to the bottom of this post
*********************************************************

Dim WMIService, WshShell, DComApps, DComApp

'Create WMI object
Set WMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
'Create shell object
Set WshShell = CreateObject("WScript.Shell")

'Query all DCOM object on the machine that are Installshield related and set to run as interactive user
Set DComApps = WMIService.ExecQuery("Select * from Win32_DComApplicationSetting where Caption Like '%InstallShield%' and RunAsUser='Interactive User'")

'Delete the registry key that set the run as for the DCOM application (DCOM guid is used from the above query to locate the registry)
For Each DComApp In DComApps
WshShell.RegDelete "HKEY_CLASSES_ROOT\AppID\" & DComApp.AppID & "\RunAs"
Next

'Query all DCOM object on the machine that are Installshield related and set to run as interactive user
Set DComApps = WMIService.ExecQuery("Select * from Win32_DComApplicationSetting where Caption Like '%IDriverT%' and RunAsUser='Interactive User'")

'Delete the registry key that set the run as for the DCOM application (DCOM guid is used from the above query to locate the registry)
For Each DComApp In DComApps
WshShell.RegDelete "HKEY_CLASSES_ROOT\AppID\" & DComApp.AppID & "\RunAs"
Next
Setup Information:
Setup Type: unspecified
Deployment Method Used: unspecified
Deployment Difficulty: unspecified
Platform(s): Windows
Please log in to comment
119
Note
I simply used WinInstallLE version to generate new package and product codes for all versions of installscript.

Deployed via GP no problems.

Also, at least 2 (7 and 8) have updates, which I don't believe can be downloaded seperately, they are extracted and updated during the setup process. My example was MYOB. So I ran setup, got all the updated versions (ie, the files in ...driver\7\Intel 32 directory) I need and put them into an 'update_isscript.msi' and deployed via GP.

So far, every application using Isscript works since every version is installed. I did this by a seperate group policy and enforcing it, so it takes preceedance before the applications attempt installation.

-SP
Setup Information:
Setup Type: unspecified
Deployment Method Used: unspecified
Deployment Difficulty: unspecified
Platform(s): Windows
Please log in to comment
118
Note
We recently ran into this situation at our work and in order to deploy InstallShield Scripts 8-11 I made a new MSI named ISScript (Version #) Installer.msi I added a text file to the file deployment to ensure that the isscript was installed (also if the MSI is empty you will run into errors).

I then went to custom actions, add a new nested MSI with the media on source location. I added the original isscript to Install on Execute after Product Finalize. This will allow you to deploy all the ISScript versions over AD and also remove them.

For 7 since there is a short file name error I did a big nono in the community and just repackaged it using a before and after snapshot.

This allowed us to deploy all of our applications that use ISScripts 7 to 11 over AD.
Setup Information:
Setup Type: unspecified
Deployment Method Used: unspecified
Deployment Difficulty: unspecified
Platform(s): Windows
Please log in to comment
117
Note

This comes in the format ISScript8.msi and needs to be installed before deploying some MSI installers in Group Policy.

It's important to use the latest version available. Look at the date of the digital signature to find out what version you have. The latest I could find is the 09 April 2003 and it is available from:

http://support.installshield.com/kb/view.asp?articleid=Q108527

(There is a later version of the file available at InstallShield Q109906, but it actually downgrades one of the files inside, so I wouldn't advise using it)

INSTALLING THROUGH GROUP POLICY
This installer never actually registers itself properly with Windows Installer and is not really designed for use with Group Policy

If you install it with GP directly, standalone installers that use ISScript will fail with the following error:

1608: Unable to create InstallDriver instance.
Return code: -2147221164

Also, all of the versions of ISScript (7,8,9,10,11) use the same Product Code which means that more than one version won't install properly in GP

The fix is to create a wrapper which runs the MSI file as a 'concurrent' or 'nested' installation.
If you want more versions of ISScript installed, you'll need to create a new wrapper for each one.
NB You can't just copy an old one as you need to have a new Product ID.

See the following for more information:

http://www.appdeploy.com/messageboards/tm.asp?m=9841
http://www.appdeploy.com/messageboards/tm.asp?m=9872
http://community.installshield.com/showthread.php?t=154647

TO CREATE THE WRAPPER
Copy ISScript8.msi to a folder
Use WIWW 0.0.0.1 (http://itninja.com/wiww)
 Create a new MSI, 'ISScript8 Wrapper.msi', in the same folder
 Add Install Command:
  Property: SourceDir
  Program to run: (Type in) ISScript8.msi
  Parameters: ALLUSERS="[ALLUSERS]"
  DON'T reboot at the end of installation
 Uninstall Command:
  None
 Search for Files:
  None
 Product Details:
  Language: English (United States)
  LEAVE IN Add/Remove Programs (for testing)
Edit with Orca:
 CustomAction table:
  Drop 'WIWW_InstallCommand1'
  Change 'WIWW_InstallParam1' so that the 'Type' is '23' and the 'Source' is 'ISScript8.msi'
   (The 'Target' should already be 'ALLUSERS="[ALLUSERS]"')
 InstallExecuteSequence table:
  Drop 'WIWW_InstallCommand1'
  Change the 'Condition' for 'WIWW_InstallParam1' to 'NOT REMOVE' (instead of 'Not Installed')
  Change the 'Condition' for 'ResolveSource' to 'NOT REMOVE' (instead of 'Not Installed')
   (This is so that you can do a Group Policy 'Redeploy' if you need to)

Setup Information:
Setup Type: unspecified
Deployment Method Used: unspecified
Deployment Difficulty: unspecified
Platform(s): Windows
Please log in to comment
117
Note
v8.1.0.304

After trawling the various app packaging websites I've seen some good points relating to the install of ISscript & lots of workarounds...

Atach installscript engine to one msi via GPO
Follow up Isscript.msi question
Bob Kelly's post at AppDeploy
Error when deploying with AD
Orakel's post on DoctorDeploy
Unattended installation: "Failed to Initialize script support" problems
Possible isscript error fix

...but I haven't seen anyone provide a comprehensive solution to the actual problem, so please allow me to provide a far better solution (IMHO).

This solution is based on ISScript v8.1.0.304 but I guess it could be applied to any version of ISscript.msi.

1. Can't use a transform
It is not possible to create a transform for the original Installshield MSI as is normal practice when modifying software packages which are supplied in the MSI format by third parties. It was necessary to change the package Code for the product to stop any conflicts between the different versions of InstallScript which have all been created with the same package code. If Orca attempts
to modify the Package Code within a transform the option is greyed out. The reason this is not possible is because the Package Code is part of the summary information stream. The Windows Installer SDK states:
“A transform can modify information that is in any persistent table in the installer database. A transform can also add or remove persistent tables in the installer database. Transforms cannot modify any part of an installation package that is not in a database table, such as information in the summary information stream, information in substorages, information in nested installations, or files in embedded cabinets”.

It was therefore necessary to modify the original MSI. Open the Installshield ISScript MSI in Orca & save as “ISScript_v8.1.0.304.Msi”. Create a new Package Code by viewing the Summary Information & generating a new GUID using the “New GUID” button to the right of the existing GUID

2. Missing “ISscript.msi” actions
When an install is performed with Installshield’s original MSI, “ISscript8.msi”, it does not appear in Add Remove Programs as the property “ARPSYSTEMCOMPONENT” has been set with a value of “1”. Removing this property will not result in an MSI which installs correctly. The SDK states:
“Note: This only affects the display in the ARP. The Windows Installer is still capable of repairing, installing-on-demand, and uninstalling applications through a command line or the programming interface”.
& “To hide an application from the Add or Remove Programs feature in Control Panel and still be able to use the Windows Installer to manage an application, leave the registration actions in the sequence tables, and set the ARPSYSTEMCOMPONENT Property in the Property Table to 1 (one). The application does not appear in the Add or Remove Programs feature, but you can use the Windows Installer to install-on-demand, uninstall, repair, and reinstall the application”.

If the ARPSYSTEMCOMPONENT is removed the application still won’t appear in Add/Remove Programs. The clue was in the previous SDK statement: “leave the registration actions in the sequence tables “.

As the SDK states:
“Registration is used by the installer for advertisement and by the Add or Remove Programs feature in Control Panel. If an application is not registered, it cannot be advertised, and is not listed in the Add or Remove Programs feature in Control Panel. You can omit registering an application by removing the RegisterProduct Action, RegisterUser Action, PublishProduct Action, and PublishFeatures Action from the InstallExecuteSequence Table and AdvtExecuteSequence Table. All of these actions must be removed, or some trace of the application may remain in the registry. Removing all of these actions prevents the application from being listed in the Add or Remove Programs feature in Control Panel, and prevents the advertisement of the application. Removing all of these actions also prevents the application from being registered with the Windows Installer configuration data.

This means that you cannot remove, repair, or reinstall the application by using the Windows Installer Command-Line Options, or the Windows Installer application programming interface (API)”.

To ensure that the InstallScript MSI registers itself, add the following rows to the InstallExecuteSequence table.

Action Condition Sequence
PublishFeatures N/A 6300
PublishProduct N/A 6400
RegisterProduct N/A 6100
RegisterUser N/A 6000

Adding these 4 rows will prevent any ICE82 errors occurring during MSI validation.

If the InstallExecuteSequence table of “ISscript8.msi” is compared to the standard Wise Windows template it is apparent that there are still more rows in the Wise template. Some of the rows are unimportant but some are vital to ensure InstallScript is installed & removed correctly. Add the following rows too:

Action Condition Sequence
ProcessComponents N/A 1600
UnpublishFeatures N/A 1800
UnregisterComPlus N/A 2100

If it is necessary to advertise components the following rows would be added.

Action Condition Sequence
PublishComponents N/A 6200
UnpublishComponents N/A 1700

3. Missing “ISscript.msi” ComponentIDs
Even with the important missing actions added the “ISscript.msi” install will not register its components correctly. This can be proved by using the SDK tool “MSISPY” to view the installed components for ISScript. MSISPy shows that the app is installed locally but lists no components. The reason this occurs is because the Component table has values missing from the ComponentID column for each component. Without the componentIDs the MSI will not be correctly registered with the Windows Installer configuration data. The SDK states:
“ComponentId A string GUID unique to this component, version, and language. If this column is null the installer does not register the component and the component cannot be removed or repaired by the installer. This might be intentionally done if the component is only needed during the installation, such as a custom action that cleans up temporary files or removes an old product. It may also be useful when copying data files to a user's computer that do not need to be registered”.

Create a unique ComponentID for each component using the “Paste New GUID” button.

4. Ensuring uninstall removes all files & registry entries
With the previous steps included in the MSI it should now install correctly & register all components. It will however still have problems during uninstall. Although no error messages will occur during uninstall the MSI will not be removed from the target PC.

All files will be left behind. To remedy this it is necessary to add the following rows to the RemoveFile Table.

Filekey Component FileName DirProperty InstallMode
F1322_ISRT.dll ISRT.dll ISRT.dll INTEL_32 2
F1324_ISRES.dll _ISRES.dll _ISRES~1.DLL|_ISRES1033.dll INTEL_32 2
F1319_IDriver.exe iDriver.exe iDriver.exe INTEL_32 2
F1321_IUser7.dll iUser.dll iUser.dll INTEL_32 2
F1320_IScript7.dll iscript.dll iscript.dll INTEL_32 2
F1323_objps7.dll objectps.dll objectps.dll INTEL_32 2

To delete the registry entries on uninstall do not make the mistake of using the RemoveRegistry table as this table is for registry entries which should be deleted when the product is installed. Instead add the following entries to the Registry table.

Registry Root Key Name Value Component
registryDel 2 SOFTWARE\InstallShield\Driver\8 * RegDel
registryDel1 0 AppId\IDriver.EXE * RegDel
registryDel10 0 CLSID\{FFD7B771-8ECA-45DE-A944-7B013C6C2DF5} * RegDel
registryDel11 0 Interface\{02C0495A-3F58-4701-9913-7E855178A5D9} * RegDel
registryDel12 0 Interface\{04FAC07A-AD76-4AB8-B993-B597AFC3D947} * RegDel
registryDel13 0 Interface\{093FB88F-A6A3-4999-897F-56F40B4CFCAD} * RegDel
registryDel14 0 Interface\{0E60DA5C-4175-4BD1-89C5-577032A931A0} * RegDel
registryDel15 0 Interface\{124CCD5E-38F2-4DD6-9F47-BF175CE82B41} * RegDel
registryDel16 0 Interface\{1631C530-502B-4BDA-A564-83AF569AF7A9} * RegDel
registryDel17 0 Interface\{1634D100-7F17-4DEE-B79B-6B1AA35BF057} * RegDel
registryDel18 0 Interface\{18889DE5-3E21-4675-8520-64702DB349C1} * RegDel
registryDel19 0 Interface\{1E512A8C-7375-4F79-9260-11B1F476F3A8} * RegDel
registryDel2 0 AppId\IDriver2.exe * RegDel
registryDel20 0 Interface\{257154A2-C292-49AB-9003-D317971F2FF1} * RegDel
registryDel21 0 Interface\{2582B888-6E3A-40D7-BDC8-C0D82A6FD91F} * RegDel
registryDel22 0 Interface\{2CA491F2-DB7D-4A35-88B2-A00961598BB5} * RegDel
registryDel23 0 Interface\{2D939419-6930-40B0-8D36-729D1631D705} * RegDel
registryDel24 0 Interface\{31B499B0-B759-44E2-8A98-5D8CE56CE20F} * RegDel
registryDel25 0 Interface\{33618277-58AF-4F80-A6DD-2716F6146F9A} * RegDel
registryDel26 0 Interface\{34A2F43F-B821-4D14-91EE-39B015B8E66E} * RegDel
registryDel27 0 Interface\{352F743D-092B-4FC5-BABF-BCF5443EBCEA} * RegDel
registryDel28 0 Interface\{3F5F1DF3-D966-46B7-8A49-40D9043064DD} * RegDel
registryDel29 0 Interface\{49C1B167-C294-4C76-91C0-88EBF91E88EE} * RegDel
registryDel3 0 AppId\{1BB3D82F-9803-4d29-B232-1F2F14E52A2E} * RegDel
registryDel30 0 Interface\{4BD7C536-BFD8-41FF-826E-D8CED3178B5B} * RegDel
registryDel31 0 Interface\{4D67F0D9-B58C-4E7A-ADF7-CBE625EE76FB} * RegDel
registryDel32 0 Interface\{5037E6EF-3F8A-4155-B930-6C570449975C} * RegDel
registryDel33 0 Interface\{54915582-84C5-4026-97A0-398A87854CDA} * RegDel
registryDel34 0 Interface\{55E72919-0516-4EFB-AD27-E841798BC170} * RegDel
registryDel35 0 Interface\{573AEDC3-2F32-48F6-8F74-20F004C9D7CB} * RegDel
registryDel36 0 Interface\{5A6D100E-6A54-4EBC-AC92-5904C5C13559} * RegDel
registryDel37 0 Interface\{5FC196B5-34D2-4D23-B59E-4FA93C229564} * RegDel
registryDel38 0 Interface\{663256A7-466C-4023-BD46-4DD6DF8B2F90} * RegDel
registryDel39 0 Interface\{6AF3C35B-B523-4F33-8FCF-19AE3C66FB2F} * RegDel
registryDel4 0 AppId\{C2B96968-8E30-4BA4-A8F9-F40D09D1EA7E} * RegDel
registryDel40 0 Interface\{6E7D9436-492E-4290-A935-7D1A6B0D8BEA} * RegDel
registryDel41 0 Interface\{71CCE912-60B3-4863-9818-315A4B289768} * RegDel
registryDel42 0 Interface\{72B62824-6273-458C-BA83-C90061D3F764} * RegDel
registryDel43 0 Interface\{74C46962-AC20-460E-B824-F8B9A67EB2F2} * RegDel
registryDel44 0 Interface\{7B3B6B6D-9FC7-4CFA-8020-C3AD61B27F55} * RegDel
registryDel45 0 Interface\{8142F6EE-E39A-45F1-962D-9B1BE8630ED1} * RegDel
registryDel46 0 Interface\{84A21E2C-89EE-43EE-B8A7-867AAC3D821D} * RegDel
registryDel47 0 Interface\{8866B471-D0AE-49DC-A18A-47208A74B7D0} * RegDel
registryDel48 0 Interface\{88BBB500-CD36-4B16-A44C-1C97FD37DD3D} * RegDel
registryDel49 0 Interface\{8A77E8D8-AFAF-4FED-A41C-DD40295D606F} * RegDel
registryDel5 0 CLSID\{697DEABA-809C-49FC-ADD1-E9902D88360D} * RegDel
registryDel50 0 Interface\{923DF001-BD30-431A-A889-43D11CF08904} * RegDel
registryDel51 0 Interface\{940E8700-5855-41E9-AD93-EA0B3C6D44A6} * RegDel
registryDel52 0 Interface\{9923E8CC-7323-43FA-B6E3-27371227F89D} * RegDel
registryDel53 0 Interface\{9D85DD57-CCA3-4D7E-AA05-5BC205C2882B} * RegDel
registryDel54 0 Interface\{A1726C4F-5238-4907-B312-A7D3369E084E} * RegDel
registryDel55 0 Interface\{A2B0FEA2-C453-41F7-9E00-EF1F198DDA68} * RegDel
registryDel56 0 Interface\{A4FAB52E-45B1-4A62-A85F-9E20567F5CC6} * RegDel
registryDel57 0 Interface\{A919CEE5-F305-4FF6-B0B3-561C37AEEF7A} * RegDel
registryDel58 0 Interface\{AE8C683F-EC6D-49CD-9B74-A68F8828DEF6} * RegDel
registryDel59 0 Interface\{B27F4061-C6CD-42C4-881E-4D1597D0150F} * RegDel
registryDel6 0 CLSID\{8B1670C8-DC4A-4ED4-974B-81737A23826B} * RegDel
registryDel60 0 Interface\{BAB1BAB2-AD26-42EE-B4FE-B62A7AE96F62} * RegDel
registryDel61 0 Interface\{BD696316-7B37-4850-9D8E-253F47C715AC} * RegDel
registryDel62 0 Interface\{BE0B3F76-166A-4DA5-A97C-318595E3D15C} * RegDel
registryDel63 0 Interface\{C18F0E02-E02F-4402-A8D7-70CABCC01738} * RegDel
registryDel64 0 Interface\{C6A51663-014C-4038-A996-5B98A89B15C4} * RegDel
registryDel65 0 Interface\{C8B06ECF-F4F6-4FDE-AF52-DDC2DC42EC78} * RegDel
registryDel66 0 Interface\{C8B91CC3-8EB9-45DD-974A-76914C156A06} * RegDel
registryDel67 0 Interface\{C8CA19E8-1060-4EA3-86AF-EEE81AD5883A} * RegDel
registryDel68 0 Interface\{C9D3A246-13AD-4CD6-8C3F-ED2BFE13CA72} * RegDel
registryDel69 0 Interface\{CBF70AF9-A780-4527-93FA-0E98699D1415} * RegDel
registryDel7 0 CLSID\{A1726C4F-5238-4907-B312-A7D3369E084E} * RegDel
registryDel70 0 Interface\{CE8C94E9-4ABB-4E72-9D7D-E875AF9E2D72} * RegDel
registryDel71 0 Interface\{CEAAAD86-7088-4CE6-9557-3848C0C585BE} * RegDel
registryDel72 0 Interface\{CEAFB994-EE86-4046-8084-E697AC15B9F6} * RegDel
registryDel73 0 Interface\{D58FBBF8-3EC3-477C-8706-5C6C9AC8B3D4} * RegDel
registryDel74 0 Interface\{D7BB4AED-6D19-4AD5-812C-04CAF2046C90} * RegDel
registryDel75 0 Interface\{DB3E9637-17D2-4E12-8F5C-A9D94E8703C2} * RegDel
registryDel76 0 Interface\{DB7318BB-3098-4AA2-831F-E77AF345D2F3} * RegDel
registryDel77 0 Interface\{E5A1C1F1-4493-41D6-BB44-1C050E702381} * RegDel
registryDel78 0 Interface\{E62D50CB-76B2-4A7C-BBD0-BB2390C26156} * RegDel
registryDel79 0 Interface\{E928AA96-E054-4F71-B3D0-D1F5CE950348} * RegDel
registryDel8 0 CLSID\{B84EDC85-8F87-4D92-A7DF-67AB94F2C528} * RegDel
registryDel80 0 Interface\{E98B3980-F10F-4CB0-9A93-A64CA8883004} * RegDel
registryDel81 0 Interface\{ECEF9E1E-33C3-4AC5-B898-D446A94E6AB4} * RegDel
registryDel82 0 Interface\{F092021C-6233-447A-8BAB-D15C370B162B} * RegDel
registryDel83 0 Interface\{F123F912-E792-4509-82AB-C2A2BF46CEFC} * RegDel
registryDel84 0 Interface\{F3555F81-C076-4394-89F0-A0DA656CF932} * RegDel
registryDel85 0 Interface\{F9AD61BA-AEC0-4217-8311-C0A2ABC3FE7E} * RegDel
registryDel86 0 Interface\{FB6C5D96-A3D2-4DAA-A518-A7164916B005} * RegDel
registryDel87 0 Interface\{FBFBB5AE-3CE2-482B-9CDB-DA67F7078007} * RegDel
registryDel88 0 IPW.ScriptEngine * RegDel
registryDel89 0 IPW.ScriptEngine.1 * RegDel
registryDel9 0 CLSID\{FC5F5A61-B28C-4E1C-9528-40B4B40A897B} * RegDel
registryDel90 0 IPW.User * RegDel
registryDel91 0 IPW.User.1 * RegDel
registryDel92 0 ISInstallDriver.InstallDriver * RegDel
registryDel93 0 ISInstallDriver.InstallDriver.1 * RegDel
registryDel94 0 ISInstallDriver.StringTable * RegDel
registryDel95 0 ISInstallDriver.StringTable.8 * RegDel
registryDel96 0 TypeLib\{6F8CDC9E-DB60-4935-A7ED-A7BE8EB2941B}\1.0 * RegDel
registryDel97 0 TypeLib\{9795D310-2B39-4E89-B714-C363293FCC6C}\1.0 * RegDel
registryDel98 0 TypeLib\{D84D8FFE-80F8-4925-9D20-B5368E07F443}\1.0 * RegDel

The important column is “Name” containing the value “ * ” which the Windows Installer SDK explains as follows:
“The key is to be created, if absent, when the component is installed. Additionally, the key is to be deleted, if present, with all of its values and subkeys, when the component is uninstalled”.

This will ensure that all registry entries are removed on uninstall. Add the following entries to create the “RegDel” component & assign it to a feature.
Component Table:

Component ComponentID Directory Attributes Condition KeyPath
RegDel {99F9127C-3ACC-46F5-87B5-9C174EC8B308} INTEL_32 4 N/A registryDel

FeatureComponents Table:
Feature Component
ISScript RegDel

Add the following entry to the InstallExecuteSequence table to remove the duplicate file “IDriver2.exe”.

Action Condition Sequence
RemoveDuplicateFiles N/A 3400

5. Enabling unattended deployment via SMS (or any similar deployment tool)
With all the changes that have now been made, the InstallScript MSI will now install & remove cleanly. There is however one further change which needs to be made. If an attempt is made to install an MSI which relies on InstallScript via SMS errors will be encountered. The MSI log usually contains an error such as Error 1603 (A fatal error occurred during installation). The errors are permissions related & occur because the InstallScript DCOM agent launches as the “Interactive User” by default. Thus any of the InstallScript Custom Action commands will launch as 'Interactive User'.

The solution is found under the following registry key:
HKEY_CLASSES_ROOT\AppID\{1BB3D82F-9803-4d29-B232-1F2F14E52A2E}

By default the registry value 'RunAs' is set to 'Interactive User'. To make the DCOM agent launch as our desired user, “Launching User”, (i.e. the SMS account, which has admin privileges) just delete the 'RunAs' value.
To do this in our Installscript MSI the following Custom Action was created.

Add the following row to the binary table:

Name Data
CallISScript_User_Permissions [Binary Data]

Navigate to “ISScript_User_Permissions.vbs” (written by Ryan Gray/Chris Kuhl: http://doctordeploy.com/viewtopic.php?t=93&sid=577ae88fce2a9453ee39146e7cf127c0) & import the data (vbscript) as binary.

Add the following row to the Custom Action Table.

Action Type Source Target
ISScript_User_Permissions 6 CallISScript_User_Permissions N/A

Add the following row to the InstallExecuteSequence table.

Action Condition Sequence
ISScript_User_Permissions NOT REMOVE 6700

I also modified the ProductCode property and made some company specific changes to the MSI, but that's about it. We now have an MSI which will correctly install ISscript v8.1.0.304 & will uninstall it copletely.
Setup Information:
Setup Type: unspecified
Deployment Method Used: unspecified
Deployment Difficulty: unspecified
Platform(s): Windows
Please log in to comment
117
Note
This comes in the format ISScript8.msi and needs to be installed before deploying some MSI installers in Group Policy.

It's important to use the latest version available. Look at the date of the digital signature to find out what version you have. The latest I could find is the 09 April 2003 and it is available from:

http://support.installshield.com/kb/view.asp?articleid=Q108527

(There is a later version of the file available at InstallShield Q109906, but it actually downgrades one of the files inside, so I wouldn't advise using it)

INSTALLING THROUGH GROUP POLICY
This installer never actually registers itself properly with Windows Installer and is not really designed for use with Group Policy

If you install it with GP directly, standalone installers that use ISScript will fail with the following error:

1608: Unable to create InstallDriver instance.
Return code: -2147221164

Also, all of the versions of ISScript (7,8,9,10,11) use the same Product Code which means that more than one version won't install properly in GP

The fix is to create a wrapper which runs the MSI file as a 'concurrent' or 'nested' installation.
If you want more versions of ISScript installed, you'll need to create a new wrapper for each one.
NB You can't just copy an old one as you need to have a new Product ID.

See the following for more information:

http://www.appdeploy.com/messageboards/tm.asp?m=9841
http://www.appdeploy.com/messageboards/tm.asp?m=9872
http://community.installshield.com/showthread.php?t=154647

TO CREATE THE WRAPPER
Copy ISScript8.msi to a folder
Use WIWW 0.0.0.1 (http://www.sywan.nl/download/)
 Create a new MSI, 'ISScript8 Wrapper.msi', in the same folder
 Add Install Command:
  Property: SourceDir
  Program to run: (Type in) ISScript8.msi
  Parameters: ALLUSERS="[ALLUSERS]"
  DON'T reboot at the end of installation
 Uninstall Command:
  None
 Search for Files:
  None
 Product Details:
  Language: English (United States)
  LEAVE IN Add/Remove Programs (for testing)
Edit with Orca:
 CustomAction table:
  Drop 'WIWW_InstallCommand1'
  Change 'WIWW_InstallParam1' so that the 'Type' is '23' and the 'Source' is 'ISScript8.msi'
   (The 'Target' should already be 'ALLUSERS="[ALLUSERS]"')
 InstallExecuteSequence table:
  Drop 'WIWW_InstallCommand1'
  Change the 'Condition' for 'WIWW_InstallParam1' to 'NOT REMOVE' (instead of 'Not Installed')
  Change the 'Condition' for 'ResolveSource' to 'NOT REMOVE' (instead of 'Not Installed')
   (This is so that you can do a Group Policy 'Redeploy' if you need to)
Setup Information:
Setup Type: unspecified
Deployment Method Used: unspecified
Deployment Difficulty: unspecified
Platform(s): Windows
Please log in to comment
117
Note
v8.1.0.304

After trawling the various app packaging websites I've seen some good points relating to the install of ISscript & lots of workarounds...

Atach installscript engine to one msi via GPO
Follow up Isscript.msi question
Bob Kelly's post at AppDeploy
Error when deploying with AD
Orakel's post on DoctorDeploy
Unattended installation: "Failed to Initialize script support" problems
Possible isscript error fix

...but I haven't seen anyone provide a comprehensive solution to the actual problem, so please allow me to provide a far better solution (IMHO).

This solution is based on ISScript v8.1.0.304 but I guess it could be applied to any version of ISscript.msi.

1. Can't use a transform
It is not possible to create a transform for the original Installshield MSI as is normal practice when modifying software packages which are supplied in the MSI format by third parties. It was necessary to change the package Code for the product to stop any conflicts between the different versions of InstallScript which have all been created with the same package code. If Orca attempts
to modify the Package Code within a transform the option is greyed out. The reason this is not possible is because the Package Code is part of the summary information stream. The Windows Installer SDK states:
“A transform can modify information that is in any persistent table in the installer database. A transform can also add or remove persistent tables in the installer database. Transforms cannot modify any part of an installation package that is not in a database table, such as information in the summary information stream, information in substorages, information in nested installations, or files in embedded cabinets”.

It was therefore necessary to modify the original MSI. Open the Installshield ISScript MSI in Orca & save as “ISScript_v8.1.0.304.Msi”. Create a new Package Code by viewing the Summary Information & generating a new GUID using the “New GUID” button to the right of the existing GUID

2. Missing “ISscript.msi” actions
When an install is performed with Installshield’s original MSI, “ISscript8.msi”, it does not appear in Add Remove Programs as the property “ARPSYSTEMCOMPONENT” has been set with a value of “1”. Removing this property will not result in an MSI which installs correctly. The SDK states:
“Note: This only affects the display in the ARP. The Windows Installer is still capable of repairing, installing-on-demand, and uninstalling applications through a command line or the programming interface”.
& “To hide an application from the Add or Remove Programs feature in Control Panel and still be able to use the Windows Installer to manage an application, leave the registration actions in the sequence tables, and set the ARPSYSTEMCOMPONENT Property in the Property Table to 1 (one). The application does not appear in the Add or Remove Programs feature, but you can use the Windows Installer to install-on-demand, uninstall, repair, and reinstall the application”.

If the ARPSYSTEMCOMPONENT is removed the application still won’t appear in Add/Remove Programs. The clue was in the previous SDK statement: “leave the registration actions in the sequence tables “.

As the SDK states:
“Registration is used by the installer for advertisement and by the Add or Remove Programs feature in Control Panel. If an application is not registered, it cannot be advertised, and is not listed in the Add or Remove Programs feature in Control Panel. You can omit registering an application by removing the RegisterProduct Action, RegisterUser Action, PublishProduct Action, and PublishFeatures Action from the InstallExecuteSequence Table and AdvtExecuteSequence Table. All of these actions must be removed, or some trace of the application may remain in the registry. Removing all of these actions prevents the application from being listed in the Add or Remove Programs feature in Control Panel, and prevents the advertisement of the application. Removing all of these actions also prevents the application from being registered with the Windows Installer configuration data.

This means that you cannot remove, repair, or reinstall the application by using the Windows Installer Command-Line Options, or the Windows Installer application programming interface (API)”.

To ensure that the InstallScript MSI registers itself, add the following rows to the InstallExecuteSequence table.

Action Condition Sequence
PublishFeatures N/A 6300
PublishProduct N/A 6400
RegisterProduct N/A 6100
RegisterUser N/A 6000

Adding these 4 rows will prevent any ICE82 errors occurring during MSI validation.

If the InstallExecuteSequence table of “ISscript8.msi” is compared to the standard Wise Windows template it is apparent that there are still more rows in the Wise template. Some of the rows are unimportant but some are vital to ensure InstallScript is installed & removed correctly. Add the following rows too:

Action Condition Sequence
ProcessComponents N/A 1600
UnpublishFeatures N/A 1800
UnregisterComPlus N/A 2100

If it is necessary to advertise components the following rows would be added.

Action Condition Sequence
PublishComponents N/A 6200
UnpublishComponents N/A 1700

3. Missing “ISscript.msi” ComponentIDs
Even with the important missing actions added the “ISscript.msi” install will not register its components correctly. This can be proved by using the SDK tool “MSISPY” to view the installed components for ISScript. MSISPy shows that the app is installed locally but lists no components. The reason this occurs is because the Component table has values missing from the ComponentID column for each component. Without the componentIDs the MSI will not be correctly registered with the Windows Installer configuration data. The SDK states:
“ComponentId A string GUID unique to this component, version, and language. If this column is null the installer does not register the component and the component cannot be removed or repaired by the installer. This might be intentionally done if the component is only needed during the installation, such as a custom action that cleans up temporary files or removes an old product. It may also be useful when copying data files to a user's computer that do not need to be registered”.

Create a unique ComponentID for each component using the “Paste New GUID” button.

4. Ensuring uninstall removes all files & registry entries
With the previous steps included in the MSI it should now install correctly & register all components. It will however still have problems during uninstall. Although no error messages will occur during uninstall the MSI will not be removed from the target PC.

All files will be left behind. To remedy this it is necessary to add the following rows to the RemoveFile Table.

Filekey Component FileName DirProperty InstallMode
F1322_ISRT.dll ISRT.dll ISRT.dll INTEL_32 2
F1324_ISRES.dll _ISRES.dll _ISRES~1.DLL|_ISRES1033.dll INTEL_32 2
F1319_IDriver.exe iDriver.exe iDriver.exe INTEL_32 2
F1321_IUser7.dll iUser.dll iUser.dll INTEL_32 2
F1320_IScript7.dll iscript.dll iscript.dll INTEL_32 2
F1323_objps7.dll objectps.dll objectps.dll INTEL_32 2

To delete the registry entries on uninstall do not make the mistake of using the RemoveRegistry table as this table is for registry entries which should be deleted when the product is installed. Instead add the following entries to the Registry table.

Registry Root Key Name Value Component
registryDel 2 SOFTWARE\InstallShield\Driver\8 * RegDel
registryDel1 0 AppId\IDriver.EXE * RegDel
registryDel10 0 CLSID\{FFD7B771-8ECA-45DE-A944-7B013C6C2DF5} * RegDel
registryDel11 0 Interface\{02C0495A-3F58-4701-9913-7E855178A5D9} * RegDel
registryDel12 0 Interface\{04FAC07A-AD76-4AB8-B993-B597AFC3D947} * RegDel
registryDel13 0 Interface\{093FB88F-A6A3-4999-897F-56F40B4CFCAD} * RegDel
registryDel14 0 Interface\{0E60DA5C-4175-4BD1-89C5-577032A931A0} * RegDel
registryDel15 0 Interface\{124CCD5E-38F2-4DD6-9F47-BF175CE82B41} * RegDel
registryDel16 0 Interface\{1631C530-502B-4BDA-A564-83AF569AF7A9} * RegDel
registryDel17 0 Interface\{1634D100-7F17-4DEE-B79B-6B1AA35BF057} * RegDel
registryDel18 0 Interface\{18889DE5-3E21-4675-8520-64702DB349C1} * RegDel
registryDel19 0 Interface\{1E512A8C-7375-4F79-9260-11B1F476F3A8} * RegDel
registryDel2 0 AppId\IDriver2.exe * RegDel
registryDel20 0 Interface\{257154A2-C292-49AB-9003-D317971F2FF1} * RegDel
registryDel21 0 Interface\{2582B888-6E3A-40D7-BDC8-C0D82A6FD91F} * RegDel
registryDel22 0 Interface\{2CA491F2-DB7D-4A35-88B2-A00961598BB5} * RegDel
registryDel23 0 Interface\{2D939419-6930-40B0-8D36-729D1631D705} * RegDel
registryDel24 0 Interface\{31B499B0-B759-44E2-8A98-5D8CE56CE20F} * RegDel
registryDel25 0 Interface\{33618277-58AF-4F80-A6DD-2716F6146F9A} * RegDel
registryDel26 0 Interface\{34A2F43F-B821-4D14-91EE-39B015B8E66E} * RegDel
registryDel27 0 Interface\{352F743D-092B-4FC5-BABF-BCF5443EBCEA} * RegDel
registryDel28 0 Interface\{3F5F1DF3-D966-46B7-8A49-40D9043064DD} * RegDel
registryDel29 0 Interface\{49C1B167-C294-4C76-91C0-88EBF91E88EE} * RegDel
registryDel3 0 AppId\{1BB3D82F-9803-4d29-B232-1F2F14E52A2E} * RegDel
registryDel30 0 Interface\{4BD7C536-BFD8-41FF-826E-D8CED3178B5B} * RegDel
registryDel31 0 Interface\{4D67F0D9-B58C-4E7A-ADF7-CBE625EE76FB} * RegDel
registryDel32 0 Interface\{5037E6EF-3F8A-4155-B930-6C570449975C} * RegDel
registryDel33 0 Interface\{54915582-84C5-4026-97A0-398A87854CDA} * RegDel
registryDel34 0 Interface\{55E72919-0516-4EFB-AD27-E841798BC170} * RegDel
registryDel35 0 Interface\{573AEDC3-2F32-48F6-8F74-20F004C9D7CB} * RegDel
registryDel36 0 Interface\{5A6D100E-6A54-4EBC-AC92-5904C5C13559} * RegDel
registryDel37 0 Interface\{5FC196B5-34D2-4D23-B59E-4FA93C229564} * RegDel
registryDel38 0 Interface\{663256A7-466C-4023-BD46-4DD6DF8B2F90} * RegDel
registryDel39 0 Interface\{6AF3C35B-B523-4F33-8FCF-19AE3C66FB2F} * RegDel
registryDel4 0 AppId\{C2B96968-8E30-4BA4-A8F9-F40D09D1EA7E} * RegDel
registryDel40 0 Interface\{6E7D9436-492E-4290-A935-7D1A6B0D8BEA} * RegDel
registryDel41 0 Interface\{71CCE912-60B3-4863-9818-315A4B289768} * RegDel
registryDel42 0 Interface\{72B62824-6273-458C-BA83-C90061D3F764} * RegDel
registryDel43 0 Interface\{74C46962-AC20-460E-B824-F8B9A67EB2F2} * RegDel
registryDel44 0 Interface\{7B3B6B6D-9FC7-4CFA-8020-C3AD61B27F55} * RegDel
registryDel45 0 Interface\{8142F6EE-E39A-45F1-962D-9B1BE8630ED1} * RegDel
registryDel46 0 Interface\{84A21E2C-89EE-43EE-B8A7-867AAC3D821D} * RegDel
registryDel47 0 Interface\{8866B471-D0AE-49DC-A18A-47208A74B7D0} * RegDel
registryDel48 0 Interface\{88BBB500-CD36-4B16-A44C-1C97FD37DD3D} * RegDel
registryDel49 0 Interface\{8A77E8D8-AFAF-4FED-A41C-DD40295D606F} * RegDel
registryDel5 0 CLSID\{697DEABA-809C-49FC-ADD1-E9902D88360D} * RegDel
registryDel50 0 Interface\{923DF001-BD30-431A-A889-43D11CF08904} * RegDel
registryDel51 0 Interface\{940E8700-5855-41E9-AD93-EA0B3C6D44A6} * RegDel
registryDel52 0 Interface\{9923E8CC-7323-43FA-B6E3-27371227F89D} * RegDel
registryDel53 0 Interface\{9D85DD57-CCA3-4D7E-AA05-5BC205C2882B} * RegDel
registryDel54 0 Interface\{A1726C4F-5238-4907-B312-A7D3369E084E} * RegDel
registryDel55 0 Interface\{A2B0FEA2-C453-41F7-9E00-EF1F198DDA68} * RegDel
registryDel56 0 Interface\{A4FAB52E-45B1-4A62-A85F-9E20567F5CC6} * RegDel
registryDel57 0 Interface\{A919CEE5-F305-4FF6-B0B3-561C37AEEF7A} * RegDel
registryDel58 0 Interface\{AE8C683F-EC6D-49CD-9B74-A68F8828DEF6} * RegDel
registryDel59 0 Interface\{B27F4061-C6CD-42C4-881E-4D1597D0150F} * RegDel
registryDel6 0 CLSID\{8B1670C8-DC4A-4ED4-974B-81737A23826B} * RegDel
registryDel60 0 Interface\{BAB1BAB2-AD26-42EE-B4FE-B62A7AE96F62} * RegDel
registryDel61 0 Interface\{BD696316-7B37-4850-9D8E-253F47C715AC} * RegDel
registryDel62 0 Interface\{BE0B3F76-166A-4DA5-A97C-318595E3D15C} * RegDel
registryDel63 0 Interface\{C18F0E02-E02F-4402-A8D7-70CABCC01738} * RegDel
registryDel64 0 Interface\{C6A51663-014C-4038-A996-5B98A89B15C4} * RegDel
registryDel65 0 Interface\{C8B06ECF-F4F6-4FDE-AF52-DDC2DC42EC78} * RegDel
registryDel66 0 Interface\{C8B91CC3-8EB9-45DD-974A-76914C156A06} * RegDel
registryDel67 0 Interface\{C8CA19E8-1060-4EA3-86AF-EEE81AD5883A} * RegDel
registryDel68 0 Interface\{C9D3A246-13AD-4CD6-8C3F-ED2BFE13CA72} * RegDel
registryDel69 0 Interface\{CBF70AF9-A780-4527-93FA-0E98699D1415} * RegDel
registryDel7 0 CLSID\{A1726C4F-5238-4907-B312-A7D3369E084E} * RegDel
registryDel70 0 Interface\{CE8C94E9-4ABB-4E72-9D7D-E875AF9E2D72} * RegDel
registryDel71 0 Interface\{CEAAAD86-7088-4CE6-9557-3848C0C585BE} * RegDel
registryDel72 0 Interface\{CEAFB994-EE86-4046-8084-E697AC15B9F6} * RegDel
registryDel73 0 Interface\{D58FBBF8-3EC3-477C-8706-5C6C9AC8B3D4} * RegDel
registryDel74 0 Interface\{D7BB4AED-6D19-4AD5-812C-04CAF2046C90} * RegDel
registryDel75 0 Interface\{DB3E9637-17D2-4E12-8F5C-A9D94E8703C2} * RegDel
registryDel76 0 Interface\{DB7318BB-3098-4AA2-831F-E77AF345D2F3} * RegDel
registryDel77 0 Interface\{E5A1C1F1-4493-41D6-BB44-1C050E702381} * RegDel
registryDel78 0 Interface\{E62D50CB-76B2-4A7C-BBD0-BB2390C26156} * RegDel
registryDel79 0 Interface\{E928AA96-E054-4F71-B3D0-D1F5CE950348} * RegDel
registryDel8 0 CLSID\{B84EDC85-8F87-4D92-A7DF-67AB94F2C528} * RegDel
registryDel80 0 Interface\{E98B3980-F10F-4CB0-9A93-A64CA8883004} * RegDel
registryDel81 0 Interface\{ECEF9E1E-33C3-4AC5-B898-D446A94E6AB4} * RegDel
registryDel82 0 Interface\{F092021C-6233-447A-8BAB-D15C370B162B} * RegDel
registryDel83 0 Interface\{F123F912-E792-4509-82AB-C2A2BF46CEFC} * RegDel
registryDel84 0 Interface\{F3555F81-C076-4394-89F0-A0DA656CF932} * RegDel
registryDel85 0 Interface\{F9AD61BA-AEC0-4217-8311-C0A2ABC3FE7E} * RegDel
registryDel86 0 Interface\{FB6C5D96-A3D2-4DAA-A518-A7164916B005} * RegDel
registryDel87 0 Interface\{FBFBB5AE-3CE2-482B-9CDB-DA67F7078007} * RegDel
registryDel88 0 IPW.ScriptEngine * RegDel
registryDel89 0 IPW.ScriptEngine.1 * RegDel
registryDel9 0 CLSID\{FC5F5A61-B28C-4E1C-9528-40B4B40A897B} * RegDel
registryDel90 0 IPW.User * RegDel
registryDel91 0 IPW.User.1 * RegDel
registryDel92 0 ISInstallDriver.InstallDriver * RegDel
registryDel93 0 ISInstallDriver.InstallDriver.1 * RegDel
registryDel94 0 ISInstallDriver.StringTable * RegDel
registryDel95 0 ISInstallDriver.StringTable.8 * RegDel
registryDel96 0 TypeLib\{6F8CDC9E-DB60-4935-A7ED-A7BE8EB2941B}\1.0 * RegDel
registryDel97 0 TypeLib\{9795D310-2B39-4E89-B714-C363293FCC6C}\1.0 * RegDel
registryDel98 0 TypeLib\{D84D8FFE-80F8-4925-9D20-B5368E07F443}\1.0 * RegDel

The important column is “Name” containing the value “ * ” which the Windows Installer SDK explains as follows:
“The key is to be created, if absent, when the component is installed. Additionally, the key is to be deleted, if present, with all of its values and subkeys, when the component is uninstalled”.

This will ensure that all registry entries are removed on uninstall. Add the following entries to create the “RegDel” component & assign it to a feature.
Component Table:

Component ComponentID Directory Attributes Condition KeyPath
RegDel {99F9127C-3ACC-46F5-87B5-9C174EC8B308} INTEL_32 4 N/A registryDel

FeatureComponents Table:
Feature Component
ISScript RegDel

Add the following entry to the InstallExecuteSequence table to remove the duplicate file “IDriver2.exe”.

Action Condition Sequence
RemoveDuplicateFiles N/A 3400

5. Enabling unattended deployment via SMS (or any similar deployment tool)
With all the changes that have now been made, the InstallScript MSI will now install & remove cleanly. There is however one further change which needs to be made. If an attempt is made to install an MSI which relies on InstallScript via SMS errors will be encountered. The MSI log usually contains an error such as Error 1603 (A fatal error occurred during installation). The errors are permissions related & occur because the InstallScript DCOM agent launches as the “Interactive User” by default. Thus any of the InstallScript Custom Action commands will launch as 'Interactive User'.

The solution is found under the following registry key:
HKEY_CLASSES_ROOT\AppID\{1BB3D82F-9803-4d29-B232-1F2F14E52A2E}

By default the registry value 'RunAs' is set to 'Interactive User'. To make the DCOM agent launch as our desired user, “Launching User”, (i.e. the SMS account, which has admin privileges) just delete the 'RunAs' value.
To do this in our Installscript MSI the following Custom Action was created.

Add the following row to the binary table:

Name Data
CallISScript_User_Permissions [Binary Data]

Navigate to “ISScript_User_Permissions.vbs” (written by Ryan Gray/Chris Kuhl: http://doctordeploy.com/viewtopic.php?t=93&sid=577ae88fce2a9453ee39146e7cf127c0) & import the data (vbscript) as binary.

Add the following row to the Custom Action Table.

Action Type Source Target
ISScript_User_Permissions 6 CallISScript_User_Permissions N/A

Add the following row to the InstallExecuteSequence table.

Action Condition Sequence
ISScript_User_Permissions NOT REMOVE 6700

I also modified the ProductCode property and made some company specific changes to the MSI, but that's about it. We now have an MSI which will correctly install ISscript v8.1.0.304 & will uninstall it copletely.
Setup Information:
Setup Type: unspecified
Deployment Method Used: unspecified
Deployment Difficulty: unspecified
Platform(s): Windows
Please log in to comment
116
Note
I've just read a news item on InstallSite by Stefan Krueger & thought it was relevant to this post

It's worth pointing out that InstallScript is often installed as a nested installation within another setup routine & that, as Stefan states, the Windows Installer team advise against nested installs (see rule 20).

Stefan also points out that the recommended method of installing multiple MSIs is to use an executable to call the MSIs sequentially.

Nested installs of InstallScript can be avoided by using the InstallScript package solution I posted above.
Setup Information:
Setup Type: unspecified
Deployment Method Used: unspecified
Deployment Difficulty: unspecified
Platform(s): Windows
Please log in to comment
3
Note
Just something to add to this... We tried to package ISScript9 using the same instructions, and all went well. But for some reason our XP computers weren't installing the software until they rebooted 3 times. Errors were shown in the event log on the 1st and 2nd reboots. It is because XP enables "Fast Logon Optimization" on a domain. I won't go into how and why, but I will tell you that 2000 clients and 2003 servers do not enable this, and thus install on the first reboot. If you wish to learn about more about fast logon optimization, and how to disable it through group policy, you can check the following microsoft site:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/policy/policy/logon_optimization.asp

After disabling this on our domain, even the XP computers installed ISScript9 without any problems. Good luck!
Setup Information:
Setup Type: unspecified
Deployment Method Used: unspecified
Deployment Difficulty: unspecified
Platform(s): Windows
Please log in to comment

Inventory Records (1)

View inventory records anonymously contributed by opt-in users of the K1000 Systems Management Appliance.

Versions

InstallScript Engine

Version

8

Questions & Answers (1)

Questions & Answers related to Macrovision InstallScript Engine

Blogs (0)

Blog posts related to Macrovision InstallScript Engine

Reviews (0)

Reviews related to Macrovision InstallScript Engine