/bundles/itninjaweb/img/Breadcrumb_cap_w.png
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   [ - ] Hide 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.
Answer this question or Comment on this question for clarity

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