freshas a daisy Daisy v2.2

An intelligent auto-hotfix utility for Microsoft Windows 2000 and XP

by Marc DeBonis
Lead Systems Architect
Virginia Tech - Microsoft Implementation Group

http://vtmig.w2k.vt.edu

Document last updated: 08/02/2006

Where is Version 2.2.1?

The short answer is that there is no version 2.2.1.
The long answer is that the new version notification mechanism within Daisy has been used to notify users of Daisy of its impending de-support. Daisy will no longer be actively support as of August 14th, 2006. Due to unavoidable work load issues and development of other, superior products I can no longer support the hotfix updates, FTP, or code updates to Daisy. Administrators currently utilizing Daisy can easily build their own FTP mirror sites (see below) to continue the process. End Users should migrate to other patch solutions such as Windows Update, Microsoft Update or one of the fine products Shavlik makes. Also, since Daisy is open source, feel free to add/modify or change the way the program functions and return something to the OSS community.

Thanks for all your help and support and I hope you enjoyed using Daisy!

Interested it what MIG is cooking up? Check it out at VT WSUS

- M

What is Daisy?

Daisy is a program that reviews your system for service pack and OS levels, determining what hotfixes the OS and applications need, and downloading and installing them in a correct and consistent manner. It checks that the hotfixes installed on the system are installed correctly.

!IMPORTANT! Using Daisy on XP SP2? See Issue #9 below!

What's new from version 1.5?

What's new from version 2.0?

What's new from version 2.1?

What are the requirements to run Daisy?

  1. You must be logged in as a user with Administrative rights to the system (can be overridden)
  2. The system must be running a flavor of English version of Windows 2000 or XP
  3. The system must have internet connectivity (specifically, FTP and HTTP)
  4. The messenger service must be started (can be overridden)
  5. The daisy.ini file must be in the same directory as the daisy.exe

What OSes and Applications can Daisy patch?

INTERNET EXPLORER 5.01 SP4
INTERNET EXPLORER 5.5 SP2
INTERNET EXPLORER 6 SP1
NOT INTERNET EXPLORER 6 on XP SP2!
INTERNET INFORMATION SERVER 4.0 SP7
INTERNET INFORMATION SERVER 5.0 SP3
INTERNET INFORMATION SERVER 5.1 SP3
MDAC 2.5 SP3
MDAC 2.6 SP2
MDAC 2.7 SP1
SQL SERVER 2000 SP3
SQL SERVER 7.0 SP4
WINDOWS 2000 ADVANCED SERVER SP4
WINDOWS 2000 PROFESSIONAL SP4
WINDOWS 2000 SERVER SP4
WINDOWS MEDIA PLAYER 6.4 GOLD
WINDOWS MEDIA PLAYER 7.0 GOLD
WINDOWS MEDIA PLAYER FOR WINDOWS XP SP1
WINDOWS XP SP2 (32bit)
WINDOWS XP TABLET PC GOLD
NOT WINDOWS 2003 any version!

PLEASE NOTE: If you have an OS or APP installed with a lesser service pack, you may NOT get hotfixes installed for it!!!

What can't Daisy do?

It can't fix security or system problems not related to hotfixes. It will not down load or install Service Packs. It will not butter your bread.

How do I install and run Daisy?

Download load it via a web browser from this link. Save it to a folder (not the desktop) on a disk with plenty of space. Unzip it and run it from that folder. Several files will be extracted and folders will be created. Wait for it to finish (it might take quite awhile). If it tells you that hotfixes where installed then you need to reboot. Reboot then run Daisy again to verify.

How do I know what Daisy did?

Check the output.txt, missing.txt, and the hfdb.ini files in the directory you ran Daisy from. These have all kinds of good information in them. Do not attempt to access these files while Daisy is still running.

How does Daisy work?

Ancient Chinese secret. Actually, this is what it does*:

1. Verify command line switches
2. Verify security access requirements
3. Verify OS version and service pack
4. Download daisy.ini from FTP site
5. Check version in .ini to running app's version
5.5. Build ignoreQs.txt from daisy.ini
6. Run qfecheck for pre-hotfix check
7. Update registry so Daisy can post event log messages
8. Download .xml or .zip mssecure database from local FTP or xml.shavlik.com via HTTP
9. Run hfnetchk locally with downloaded xml database and ignoreQst.txt file
10. Extract hotfix info from results
11. Report to user and ask if they want to download and install hotfixes
12. For each hotfix, try to download the file and it's .cls pairing from the local FTP site
13. Checksum the hotfix file to make sure it downloaded correctly
14. Install each hotfix with its custom command line switches
15. Report outcome to the user
16. Write events to the event log
17. Run qfecheck for post-hotfix check
18. Run qchain to organize hotfix installs
19. Quit or reboot depending on command line switches

*this is an oversimplification...

Are there any command line options for Daisy?

How do you use a command line switch? See issue 3 below...

Suggestions for use

I suggest you use the built in W2K Task Scheduler to run Daisy once a week or so. With the reboot option, you can have the system hotfix itself and keep the system up to date. Help the system stay, "Freshas a daisy"...

How can I customize Daisy to use at my work/university?

See Customizing Daisy

Are there any known issues (bugs) with Daisy?

Issue 1 -

Q: One or more of the downloads fail. Looking in the output.txt file I see something about it not being approved?

A: With Daisy, hotfixes aren't immediately approved once they become available from Microsoft. The Daisy administrator (the person who controls the FTP site) determines when to release hotfixes for distribution for quality control purposes. This is normal.

Issue 2 -

Q: Daisy says my system is up to date, but Windows Update says I have a whole bunch of hotfixes to install. What gives?

A: Windows Update pushes IMHO hotfixes that are not critical or that MS deems necessary to push as part of an "agenda" (like a DRM patch for Windows Media Player). Daisy goes by the XML file from Shavlik which is much better at determining what your system "really" needs.

Issue 3 -

Q: I get an error about messenger not running or a winbatch error saying something about "msgsrvstatus = wntSvdStatus("",msg_name,0,2)"?

A: By default, Daisy wants to use the messenger system to communicate with the user. This is useful if nobody is actually logged into the system when Daisy runs (via scheduled task, etc). To disable this functionality because you have turned off the messenger service, a GPO has turned it off on your system, or Daisy is failing to determine the status of the service do the following:
  1. Right click on daisy.exe and select create shortcut
  2. Right click on the shortcut to daisy.exe and select its properties
  3. At the end of the string in the Target field, add a "-m" (no quotes) to the line after the last quote mark
  4. Verify it looks similar to "your_path_to_daisy\bin\daisy.exe" -m
  5. (note the space between the quotes and the -m!)
  6. This will feed daisy the command line option -m which will tell it to not check the messenger service
  7. For more command line options, see the section above in this document

Issue 4 -

Q: My system is behind a firewall. How can I get Daisy to use the proxy?

A: Create a batch file (a simple text file) in the same directory as Daisy. Name it something like daisy_use_proxy.bat

Add the following lines to the .bat file:

set WGETRC = .\wgetrc
daisy
exit

Now copy the file WGET_sample.wgetrc from the Daisy doc directory into the the bin directory. Rename this file to wgetrc.
Edit the wgetrc file and uncomment the appropriate sections to specify your correct proxy settings.
See your network administrator if you need the specifics on your proxy settings.
Now run the batch file instead of the Daisy application
FYI: You can also include command line switches in the batch file by adding them on the daisy line, i.e. daisy -m -a

Issue 5-

Q: When trying to run Daisy I get box that says TERMINAL WIL ERROR=>1932 (WinExec: Function Failed) and then it quits.

A: Thanks to Steve Dillman who discovered this issue and was instrumental in debugging this. The problem is either your environment variable for COMSPEC is not pointing to the default exe, or you are missing a necessary DLL in the correct search path.

Search for the file ctl3d.dll in your system. If there is not a copy of it in the Windows system32 directory, you should make a copy and add it there. Next, open a dos command prompt and type "set" (without the quotes) and hit return. You should see all the defined environment variables listed. Check to see what the path is for COMSPEC. It should point to X:\winnt\system32\cmd.exe (or something very similar).
If it doesn't, follow these directions:
  1. Go to start->settings->control panel
  2. Open the system control panel
  3. Goto the advanced tab,
  4. Click the environment variables button
  5. Edit comspec to point to x:\windows\system32\cmd.exe (where x is your correct drive letter)
You'll have to reboot after changing the environment variable. Hopefully that will fix this issue!

Issue 6-

Q: Daisy doesn't seem to download KB822150/MS03-037 or KB816093/MS03-011, why?

A: I consider these hotfixes ill-formed and they don't install, update or detect correctly. Please manually install them. Daisy v2.2 will ignore these hotfixes even if they need to be installed because they are specified in the ignoreqs.txt.

Issue 7-

Q: Daisy keeps offering me hotfix MS03-013 (811493), MS03-045 (824141), or MS04-11 (835732) even though it already installed it, why?

A: Daisy uses hfnetchk to identify installed hotfixes. Hfnetchk does a checksum of the files it believes are part of the installed hotfixes. This hotfix (and others) have files that are dependent on whether the local system is single or multi processor. These files are the same name, same version, but different checksums. Hfnetchk _assumes_ that the system is single processor. Multi processor systems or hyperthreaded systems will seem to have the hotfix installed incorrectly. That is false and can be ignored. If this is a continuing concern, use the '-c' command line option or customize Daisy with the 'customqs.txt' file locally.

Issue 8-

Q: Daisy gives an error about not being able to get a username, on line noting "username = wntUserInfo(0)", why?

A: This issue has occurred when "Client for Microsoft Network" has been disabled or uninstalled on the network interface. Daisy is trying to determine if the user running Daisy is a local administrator of the system or not and is attempting to enumerate the username. To bypass this function, trying running Daisy with the -a option.

Issue 9-

Q: I'm running Daisy on a Windows XP SP2 machines but it doesn't find any necessary hotfixes, why?

A: In discussions with Eric Schultze of Shavlik, he has confirmed that Shavlik no longer supports the 3.86 freeware version of the hfnetchk engine (which Daisy uses). He has also commented to me in email that they will not be updating the mssecure.xml datafile with the necessary information required to support identifying hotfixes for IE 6 on Windows XP SP2, nor Windows 2003 OSes. This will begin to significantly reduce the overall effectiveness of Daisy over the course of time. I'll be working on porting Daisy to use the MBSA 2.0 core to identify hotfixes in the future (and use MS's version of the XML datafile). I can't get you a time estimate but the version will be v3.0 when it's released. Sorry.

Issue ? -

I don't know any other outstanding issues, send me some ;)

How can I contact the author with a question, comment or suggestion?

Email me at marc.debonis(at)vt.edu.

I will try to respond to your email in a timely manner.

Help me, help you

Daisy is only as good as we (collectively) can make it. If you see bugs, have suggestions, or can do peer code review that can make Daisy a better product and that will in-turn help the other Windows administrators out there, please feel free to email me. Check out the source code, make suggestions, be part of the solution!

Many thanks to the beta testers!

Steve Warrick
Zeb Bowden
Ken Wieringo
Jackie Meese
Ziggy Hill
Nancy Brauer

Disclaimer

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, MA 02111-1307, USA.

For more information concerning the GPL, see http://www.gnu.org/copyleft/gpl.html

Credits

This program is written in the Winbatch coding language
See http://www.windowware.com for more information
version 2004A

This program includes the following Microsoft utilities
qchain.exe - see MS KB article, Q296861
version 5.0.2195.6666

qfecheck.exe - see MS KB article, Q282784
version 5.0.2195.4605

This program includes the following Shavlik utilities
Hfnetchk.exe - see http://www.shavlik.com/pHFNetChkEXE.aspx
Version 3.86.0.1

This program includes the following FSF/GNU utility
Wget.exe - see http://www.gnu.org/software/wget/wget.html
Version 1.9.1