I'm working with AutoAudit 1.6.33.

App comes from the vendor as a single self extracting EXE created by installshield. Help file states that you can run the exe with a /v COMMAND, and it will pass COMMAND to msiexec. So i run it with a /v /a to create an administrative install point. IAP appear to be created.

When I run it manually, it installs fine. When I assign it in GPO, it installs during login as expected, but when I launch the application it continally tries to repair itself. The event log tells me:

"Detection of product '{productcode}' feature 'AlwaysInstall' failed during request for component '{differerent productcode}'"


Some fun facts about this:
- When the package is assigned via GPO and I try to remove it via GPO, nothing gets uninstalled.
- This is really odd. It works for the 16 people that currently have the package assigned.


Any ideas about where I should go on this one?
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
If you open the MSI file (with Orca or another editor) and check the keypath for the row of the component table called "{differerent productcode}", what is this keypath?
Answered 05/27/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
0
I'm using Adminstudio 6 and Orca.

There is no row in the component table called "{different productcode}"
Answered 05/27/2005 by: Bladerun
Green Belt

Please log in to comment
0
I'd be very surprised if there was!![:D]

I expected you to substitute the relevant component code from the event log (the one you called "{different productcode}" in your post).[;)]
Answered 05/27/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
0
lol, well that's embarrassing. Remind me not to post until AFTER my first cup of coffee. And I even thought to myself "what the heck, he can't even spell 'different'." Hrm...well, call it a senior moment...




Anyhow, the keypath is 'APIFunc.dll'
Answered 05/27/2005 by: Bladerun
Green Belt

Please log in to comment
2
I'm glad to hear I'm not the only one who does things like that!! I've reached 207 posts without posting anything too embarrassing, but I think it's only a matter of time![:D]

Try running the following script on a PC where the package is installed:

Const sPRODCODE = "{productcode}"

Const sCOMPCODE = "{different productcode}"

Set oInst = CreateObject("WindowsInstaller.Installer")

Msgbox oInst.ComponentPath(sPRODCODE, sCOMPCODE)

Remember to substitute the correct values into the two constants.

What does the resulting message box say? If it returns a path, does the resource exist?
Answered 05/27/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
0
The messagebox is empty.
Answered 05/27/2005 by: Bladerun
Green Belt

Please log in to comment
0
Everytime you run the shortcut it self-repairs, and you get the event log message described above? You substitute the product code and the component code values from the event viewer into my script and get nothing back?

Can you post exactly what you substituted into the two constants?

I take it the application appears installed under ARP in the control panel? And you can actually see the application folder installed?
Answered 05/27/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
0
Everytime you run the shortcut it self-repairs, and you get the event log message described above? You substitute the product code and the component code values from the event viewer into my script and get nothing back?
Correct on both.

Can you post exactly what you substituted into the two constants?

Const sPRODCODE = "{3F90EA81-B0EC-42E2-9BB2-378134F47F00}"

Const sCOMPCODE = "{188F87BF-2DEE-4E56-980C-9E0DA079E5B1}"

Set oInst = CreateObject("WindowsInstaller.Installer")

Msgbox oInst.ComponentPath(sPRODCODE, sCOMPCODE)

I take it the application appears installed under ARP in the control panel? And you can actually see the application folder installed?

Correct, it shows up in ARP. Although when i try to remove it, it doesn't uninstall.

All the files & reg keys are to be on the system. In fact, if I cancel the repair about 20 times, the application launches successfully.
Answered 05/27/2005 by: Bladerun
Green Belt

Please log in to comment
0
Weird!

If you search for "APIFunc.dll" in the registry under the following path, do you find anything?

"HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\"

What if you don't cancel the repairs, does it eventually launch too?

What if you run this?

Const sPRODCODE = "{3F90EA81-B0EC-42E2-9BB2-378134F47F00}"

Set oInst = CreateObject("WindowsInstaller.Installer")

Msgbox oInst.ProductState(sPRODCODE)
Answered 05/27/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
0
When I searched under installer it turned up once in Installer\UserData\S-1-5-98\<long alphanumberic string>



If you don't cancel the repairs, it keeps trying to repair over & over, repeating that error in the application event viewer each time, and the application never launches, just stays at the splash screen. I've let it run for several hours before killing it, and have found several hundreded of that error in the event log.
Answered 05/27/2005 by: Bladerun
Green Belt

Please log in to comment
0
The event that you described has a "1001" event ID. Do you also have some "1004" ones? They're more interesting because they actually tell you what's missing.

It's a "per-machine" install so the path should be something like this (the Xs wouldn't be Xs though):

"...Installer\UserData\S-1-5-98\Components\FB78F881EED265E4XXXXXXXXXXXXXXXX\18AE09F3CE0B2E24XXXXXXXXXXXXXXXX"

And the value should be the full path to the keypath for this component. What was this path?

Did you try this?

Const sPRODCODE = "{3F90EA81-B0EC-42E2-9BB2-378134F47F00}"

Set oInst = CreateObject("WindowsInstaller.Installer")

Msgbox oInst.ProductState(sPRODCODE)
Answered 05/27/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
0
It's actually assigned Per User.

The path in the value is: C?\Windows\System32\APIFunc.dll

Think that's the problem?


When I run that script the msgbox returns: 1
Answered 05/27/2005 by: Bladerun
Green Belt

Please log in to comment
0
The "1" returned means that it's advertised - which is what you'd expect if it's been assigned to the user.

The path you gave me earlier was for a "per-machine" component. Unfortunately, you didn't post the entire path so I don't know if it was the same component or even the same product.

It would be good to know if you're getting "1004" events too. These should give an indication about which components are broken, and what their keypaths are.
Answered 05/27/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
0
Complete path:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\6928740BE0842644FAFBCA5196FF16D2\18AE09F3CE0B2E24B92B7318434FF700


There are only 1001 events, no 1004's.
Answered 05/27/2005 by: Bladerun
Green Belt

Please log in to comment
0
Ok guys, I'm gonna risk looking silly to pose a question - and obviously you guys know your stuff on component programming - have you checked the rights on keys you're trying to modify?

Is it possible you're running your MSI not elevated on a locked-down system?

I ask this because in my past experience, I'll get the never-ending repairs when I'm trying to change keys I have no rights to change.

Share and Enjoy!

- Sean Roberts
Answered 05/27/2005 by: sean_c_roberts
Senior Purple Belt

Please log in to comment
0
"18AE09F3CE0B2E24B92B7318434FF700" does indeed correspond to your productcode "{3F90EA81-B0EC-42E2-9BB2-378134F47F00}".

But "6928740BE0842644FAFBCA5196FF16D2" does not correspond to the component code that you posted earlier - "{188F87BF-2DEE-4E56-980C-9E0DA079E5B1}".

I think that "6928740BE0842644FAFBCA5196FF16D2" should correspond to component code "{B0478296-480E-4462-AFBF-AC1569FF612D}"??

Do you have a component with this component code in your package?

What if you run the following script?

Const sPRODCODE = "{3F90EA81-B0EC-42E2-9BB2-378134F47F00}"

Const sCOMPCODE = "{B0478296-480E-4462-AFBF-AC1569FF612D}"

Set oInst = CreateObject("WindowsInstaller.Installer")

Msgbox oInst.ComponentPath(sPRODCODE, sCOMPCODE)
Answered 05/27/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
0
Bladerun said he's assigning using Group Policy, so it should be running elevated.

Easy to check though - switch the logging policy on, and check the log file.
Answered 05/27/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
0
I didn't see that component in the AutoAudit package.

When I ran that script, the msgbox was empty.



And you are correct, the MSI is running with elevated rights. AlwaysInstallElevated is set to 1, the account I'm logging in with is an admin account (per domain policy), and the log file confirms this.
Answered 05/27/2005 by: Bladerun
Green Belt

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