Active Setup Issues
Hello guys,
Ok I'm facing a VERY weird problem. I hope you may be able to offer some insight and help me out to resolve this issue.
I'm packaging a software which requires that a specific file be copied in %UserProfile%Application Data
I placed the file in my package in Windows\Profiles\Application Data in Wise. I also placed an Active Setup with a msiexec /fup, even tried /fua. Ok, now here's the tricky part:
Scenario A: I install the package manually while logged on a test machine. Application runs #1. I log off, a test user logs in, file is copied also, everything works #1.
Scenario B: I revert my machine to my original snapshot. Instead of installing it manually on the PC, I push my installation via deployment with PSEXEC. Installation works fine. If i log with an administrator OR user account, my self healing starts, but the !&?&/?/? file isn't copied in Application Data.
I'm going out of my way here to find out why... Now, since deployment is THE way we need to install, you understand why I need to get scenario B up and running.
Please, help out a desperate packager!
Thank you!
Stephane
PS: For troubleshooting purposes, here's something I found in the log file I generated:
MSI (s) (D4:38) [17:52:37:983]: Executing op: SetTargetFolder(Folder=C:\WINDOWS\CCH\Taxprep\FMW-2008\)
MSI (s) (D4:38) [17:52:37:983]: Executing op: SetSourceFolder(Folder=1\Windows\Profiles\Applic~1\CCH\Taxprep\FMW-2008\|Windows\Profiles\Application Data\CCH\Taxprep\FMW-2008\)
MSI (s) (D4:38) [17:52:37:983]: Executing op: FileCopy(SourceName=Ifxfm.INI,SourceCabKey=Ifxfm.INI,DestName=Ifxfm.INI,Attributes=0,FileSize=2093,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=16908288,HashOptions=0,HashPart1=-20671564,HashPart2=316615399,HashPart3=1438127700,HashPart4=1994169653,,)
MSI (s) (D4:38) [17:52:37:983]: File: C:\WINDOWS\CCH\Taxprep\FMW-2008\Ifxfm.INI; Won't Overwrite; Won't patch; Existing file is unversioned but modified
MSI (s) (D4:38) [17:52:37:983]: Executing op: FileCopy(SourceName=WK_Inst.log,SourceCabKey=WK_Inst.log1,DestName=WK_Inst.log,Attributes=0,FileSize=0,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=16908288,HashOptions=0,HashPart1=0,HashPart2=0,HashPart3=0,HashPart4=0,,)
MSI (s) (D4:38) [17:52:37:983]: File: C:\WINDOWS\CCH\Taxprep\FMW-2008\WK_Inst.log; Won't Overwrite; Won't patch; Existing file is unversioned and unmodified - hash matches source file
I can't understand why he says TargetFolder = C:\Windows\CCH when it is clearly in Windows\Profiles\Application Data in my package.
Ok I'm facing a VERY weird problem. I hope you may be able to offer some insight and help me out to resolve this issue.
I'm packaging a software which requires that a specific file be copied in %UserProfile%Application Data
I placed the file in my package in Windows\Profiles\Application Data in Wise. I also placed an Active Setup with a msiexec /fup, even tried /fua. Ok, now here's the tricky part:
Scenario A: I install the package manually while logged on a test machine. Application runs #1. I log off, a test user logs in, file is copied also, everything works #1.
Scenario B: I revert my machine to my original snapshot. Instead of installing it manually on the PC, I push my installation via deployment with PSEXEC. Installation works fine. If i log with an administrator OR user account, my self healing starts, but the !&?&/?/? file isn't copied in Application Data.
I'm going out of my way here to find out why... Now, since deployment is THE way we need to install, you understand why I need to get scenario B up and running.
Please, help out a desperate packager!
Thank you!
Stephane
PS: For troubleshooting purposes, here's something I found in the log file I generated:
MSI (s) (D4:38) [17:52:37:983]: Executing op: SetTargetFolder(Folder=C:\WINDOWS\CCH\Taxprep\FMW-2008\)
MSI (s) (D4:38) [17:52:37:983]: Executing op: SetSourceFolder(Folder=1\Windows\Profiles\Applic~1\CCH\Taxprep\FMW-2008\|Windows\Profiles\Application Data\CCH\Taxprep\FMW-2008\)
MSI (s) (D4:38) [17:52:37:983]: Executing op: FileCopy(SourceName=Ifxfm.INI,SourceCabKey=Ifxfm.INI,DestName=Ifxfm.INI,Attributes=0,FileSize=2093,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=16908288,HashOptions=0,HashPart1=-20671564,HashPart2=316615399,HashPart3=1438127700,HashPart4=1994169653,,)
MSI (s) (D4:38) [17:52:37:983]: File: C:\WINDOWS\CCH\Taxprep\FMW-2008\Ifxfm.INI; Won't Overwrite; Won't patch; Existing file is unversioned but modified
MSI (s) (D4:38) [17:52:37:983]: Executing op: FileCopy(SourceName=WK_Inst.log,SourceCabKey=WK_Inst.log1,DestName=WK_Inst.log,Attributes=0,FileSize=0,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=16908288,HashOptions=0,HashPart1=0,HashPart2=0,HashPart3=0,HashPart4=0,,)
MSI (s) (D4:38) [17:52:37:983]: File: C:\WINDOWS\CCH\Taxprep\FMW-2008\WK_Inst.log; Won't Overwrite; Won't patch; Existing file is unversioned and unmodified - hash matches source file
I can't understand why he says TargetFolder = C:\Windows\CCH when it is clearly in Windows\Profiles\Application Data in my package.
0 Comments
[ + ] Show comments
Answers (8)
Please log in to answer
Posted by:
anonymous_9363
16 years ago
Thoughts which come to mind:
- I suspect you're using Wise which has traditionally choked occasionally on user profile stuff.. Find an MSI which was authored with InstallShield and copy in the 3 user profile-setting Custom Actions (e.g. setAllUserProfile2K). Our templates have the IS CAs copied into them for precisely this reason.
I have seen this issue cause an incorrect TARGETDIR to be used, so fix the profile stuff first and then re-test.
- I wonder what credentials are used by the process which PSExec starts (presumably MSIExec)? Forget that route and use AD's Group Policy deployment. Not really a proper deployment system [waits for flames from GP fans...] but W A Y better than using PSExec (or any remote process kicker).
- This has nothing to do with Active Setup (so far)
- I suspect you're using Wise which has traditionally choked occasionally on user profile stuff.. Find an MSI which was authored with InstallShield and copy in the 3 user profile-setting Custom Actions (e.g. setAllUserProfile2K). Our templates have the IS CAs copied into them for precisely this reason.
I have seen this issue cause an incorrect TARGETDIR to be used, so fix the profile stuff first and then re-test.
- I wonder what credentials are used by the process which PSExec starts (presumably MSIExec)? Forget that route and use AD's Group Policy deployment. Not really a proper deployment system [waits for flames from GP fans...] but W A Y better than using PSExec (or any remote process kicker).
- This has nothing to do with Active Setup (so far)
Posted by:
Fau
16 years ago
ORIGINAL: VBScab
Thoughts which come to mind:
- I suspect you're using Wise which has traditionally choked occasionally on user profile stuff.. Find an MSI which was authored with InstallShield and copy in the 3 user profile-setting Custom Actions (e.g. setAllUserProfile2K). Our templates have the IS CAs copied into them for precisely this reason.
I have seen this issue cause an incorrect TARGETDIR to be used, so fix the profile stuff first and then re-test.
- I wonder what credentials are used by the process which PSExec starts (presumably MSIExec)? Forget that route and use AD's Group Policy deployment. Not really a proper deployment system [waits for flames from GP fans...] but W A Y better than using PSExec (or any remote process kicker).
- This has nothing to do with Active Setup (so far)
Heya Mr Scab!
Thanks as always for your replies.
Let me get the quick answer out of the way: PSEXEC is my alternate deployment method. I usually *should* use SMS for my deployments. Only reason I use PSEXEC is to speed up the process, since often waiting for SMS can take upwards to 10 minutes for a simple deployment. Anyway, I will definatly try it out and see if I have the same problem with SMS or not.
I like your idea for the 3 custom actions to copy in my package. Only thing is, I never noticed them since I don't usually pay attention for something that's usually working [;)] Any idea of a commercial use software I could check out? Or maybe you could email me a blank MSI with only the 3 custom actions? If it's not out of your way.
Keep me posted,
Thanks!
Stephane
Posted by:
anonymous_9363
16 years ago
Stephane, je m'appelle Ian...
It would take longer to set up and send a file than it would to show you here:
It would take longer to set up and send a file than it would to show you here:
'// The view in Wise's 'MSI Script' window
If VersionNT Then
Set Property USERPROFILE to [%USERPROFILE]
End
If VersionNT= 400 Then
Set Property ALLUSERSPROFILE to [%SystemRoot]\Profiles\All Users
End
If VersionNT >= 500 Then
Set Property ALLUSERSPROFILE to [%ALLUSERSPROFILE]
End
'// The view of the InstallExecuteSequence table. You'll probably need to change the 'Sequence' numbers
"SetUserProfileNT_EI","VersionNT","625"
"SetAllUsersProfileNT_EI","VersionNT = 400","650"
"SetAllUsersProfile2K_EI","VersionNT >= 500","675"
'// The view of the InstallUISequence table. You'll probably need to change the 'Sequence' numbers
"SetUserProfileNT_UI","VersionNT","962"
"SetAllUsersProfileNT_UI","VersionNT = 400","974"
"SetAllUsersProfile2K_UI","VersionNT >= 500","986"
Posted by:
Fau
16 years ago
Posted by:
anonymous_9363
16 years ago
ORIGINAL: FauThey're literally what they say - the sequence in which the CAs will run. Thus you can see 'SetAllUserProfileNT_UI' at position 974 will run before 'SetAllUsersProfile2K_UI' at position 986. As a guide, I have ours executing between FindRelatedProducts and ValidateProductID. No particular reason for that...I think it was probably where the originals were in the MSI I shamelessly ransacked to get them.
About the sequence numbers, how do those work? Just to be sure I don't miss out on something.
Posted by:
Fau
16 years ago
/sigh
Back to the drawing board.
Ok, I created the 3 custom actions pretty seemlessly... I checked my tables. I'm not sure if this is a problem or not: My 3 actions were in InstallUISequence, they each generated they're own number. However, i couldn't find them in InstallExecuteSequence.Is this a problem? Should I manually create the entrie in the table or should they already be there?
Thanks!
Back to the drawing board.
Ok, I created the 3 custom actions pretty seemlessly... I checked my tables. I'm not sure if this is a problem or not: My 3 actions were in InstallUISequence, they each generated they're own number. However, i couldn't find them in InstallExecuteSequence.Is this a problem? Should I manually create the entrie in the table or should they already be there?
Thanks!
Posted by:
anonymous_9363
16 years ago
If they're not in the EI sequence, they won't run in a 'blind' install, i.e. where no UI is displayed, such as via SMS, Group Policy or some other deployment mechanism, or from a command-line argument.
Just copy them between the sequences using your tool's GUI (easier than directly editing the tables). I generally add an identifier to any CA name to quickly indicate where it runs. Thus, my versions of these particular CAs are called e.g. SetAllUserProfile2k_UI (runs in User Interface sequence) and SetAllUserProfile2k_EI (runs in Execute Immediate sequence). You can, of course, set them to execute only once per install but, as they're only setting properties, I don't bother with that.
Just copy them between the sequences using your tool's GUI (easier than directly editing the tables). I generally add an identifier to any CA name to quickly indicate where it runs. Thus, my versions of these particular CAs are called e.g. SetAllUserProfile2k_UI (runs in User Interface sequence) and SetAllUserProfile2k_EI (runs in Execute Immediate sequence). You can, of course, set them to execute only once per install but, as they're only setting properties, I don't bother with that.
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.