MSIINSTALLER eventcodes
Gentlemen,
I've searched every resource I know and still haven't found the answer. I'm working for a large company that wants to know how much self-healing is actually being utilized and from which source (the network, or the windows installer cache). There are multiple packaging teams. One creates per-user installations, advertises shortcuts and sets ALLUSERS=2. Another team creates per machine packages with nonadvertised shortcuts and ALLUSERS=1.
The PU team has dist servers utilized for healing. The PM team doesn't have a central repository for healing (therefore disabling advertised shortcuts). I know that doesn't disable every healing entry point into a project, but due to infrastructure constraints it's the path that was chosen.
I have written a .vbs that queries the eventlog for events 1001, 1004 and 11728. What I can't find is to tell WHERE the app is healing from (the LAN or the cache). Can someone give me a clue where I should look or what I should look for? I think having this information right now is useless (as we can't tell the healing location). The SOURCELIST tells me where, but not IF the package is healing from there (if it's just reg keys or ini file info).
Any information you guys could give would be greatly appreciated.
I've searched every resource I know and still haven't found the answer. I'm working for a large company that wants to know how much self-healing is actually being utilized and from which source (the network, or the windows installer cache). There are multiple packaging teams. One creates per-user installations, advertises shortcuts and sets ALLUSERS=2. Another team creates per machine packages with nonadvertised shortcuts and ALLUSERS=1.
The PU team has dist servers utilized for healing. The PM team doesn't have a central repository for healing (therefore disabling advertised shortcuts). I know that doesn't disable every healing entry point into a project, but due to infrastructure constraints it's the path that was chosen.
I have written a .vbs that queries the eventlog for events 1001, 1004 and 11728. What I can't find is to tell WHERE the app is healing from (the LAN or the cache). Can someone give me a clue where I should look or what I should look for? I think having this information right now is useless (as we can't tell the healing location). The SOURCELIST tells me where, but not IF the package is healing from there (if it's just reg keys or ini file info).
Any information you guys could give would be greatly appreciated.
0 Comments
[ + ] Show comments
Answers (9)
Please log in to answer
Posted by:
AngelD
15 years ago
To find out what gets repaired or not you would need to check the verbose log.
As long as no file resources needs to be repaired then the cached MSI will be used, in any scenario when a component is found broken with files then the original source will be required as the cached MSI is stripped out of any cabinet before cached.
The order where the original msi will be search for (Source Resiliency) can be found at http://msdn.microsoft.com/en-us/library/aa371859(VS.85).aspx
HKCR\Installer\Products\<Packed ProductCode>\SourceList
Check out the LastUsedSource registry entry and the Net subkey for the list of possible network resource locations.
As long as no file resources needs to be repaired then the cached MSI will be used, in any scenario when a component is found broken with files then the original source will be required as the cached MSI is stripped out of any cabinet before cached.
The order where the original msi will be search for (Source Resiliency) can be found at http://msdn.microsoft.com/en-us/library/aa371859(VS.85).aspx
HKCR\Installer\Products\<Packed ProductCode>\SourceList
Check out the LastUsedSource registry entry and the Net subkey for the list of possible network resource locations.
Posted by:
aogilmor
15 years ago
ORIGINAL: Galactus
I've searched every resource I know and still haven't found the answer. I'm working for a large company that wants to know how much self-healing is actually being utilized and from which source (the network, or the windows installer cache). There are multiple packaging teams. One creates per-user installations, advertises shortcuts and sets ALLUSERS=2. Another team creates per machine packages with nonadvertised shortcuts and ALLUSERS=1.
Man, this has got to be the craziest thing I've seen in a while! Seriously, unless self healing is killing the network, WTF do they care where it's running from? "How much" self healing is being utilized? Can they be any more vague? Somebody's got waaaaay too much time on their hands. Seriously, you've got a team of packagers...(in a multi-computer environment I would assume) devoted to Per-User installs? O...M....G. OK, well at least you'll have work for a while [:D]
but if they insist on pursuing this madness, try WMI's Win32_Product class which contains the PackageCache MSI, which you might be able to query to see where it's healing from. it really seems pointless, although you should get a good "scripting workout" from it. Maybe (depending on the logging level) you could search the log for msi database repair location.
Posted by:
Galactus
15 years ago
This is the craziest thing I've ever been a part of.
We're talking 140k plus users in a footprint the size of uhhh The EARTH. The Per User team is doing it this way because "it's always done this way." The other team supports as many users as the other team with very few incidents. Without too many details being given 1 company married another, so we're hashing out the decision.
The "Higher Ups" are trying to make a decision:
Fork out the money (A LOT of money) for local Dist Servers 500 feet apart (sarcasm) or rework the legacy packages to per machine ALLUSERS=1. My suggestion was cache the large core apps local. SCCM can be leveraged to change the SOURCELISTS for apps, but that requires the packages reside in SCCM with VERY expensive SAN space (so say top 5% of apps). The rest? If a user breaks it, call the helpdesk. Also, we are worried about killing the network. Their network has SEVERE stability issues and no one can figure out why.
Instead, management said "Galactus, you're a sucker, see what you can do.". So I've been tasked with getting this data to show what we already know... In a large enterprise, Per User installations with Advertised Shortcuts and ALLUSERS=2 is not the best thing going and a complete nightmare to manage.
We're talking 140k plus users in a footprint the size of uhhh The EARTH. The Per User team is doing it this way because "it's always done this way." The other team supports as many users as the other team with very few incidents. Without too many details being given 1 company married another, so we're hashing out the decision.
The "Higher Ups" are trying to make a decision:
Fork out the money (A LOT of money) for local Dist Servers 500 feet apart (sarcasm) or rework the legacy packages to per machine ALLUSERS=1. My suggestion was cache the large core apps local. SCCM can be leveraged to change the SOURCELISTS for apps, but that requires the packages reside in SCCM with VERY expensive SAN space (so say top 5% of apps). The rest? If a user breaks it, call the helpdesk. Also, we are worried about killing the network. Their network has SEVERE stability issues and no one can figure out why.
Instead, management said "Galactus, you're a sucker, see what you can do.". So I've been tasked with getting this data to show what we already know... In a large enterprise, Per User installations with Advertised Shortcuts and ALLUSERS=2 is not the best thing going and a complete nightmare to manage.
Posted by:
jmcfadyen
15 years ago
im not a fan of having no source available (we have that situation in my current environment)
I am currently fighting the same battle at the moment. Where people come up with this madness I don't know.
One thing you could easily tell on the site with no source (ALLUSERS=1) you will find if it needs the source and its is not present you will be present with another error.
Therefore rather than finding out what is healing and where from, look for what has failed healing due to lack of source.
The whole per user / per machine thing should be managed based on the licensing model of the vendor anyway.
i.e. wise user per user the rest of the world mostly per machine. I think the deployment model should follow the licensing model to be 100% correct. Unlikely it will ever happen but it makes financial sense to me. (non technical argument).
I am currently fighting the same battle at the moment. Where people come up with this madness I don't know.
One thing you could easily tell on the site with no source (ALLUSERS=1) you will find if it needs the source and its is not present you will be present with another error.
Therefore rather than finding out what is healing and where from, look for what has failed healing due to lack of source.
The whole per user / per machine thing should be managed based on the licensing model of the vendor anyway.
i.e. wise user per user the rest of the world mostly per machine. I think the deployment model should follow the licensing model to be 100% correct. Unlikely it will ever happen but it makes financial sense to me. (non technical argument).
Posted by:
anonymous_9363
15 years ago
My current client does p/u installs and it's a chuffin' nightmare.
Roaming apps is the only justification for p/u installs, IMV, and is the one my client uses. So, as soon as a user sits at another machine and logs in, he gets his apps delivered. However, almost without exception, software licenses are limited to one machine, irrespective of whether the user can only use one at a time and of whether or not the application folder is permissioned to restrict access: pragmatism isn't a word software vendors recognise. So, do they have EVERY machine licensed for EVERY application? What does their Compliance/Audit team make of it? FAST (or whatever they're calling themselves this week) would have a field day...
Roaming apps is the only justification for p/u installs, IMV, and is the one my client uses. So, as soon as a user sits at another machine and logs in, he gets his apps delivered. However, almost without exception, software licenses are limited to one machine, irrespective of whether the user can only use one at a time and of whether or not the application folder is permissioned to restrict access: pragmatism isn't a word software vendors recognise. So, do they have EVERY machine licensed for EVERY application? What does their Compliance/Audit team make of it? FAST (or whatever they're calling themselves this week) would have a field day...
Posted by:
aogilmor
15 years ago
Posted by:
Galactus
15 years ago
Thanks to all you guys. I'm going to give this thing a shot. We'll see what happens. If the script somehow works, I will definitely post it here.
Management still doesn't have anything to compare it to, but maybe a graph with pretty colors will give them something to look at. I've spoken to MS TAMs, developers and other engineers. This is the first place I've received at least 1 idea. Mostly I just get blank stares (which is the only thing I would have to offer myself). Even if this doesn't work out, I really appreciate the direction.
Management still doesn't have anything to compare it to, but maybe a graph with pretty colors will give them something to look at. I've spoken to MS TAMs, developers and other engineers. This is the first place I've received at least 1 idea. Mostly I just get blank stares (which is the only thing I would have to offer myself). Even if this doesn't work out, I really appreciate the direction.
Posted by:
Foleymon
15 years ago
Posted by:
AngelD
15 years ago
If you want to minimize the source requirement during repair I would take advantage of John's (jmcfadyen) way to repair user-profile files from duplicate files.
The first repair for a user will in most case be due to missing files in the user's profile and therefore trigger a repair (usually by missing HKCU entry as component keypath).
By having each profile file as an entry in the DuplicateFile table instead they will be copied from the File table entry (referenced by the DuplicateFile.File_ column) (ex. installed under [INSTALLDIR]UserProfile\...) to the user's profile.
For more info read John's reply (Current User Healing II) at http://www.appdeploy.com/messageboards/fb.asp?m=945
The first repair for a user will in most case be due to missing files in the user's profile and therefore trigger a repair (usually by missing HKCU entry as component keypath).
By having each profile file as an entry in the DuplicateFile table instead they will be copied from the File table entry (referenced by the DuplicateFile.File_ column) (ex. installed under [INSTALLDIR]UserProfile\...) to the user's profile.
For more info read John's reply (Current User Healing II) at http://www.appdeploy.com/messageboards/fb.asp?m=945
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.