QUOTE (jcarle @ Dec 1 2007, 09:47 AM)

Does your updater detect updates that are already installed?
(trying to keep any salesmanship out of this)
Since I tested it just now, I can answer that question. Seems the answer is No (it installed 3 patches that I could verify were already installed - verified by having it install the patches again a second time). Evidently, this person is using a similar method to the one I arrived upon when I wrote
my patching program.
The problem I encountered in doing many things I wanted to do with the patches is that there's really no uniformity present in the way Microsoft presents their updates. This is one of them.
1) To be able to detect updates that are already installed in the list, a foolproof way to identify the KB number would be a requirement. You could parse it out of the file name, but given #2, I had reservations in whether the patches would have a uniform name that would always have a KB # in it. If I have a KB #, given in a reasonably reliable way I could feel comfortable with (i.e. not easily renamed out), I would know how to detect updates that are already installed, and would have already put it into the program.
2) As I mentioned in the accompanying documentation, there are certain updates where Microsoft uses what could be referred to as a non-uniform convention for running the patches silently. The patches listed within the documentation are great examples - they either use unique parms everything else doesn't use, or they do not accept parms at all.
3) Then, there always the issue of telling the difference between updates and installs. My program will identify WMP 11, IE7, and Service Pack 2 as something that it can run. While it will run WMP 11 okay (I tested it), but will run IE7 and then the IE7 install will reboot itself. I haven't tried actually running Service Pack 2 with my program, but I'm not sure I want to try. In short, basically, it picks up things that could be run, but are best left to be run by themselves. Or again, could be run, but require unique command parms.
In short, the issue is really one of identifying and cataloging what the patches are when they are presented.
(salesmanship mode on)
I'm looking at working on this program again soon (1 and 2 are done, actually) to add a few things that have been nagging at me:
1) Changing how the wait code is handled on running the patches. Gives more CPU to the patches and will shave a few seconds off of big patch runs.
2) Give the option at the beginning if qchain isn't detected to bring up the file from Microsoft's site to download it. This works in IE, but not tested yet for FF, Opera, etc. The method I used should work for those, though.
3) Give the option in attended mode to be able to select the patches to install.
4) Shut down System Restore while the patch run is going, if it is on. I can do this in XP very easily, but not sure how to do it with Windows ME yet (mine looks to support more than just 2000/XP, etc)