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.
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
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)
Answered 04/07/2008 by: VBScab
Red Belt

Please log in to comment
0
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
Answered 04/08/2008 by: Fau
Senior Purple Belt

Please log in to comment
0
Stephane, je m'appelle Ian...

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"

Answered 04/08/2008 by: VBScab
Red Belt

Please log in to comment
0
Thanks Ian!

As soon as I get one free minute for myself [:(] I'll go check if I have those lines, but somehow, they ring a bell!

About the sequence numbers, how do those work? Just to be sure I don't miss out on something.

Thanks!

Stephane
Answered 04/08/2008 by: Fau
Senior Purple Belt

Please log in to comment
0
ORIGINAL: Fau
About the sequence numbers, how do those work? Just to be sure I don't miss out on something.
They'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.
Answered 04/08/2008 by: VBScab
Red Belt

Please log in to comment
0
Ah... makes perfect sense :)

Ok, let me go check it out. Thanks again!
Answered 04/08/2008 by: Fau
Senior Purple Belt

Please log in to comment
0
/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!
Answered 04/08/2008 by: Fau
Senior Purple Belt

Please log in to comment
0
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.
Answered 04/09/2008 by: VBScab
Red Belt

Please log in to comment
Answer this question or Comment on this question for clarity