Revision History
================
12/20/07
Fix for Defect 1187548 - Clean Wipe crashes during operation on Win 2K.
The problem is SSC, Reporting Agents, and SAV all from 10.1 installed on 2K Advanced Server SP4.  The RunCleanWipe.bat file is terminating abruptly right after you answer Yes to removing the found applications.  The only thing that I could find was that the Reporting Agents name stored in SAVProduct2 variable was Reporting Agents (Symantec Corporation).  This probably the paren's in this name are causing some trouble.  I have changed FindApp.bat to use the shortened name "Reporting Agents" and the problem goes away.  I also made a minor fix in RunCleanWipe because for all the cases of more than 2 apps found we were only logging the first 2 apps found in the logfile.

11/30/07
Fix for Defect 1166771 - Norton Ghost 2003 no longer functional after using the CleanWipe tool to uninstall SEP, SEPM, or SNAC. 
  There were 2 problems:
    1. CleanWipe was incorrectly removing the registry value for: HKLM\SOFTWARE\Installed Apps\Norton Ghost
    2. The esugreg.exe code was used to determine the LiveUpdate install path getting the "InstallLocation" from the registry.  The
       Problem is that sometimes this path stored in the registry has spaces in the name but the whole string is not surrounded by quote characters.
       The fix was to add -fq switch to esugreg.exe and use it to force quotes on the returned value.

11/28/07
Fix for Defect 1168897 - CleanWipe: 64-bit SEPM unable to reinstall after CleanWipe.
  This was a problem in enummsi2.exe which was causing FindApp.bat to fail to locate the SEPM uninstaller.
  This code needed to look in both locations:

	SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall
	SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall


Fix for Defect 1170606 - CleanWipe causes Symantec LiveState Recovery not to be able to LiveUpdate.
  The problem is that LiveState Recovery has a menu option to launch LiveUpdate but CleanWipe was removing LiveUpdate.
  The fix is two fold:

    1. In the UI when we question the user about removing LiveUpdate we provide one of the following questions depending on if CleanWipe is running any MSI Application uninstalls:

	If LiveUpdate remains after uninstalling Symantec products do you want to uninstall LiveUpdate? (Recommended)
	Do you want to uninstall LiveUpdate? (Recommended)


    2. The UninstallLiveUpdate.exe code was changed such that we only force Quite Mode ( /Q switch ) if CleanWipe is running silently.  This means that the LiveUpdate uninstaller will prompt the user in the case that any applications are still registered with LiveUpdate.  This gives the user an additional chance to prevent LiveUpdate from being uninstalled. The UninstallLiveUpdate.exe also returns an exit code which RunCleanWipe.bat uses to determine if the uninstall did happen so it can conditionally do additional removal stuff related to LiveUpdate.


Fix for Defect 1166584 - VirusDefs folder is removed when using the CleanWipe tool to uninstall SEP, SEPM, or SNAC.
  The problem is that the SEP, SEPM, SNAC uninstallers that CleanWipe detects and runs will remove the VirusDefs folder in the case that those applications are the only registered applications.  We cannot prevent that. What we have done is change the prompt for removing the folder to be conditional depending on if CleanWipe is running any MSI Application uninstalls:
	Uninstall Virus Defs" -msg "If Virus Defs remain after uninstalling Symantec products do you want to uninstall the Virus Defs? (Recommended)
	Do you want to uninstall the Virus Defs? (Recommended)


Two additional fixes for this build of CleanWipe:
 1.  The opening screen for CleanWipe now has disclaimer text cautioning about what CleanWipe removes.  This text looks like the following:

	Note: The following cautions apply to the use of CleanWipe:

		- CleanWipe removes all of the listed applications.  You cannot select individual applications to remove.  

		- CleanWipe may also remove LiveUpdate.

		- CleanWipe may also remove Virus Definitions.

		- If you have other Symantec applications on the computer that depend on any of the applications listed above, those applications may not function properly.  You need to reinstall the missing applications after you run CleanWipe. 

  2.  Silent mode for CleanWipe has been fixed and is documented in the readme.txt that accompanies CleanWipe. 

11/08/07
Fix for Defect 1159132 - The Symantec Shared folder is removed when using the CleanWipe tool to uninstall SEP, SEPM, or SNAC.
  The following were addressed:
    1. Removed code deleting from %CommonProgramFiles%\Symantec Shared\SPManifests\ in %CommonProgramFiles%\Symantec Shared\SPManifests\
    2. Removed code in DeletePostReboot.bat that was attempting complete removal of the Common Files\Symantec Shared folders.
    3. Fixed logic in RunCleanWipe.bat to remember menu choices in post reboot restarts of CleanWipe
    4. Adjusted cleanwipe.bat to run properly if called from CleanWipe.exe or from the cmdline. ( suggested by Edward Elliott )
    5. Adjusted calls to regedit.exe to deal with %systemroot% not being mapped into the system path. ( suggested by Edward Elliott )

11/06/07
Fix for Defects:
  1159159 - After running the CleanWipe tool to uninstall SEP the RASMAN registry values are not restored with the default paths.
  1157913 - Cleanwipe needs Batch File Tweak for Core 32/64 bit and GUI 32/64 bit.


10/23/07
Fix for Defects:
  1130065 - CleanWipe does not remove SPA files/registry
  1130000 - CleanWipe does not remove all SAV files
  1130059 - SEPM install rolls back after using CleanWipe
  1130016 - Errors during SEP client install after running CleanWipe

    All of above defects are variations of the same general problem. A prior Symantec component is installed.  Then a SEP 11.0 component installer is run, and the msiexec process for this installer is killed at some random point.  Resulting system is CleanWipe'd. Then the SEP 11.0 component installer is run again.  The goal is not that CleanWipe will entirely clean the system of Symantec Bits.  Rather the goal is that any Symantec Bits left on the system after CleanWipe will not prevent the success of running any SEP 11.0 install.

Defect 1129989 - Reboot after running CleanWipe produces several event viewer warnings.
  This defect was reviewed as follows:

      Running CleanWipe may result in MsiInstaller items being logged in the Windows Event       Viewer Application log with the following descriptive text: 
      "Failed to connect to server. Error 0x800401F0."
      These Event Viewer log entries are harmless and can be ignored.

  An item was added to the CleanWipe Readme.txt file to document these log entries.


9/05/07
*Fix for Defect 1121597 - Hamlet wildcard file deletes using *.* are dangerous and should be removed from the code.

7/26/07
*Fix for Defect 990463 which is the inability to remove combination of SEP + SEPM. The esugmsi2.exe utility was added to parse output from esugmsi.exe to parse results down to one found application.

7/06/07
*Fix for Defect 1041623 which is CleanWipe removal of the combination of SSC, SAV, and SEPM. 

6/13/07
* Changes to opening screen, CleanWipeOpen.txt, per Brad Kingsbury.
* Fix for Defects 1061874+1060937 - The problem is not detecting the Symantec Endpoint Protection (SEP) uninstaller due to the name change from Symantec AntiVirus Advanced Protection. 
* Upon resume from restart, write different heading to SavCleanWipe.log file.
* Fixed the persistance of XXX_Folder environment variables detected in initial run and persisted to each resumption after reboots.  This fixes cases of orphaned files example SPM 5.1 migrated to SEPM and then CleanWiped .


5/14/07
Fix for Defect 1043810 - CleanWipe: SAV + SPA causes windows crash/blue-screen when running CleanWipe
  This was fixed by changing CleanWipe logic to always force a reboot after running any MSI uninstall.
Fix for Defect 1027420 - CleanWipe: unable to remove both SAV 10,1 Server and SEA 5.1 
  FindApp.bat now detects SEA + SAV combination.

5/07/07
Fix for Defect 1027516 - CleanWipe: migration 10.1SCS Server to 11 SES Client, post uninstall SES, leave files behind
Also the following minor changes:
  *Fixes previous change to LiveUpdate uninstall. We now create UninstallLiveUpdate.exe and run that.
  *Eliminited more unwanted outputs on the cleanwipe cmdline window.

5/06/07
Fix for Defect 1027531 - CleanWipe: SES reinstall fails post cleanWipe SES that migrated from SAV Client 9.0 & SPA 5.1
Also the following minor changes:
  *Uninstaller for SAV 9.0 version is forcing a reboot. This reboot is now handled properly by CleanWipe
  *SAV 9.0 CleanWipe installs LiveUpdate with an uninstall string in the registry that has the long path to the executable but this string is not quoted.  This was causing running the batch file to uninstall LiveUpdate to not work. This is also fixed.
  *DeletePostReboot.bat modified so that it doesn't access environment variables that are not set.
  *Eliminited unwanted outputs on the cleanwipe cmdline window.

4/24/07
Fix for Defect 1019422 - CleanWipe: unable to remove SSC 10.0 from the system has SAV server and SSC 10.0.

4/16/07
Fix for Defect 1021455 - CleanWipe: fails to unregister SAV 10.1 from Add/Remove when original 
install source is deleted.This change streamlines the EnumMSI.bat code registry search for MSI 
related keys that can be deleted. The change utilizes a more focused registry search rather than 
whole registry searches.  In addition we have had to change the cleanwipe.bat file that is launched
by the FilZip after the self-extracting executable is expanded.  This code now detects running 
on 64 bit operating system and prevents continuation into RunCleanWipe.bat.  You will have to do 
this in 2 steps now on 64 bit machines.  This is because the packed exe is a 32 bit app and when 
expanded was running RunCleanWipe.bat where the EnumMSI.bat code would generate a proper .reg file
for keys to be deleted and but launching this file in regedit was not deleting the specified keys.
The solution we determined is that RunCleanWipe.bat must be run as a separate step from the 
extraction of the code from the executable file when running CleanWipe on a 64 bit system.

4/12/07
Partial Fix for Defect 1014106 - Cleanwipe taking in excess of 4 hours and not removing SAVAP
This change allows CleanWipe to call the LiveUpdate uninstaller silently by appending the "/Q" cmdline switch. We do this because CleanWipe has already asked for permission to uninstall LiveUpdate and we don't want to see the popup from LiveUpdate saying that there are still applications registered with live update.

4/4/07
Fixed Defect 1018390 - CleanWipe: leave SPM shortcut in Start Menu post uninstalling SPM 5.1
Fixed Defect 1018397 - CleanWipe: install SEPM post uninstalling SPM 5.1, get error 2343, install fails
Fixed Defect 1018429 - CleanWipe: post complete removing product, CleanWipe should prompt user with removal Perforce changelist: 2548894 
Notes: 
1.  SPM 5.1 uninstaller in CleanWipe was fixed
2.  CleanWipe now puts up a MessageBox with status as final step of successful completion.

3/20/07
Fixed Defect 974526 - CleanWipe: leaves behind files.
Fixed Defect 990463 - CleanWipe: unable to remove both SAV and SESM.
Perforce changelist: 2513510

3/19/07
Fixed Defect: 1006083 - Reinstall blocked after using CleanWipe to remove product migration.
Fixed Defect: 1005122 - Cleanwipe: SESM IIS website not removed

3/6/07
Fixed Defect: 991287 - An infinite recursion in the search function of ESUGREG.EXE that was seen on Vista x64 was fixed.

================
2/14/07
Initial Hamlet release posted to \\nsx\incoming\Hamlet\CleanWipe

This version of CleanWipe has been tested by Carl Forsander for the following Applications:

SAVCorp ( ClockWork)
SAVCorp ( Hamlet )
SEPM ( Hamlet )
SNAC ( Hamlet )
SEP 5.1
SPA 5.1
SPM 5.1

The testing was done on VMWare images of XP Professional, XP Professional x64 Edition, and Vista.

Please Contact Carl Forsander for any issues with CleanWipe.

================
2/20/07
Fixed problem with ESUGUnEn2.exe launching a MessageBox showing that it cannot find RegDeleteKeyExW in advapi32.dll. All calles to this method now use LoadLibrary/GetProcAddress mechanism as this API is only needed / available on 64Bit OS.

================
