/build/static/layout/Breadcrumb_cap_w.png

The infinite repair loop. (GPO deployment)

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

Answers (18)

Posted by: WiseUser 18 years ago
Fourth Degree Brown Belt
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?
Posted by: WiseUser 18 years ago
Fourth Degree Brown Belt
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?
Posted by: Bladerun 18 years ago
Green Belt
0
I'm using Adminstudio 6 and Orca.

There is no row in the component table called "{different productcode}"
Posted by: WiseUser 18 years ago
Fourth Degree Brown Belt
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).[;)]
Posted by: Bladerun 18 years ago
Green Belt
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'
Posted by: Bladerun 18 years ago
Green Belt
0
The messagebox is empty.
Posted by: WiseUser 18 years ago
Fourth Degree Brown Belt
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?
Posted by: Bladerun 18 years ago
Green Belt
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.
Posted by: WiseUser 18 years ago
Fourth Degree Brown Belt
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)
Posted by: Bladerun 18 years ago
Green Belt
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.
Posted by: WiseUser 18 years ago
Fourth Degree Brown Belt
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)
Posted by: Bladerun 18 years ago
Green Belt
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
Posted by: WiseUser 18 years ago
Fourth Degree Brown Belt
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.
Posted by: Bladerun 18 years ago
Green Belt
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.
Posted by: sean_c_roberts 18 years ago
Senior Purple Belt
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
Posted by: WiseUser 18 years ago
Fourth Degree Brown Belt
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)
Posted by: WiseUser 18 years ago
Fourth Degree Brown Belt
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.
Posted by: Bladerun 18 years ago
Green Belt
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.
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ