Issue with installing IBM Analyst Workstation Admin Vendor MSI under Lockdown Desktop on Windows 7(64-bit) OS.
Hi Friends,
I am currently working on an application IBM Analyst Workstation Admin v8.0. This application is a series of Vendor MSIs (4 of them) and uses SQL Server 2008 and reporter Viewer as dependencies.As part of the packaging process, I created transforms (.mst) for each of the 4 vendor MSIs and encountered an issue while deploying one of the MSIs under system account on Windows 7 OS.The same package when deployed on Windows Vista OS under system account installs and uninstalls fine without any issues. The issue is that when deploying one of the msi's on Windows 7, there is a custom action which seems to be modifying or changing the time stamp of a file..??This particular custom action is trying to do that same under system account and it is unable to update the file. I have attached the logs which shows successfull installation by running the .msi manually and the custom action which keeps trying to update the file and cannot do so under system account. Please note that this behaviour is noticed only under system account on Windows 7 OS. Any suggestions to resolve this will be very much appreciated.....
The BELOW log file where the Custom action is causing the issue:
--------------------------------------------------------------------------------------------------------
MSI (s) (98:CC) [18:15:39:838]: Executing op: ActionStart(Name=i2SaveProperties.662E2478_828F_4D9C_9057_5F971A1690A8,,)
MSI (s) (98:CC) [18:15:39:838]: Executing op: CustomActionSchedule(Action=i2SaveProperties.662E2478_828F_4D9C_9057_5F971A1690A8,ActionType=3638,Source=' i2SaveProperties saves the command line properties on first install
' so that they can be used for maintenance operations.
Set sh = CreateObject("WScript.Shell")
Dim PropArray
PropArray = Split(Session.Property("CustomActionData"), ";")
ProductName = PropArray(0)
'i2ProgramGroup = PropArray(1)
i2Shared = PropArray(1)
i2Hasp7_5 = PropArray(2)
i2Language = PropArray(3)
'i2OverrideChecks = PropArray(5)
'ProductName = session.Property("ProductName")
' Data = sh.RegRead ("HKLM\SOFTWARE\i2\Installer\CommandLine\[ProductName]\Key")
'sh.RegWrite "HKLM\SOFTWARE\i2\Installer\CommandLine\" & ProductName &"\i2ProgramGroup", i2ProgramGroup
sh.RegWrite "HKLM\SOFTWARE\i2\Installer\CommandLine\" & ProductName &"\i2Shared", i2Shared
sh.RegWrite "HKLM\SOFTWARE\i2\Installer\CommandLine\" & ProductName &"\i2Hasp7.5", i2Hasp7_5
sh.RegWrite "HKLM\SOFTWARE\i2\Installer\CommandLine\" & ProductName &"\i2Language", i2Language
'sh.RegWrite "HKLM\SOFTWARE\i
MSI (s) (98:CC) [18:15:39:838]: Executing op: ActionStart(Name=i2SetModifiedDate.476AC938_2358_49F0_ABD9_D6F54D160E60,,)
MSI (s) (98:CC) [18:15:39:838]: Executing op: CustomActionSchedule(Action=i2SetModifiedDate.476AC938_2358_49F0_ABD9_D6F54D160E60,ActionType=3702,Source=' i2SetModifyDate changes the Modify date of the files passed
' in the CustomActionData property
Option Explicit
Const ModuleGUID = "476AC938_2358_49F0_ABD9_D6F54D160E60"
Sub i2SetModifiedDate
on error resume next
Dim PropArray
PropArray = Split(Session.Property("CustomActionData"), ";")
i2SetModifiedDateOnFile( PropArray(0))
i2SetModifiedDateOnFile( PropArray(1))
i2SetModifiedDateOnFile( PropArray(2))
i2SetModifiedDateOnFile( PropArray(3))
end sub
Private Sub i2SetModifiedDateOnFile(strFilePath)
'MsgBox("Change Date on: " & strFilePath)
If Len(strFilePath) > 0 Then
Dim fs, LastModifiedDate
Set fs = CreateObject("Scripting.FileSystemObject")
LastModifiedDate = fs.GetFile(strFilePath).DateCreated
'MsgBox("Created date:" & LastModifiedDate)
LastModifiedDate = dateAdd ("n", +1, LastModifiedDate ) ' add 1 minute to created date
'Now call Change date-modified-
MSI (s) (98:CC) [18:15:39:838]: Executing op: ActionStart(Name=i2SetModifiedDate.23D0DE96_30C6_45A9_A2A5_2EC211E88E88,,)
MSI (s) (98:CC) [18:15:39:838]: Executing op: CustomActionSchedule(Action=i2SetModifiedDate.23D0DE96_30C6_45A9_A2A5_2EC211E88E88,ActionType=3702,Source=' i2SetModifyDate changes the Modify date of the file passed
' in the CustomActionData property
Option Explicit
Const ModuleGUID = "23D0DE96_30C6_45A9_A2A5_2EC211E88E88"
Const FileName = "i2 Semantic Type Library 0809.xml"
Sub i2SetModifiedDate
Dim strFilePath
on error resume next
strFilePath = Session.Property("CustomActionData")
'MsgBox("Change Date on: " & strFilePath)
If Len(strFilePath) > 0 Then
Dim fs, LastModifiedDate
Set fs = CreateObject("Scripting.FileSystemObject")
LastModifiedDate = fs.GetFile(strFilePath).DateCreated
'Msgbox("Created date:" & LastModifiedDate)
LastModifiedDate = dateAdd ("n", +1, LastModifiedDate ) ' add 1 minute to created date
'Now call Change date-modified-Routine:
Call SetDateModified(strFilePath, LastModifiedDate)
'Check and display result:
LastModifiedDate = fs.GetFile(strFilePath).DateLastModified
'Msgbox("Modified date:" & LastModifiedDate)
MSI (s) (98:CC) [18:15:39:838]: Executing op: ActionStart(Name=i2SetModifiedDate.2F73F8A8_0EA0_41AB_866D_8A45678301DF,,)
MSI (s) (98:CC) [18:15:39:838]: Executing op: CustomActionSchedule(Action=i2SetModifiedDate.2F73F8A8_0EA0_41AB_866D_8A45678301DF,ActionType=3702,Source=' i2SetModifyDate changes the Modify date of the file passed
' in the CustomActionData property
Option Explicit
Const ModuleGUID = "2F73F8A8_0EA0_41AB_866D_8A45678301DF"
Const FileName = "i2 Semantic Type Library.xml"
Sub i2SetModifiedDate
Dim strFilePath
on error resume next
strFilePath = Session.Property("CustomActionData")
'MsgBox("Change Date on: " & strFilePath)
If Len(strFilePath) > 0 Then
Dim fs, LastModifiedDate
Set fs = CreateObject("Scripting.FileSystemObject")
LastModifiedDate = fs.GetFile(strFilePath).DateCreated
'MsgBox("Created date:" & LastModifiedDate)
LastModifiedDate = dateAdd ("n", +1, LastModifiedDate ) ' add 1 minute to created date
'Now call Change date-modified-Routine:
Call SetDateModified(strFilePath, LastModifiedDate)
'Check and display result:
LastModifiedDate = fs.GetFile(strFilePath).DateLastModified
'MsgBox("Modified date:" & LastModifiedDate)
MSI (s) (98:CC) [18:15:39:838]: Executing op: ActionStart(Name=InstallFinalize,,)
MSI (s) (98:CC) [18:15:39:838]: Executing op: CleanupTempFiles(TempFiles=C:\Windows\Installer\8c0f6.mst)
MSI (s) (98:CC) [18:15:39:838]: Scheduling file 'C:\Windows\Installer\8c0f6.mst' for deletion during post-install cleanup (not post-reboot).
MSI (s) (98:CC) [18:15:39:853]: Executing op: End(Checksum=0,ProgressTotalHDWord=0,ProgressTotalLDWord=0)
MSI (s) (98:CC) [18:15:39:853]: User policy value 'DisableRollback' is 0
MSI (s) (98:CC) [18:15:39:853]: Machine policy value 'DisableRollback' is 0
THE BELOW LOG FILE IS OF A SUCCESSFULL INSTALLATION :
-----------------------------------------------------------------------------------------------------------------
MSI (s) (FC:20) [18:45:27:809]: Executing op: ActionStart(Name=i2SaveProperties.662E2478_828F_4D9C_9057_5F971A1690A8,,)
MSI (s) (FC:20) [18:45:27:809]: Executing op: CustomActionSchedule(Action=i2SaveProperties.662E2478_828F_4D9C_9057_5F971A1690A8,ActionType=3638,Source=' i2SaveProperties saves the command line properties on first install
' so that they can be used for maintenance operations.
Set sh = CreateObject("WScript.Shell")
Dim PropArray
PropArray = Split(Session.Property("CustomActionData"), ";")
ProductName = PropArray(0)
'i2ProgramGroup = PropArray(1)
i2Shared = PropArray(1)
i2Hasp7_5 = PropArray(2)
i2Language = PropArray(3)
'i2OverrideChecks = PropArray(5)
'ProductName = session.Property("ProductName")
' Data = sh.RegRead ("HKLM\SOFTWARE\i2\Installer\CommandLine\[ProductName]\Key")
'sh.RegWrite "HKLM\SOFTWARE\i2\Installer\CommandLine\" & ProductName &"\i2ProgramGroup", i2ProgramGroup
sh.RegWrite "HKLM\SOFTWARE\i2\Installer\CommandLine\" & ProductName &"\i2Shared", i2Shared
sh.RegWrite "HKLM\SOFTWARE\i2\Installer\CommandLine\" & ProductName &"\i2Hasp7.5", i2Hasp7_5
sh.RegWrite "HKLM\SOFTWARE\i2\Installer\CommandLine\" & ProductName &"\i2Language", i2Language
'sh.RegWrite "HKLM\SOFTWARE\i
MSI (s) (FC:20) [18:45:27:809]: Executing op: ActionStart(Name=i2SetModifiedDate.476AC938_2358_49F0_ABD9_D6F54D160E60,,)
MSI (s) (FC:20) [18:45:27:809]: Executing op: CustomActionSchedule(Action=i2SetModifiedDate.476AC938_2358_49F0_ABD9_D6F54D160E60,ActionType=3702,Source=' i2SetModifyDate changes the Modify date of the files passed
' in the CustomActionData property
Option Explicit
Const ModuleGUID = "476AC938_2358_49F0_ABD9_D6F54D160E60"
Sub i2SetModifiedDate
on error resume next
Dim PropArray
PropArray = Split(Session.Property("CustomActionData"), ";")
i2SetModifiedDateOnFile( PropArray(0))
i2SetModifiedDateOnFile( PropArray(1))
i2SetModifiedDateOnFile( PropArray(2))
i2SetModifiedDateOnFile( PropArray(3))
end sub
Private Sub i2SetModifiedDateOnFile(strFilePath)
'MsgBox("Change Date on: " & strFilePath)
If Len(strFilePath) > 0 Then
Dim fs, LastModifiedDate
Set fs = CreateObject("Scripting.FileSystemObject")
LastModifiedDate = fs.GetFile(strFilePath).DateCreated
'MsgBox("Created date:" & LastModifiedDate)
LastModifiedDate = dateAdd ("n", +1, LastModifiedDate ) ' add 1 minute to created date
'Now call Change date-modified-
MSI (s) (FC:20) [18:45:27:809]: Executing op: ActionStart(Name=i2SetModifiedDate.23D0DE96_30C6_45A9_A2A5_2EC211E88E88,,)
MSI (s) (FC:20) [18:45:27:809]: Executing op: CustomActionSchedule(Action=i2SetModifiedDate.23D0DE96_30C6_45A9_A2A5_2EC211E88E88,ActionType=3702,Source=' i2SetModifyDate changes the Modify date of the file passed
' in the CustomActionData property
Option Explicit
Const ModuleGUID = "23D0DE96_30C6_45A9_A2A5_2EC211E88E88"
Const FileName = "i2 Semantic Type Library 0809.xml"
Sub i2SetModifiedDate
Dim strFilePath
on error resume next
strFilePath = Session.Property("CustomActionData")
'MsgBox("Change Date on: " & strFilePath)
If Len(strFilePath) > 0 Then
Dim fs, LastModifiedDate
Set fs = CreateObject("Scripting.FileSystemObject")
LastModifiedDate = fs.GetFile(strFilePath).DateCreated
'Msgbox("Created date:" & LastModifiedDate)
LastModifiedDate = dateAdd ("n", +1, LastModifiedDate ) ' add 1 minute to created date
'Now call Change date-modified-Routine:
Call SetDateModified(strFilePath, LastModifiedDate)
'Check and display result:
LastModifiedDate = fs.GetFile(strFilePath).DateLastModified
'Msgbox("Modified date:" & LastModifiedDate)
MSI (s) (FC:20) [18:45:27:809]: Executing op: ActionStart(Name=i2SetModifiedDate.2F73F8A8_0EA0_41AB_866D_8A45678301DF,,)
MSI (s) (FC:20) [18:45:27:809]: Executing op: CustomActionSchedule(Action=i2SetModifiedDate.2F73F8A8_0EA0_41AB_866D_8A45678301DF,ActionType=3702,Source=' i2SetModifyDate changes the Modify date of the file passed
' in the CustomActionData property
Option Explicit
Const ModuleGUID = "2F73F8A8_0EA0_41AB_866D_8A45678301DF"
Const FileName = "i2 Semantic Type Library.xml"
Sub i2SetModifiedDate
Dim strFilePath
on error resume next
strFilePath = Session.Property("CustomActionData")
'MsgBox("Change Date on: " & strFilePath)
If Len(strFilePath) > 0 Then
Dim fs, LastModifiedDate
Set fs = CreateObject("Scripting.FileSystemObject")
LastModifiedDate = fs.GetFile(strFilePath).DateCreated
'MsgBox("Created date:" & LastModifiedDate)
LastModifiedDate = dateAdd ("n", +1, LastModifiedDate ) ' add 1 minute to created date
'Now call Change date-modified-Routine:
Call SetDateModified(strFilePath, LastModifiedDate)
'Check and display result:
LastModifiedDate = fs.GetFile(strFilePath).DateLastModified
'MsgBox("Modified date:" & LastModifiedDate)
MSI (s) (FC:20) [18:45:27:809]: Executing op: ActionStart(Name=InstallFinalize,,)
MSI (s) (FC:20) [18:45:27:809]: Executing op: CleanupTempFiles(TempFiles=C:\Windows\Installer\bcce1.mst)
MSI (s) (FC:20) [18:45:27:809]: Scheduling file 'C:\Windows\Installer\bcce1.mst' for deletion during post-install cleanup (not post-reboot).
MSI (s) (FC:20) [18:45:27:809]: Executing op: End(Checksum=0,ProgressTotalHDWord=0,ProgressTotalLDWord=0)
MSI (s) (FC:20) [18:45:27:825]: User policy value 'DisableRollback' is 0
MSI (s) (FC:20) [18:45:27:825]: Machine policy value 'DisableRollback' is 0
MSI (s) (FC:4C) [18:45:28:419]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIF35F.tmp, Entrypoint: HaspMsiInst
MSI (s) (FC:20) [18:47:00:107]: Note: 1: 2318 2:
MSI (s) (FC:20) [18:47:00:107]: Note: 1: 2318 2:
MSI (s) (FC:20) [18:47:00:107]: No System Restore sequence number for this installation.
MSI (s) (FC:20) [18:47:00:122]: Unlocking Server
MSI (s) (FC:20) [18:47:00:138]: PROPERTY CHANGE: Deleting UpdateStarted property. Its current value is '1'.
MSI (s) (FC:20) [18:47:00:185]: Skipping action: i2NETHaspCompatible.68423B2A_875E_425C_BD4F_56C759A1BEAF (condition is false)
MSI (s) (FC:20) [18:47:00:185]: Doing action: RefreshShellExtensions
Action ended 18:47:00: InstallFinalize. Return value 1.
MSI (s) (FC:20) [18:47:00:185]: Transforming table CustomAction.
MSI (s) (FC:E0) [18:47:00:263]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI5A25.tmp, Entrypoint: DLL1
Action start 18:47:00: RefreshShellExtensions.
MSI (s) (FC:20) [18:47:00:326]: Doing action: DLLWrapCleanup
Action ended 18:47:00: RefreshShellExtensions. Return value 1.
MSI (s) (FC:20) [18:47:00:326]: Transforming table CustomAction.
MSI (s) (FC:A0) [18:47:00:388]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI5AA3.tmp, Entrypoint: DLLWrapCleanup
Action start 18:47:00: DLLWrapCleanup.
MSI (s) (FC:20) [18:47:00:388]: Transforming table InstallExecuteSequence.
Action ended 18:47:00: DLLWrapCleanup. Return value 1.
Action ended 18:47:00: INSTALL. Return value 1.
Answers (4)
Btwn...You have mentioned that, your application has 4 msi and you have created mst for each msi..
Are you installing them as per installation order?
Comments:
-
Yes.I am installing them as per the instalaltion order.The same order works well in Windows Vista OS. Only Windows 7 faces the issue. - satyapai 12 years ago
-
I didn't see any difference between the success and failed logs till the following line
Machine policy value 'DisableRollback' is 0 - jagadeish 12 years ago