Norton SystemWorks 2005
Finally, a definitive solution (hack?) for Norton SystemWorks 2005 custom unattended install.
» Brief history of the problem:
As many of you know, there are numerous threads asking how to do an unattended install with NSW 2005. Now, out of all of these threads, the best advice is to use the following commandline:
NSWSETUP.EXE /O REBOOT=ReallySuppress /qb-
Unfortunately, that causes NSW to install pretty much darn near everything. Now, that may work for some people, but there are several threads asking how to do this with a custom install.
Until now, the best way to do this was to just delete the unwanted components... well, that worked good for most things, but not all things (such as "UnErase" and "UnFormat" -- I like my recycle bin just how it is, thank you very much).
So, after lots of playing around over the past few days, I have come up with a solution... finally.
» Obtain ORCA
First, you will need ORCA to edit a MSI file with. This utility can be found in the Microsoft Platform SDK (OS Independent). Install the SDK (the only component you really need to install is Microsoft Windows Installer SDK\Tools), then browse to the bin folder in the install path (default is C:\Program Files\Microsoft Platform SDK\Bin) and run the ORCA.msi file to install ORCA.
» Capture Log File
Second, you'll probably want to run the NSW installer in a VM or something to capture the log file (%temp%\Norton SystemWorks 2005 <date> <time>.log). Make sure that you do this install just as you want it to be in the end (same components). Basically, treat it like you would if you were recording an InstallShield script (setup -R). In this file, you should search for "NU\NU.MSI". After you find it, go down about 28-30 lines to find a line that starts with "MSI (s) (DC:20): Command Line: ". (Some of that may be different, the important part is that it is the first line after the "NU\NU.MSI" that you found that starts with "MSI" and contains "Command Line".) In this line, there is a section that starts with "REMOVE", copy all of the text after that into something that you can hold onto for a moment. This is a list of all of the NU components that are not going to be installed as part of NSW. Weird, I know... but that's life with Symantec.
» Edit NU.MSI
Third, browse to your Unattended folder and open it up to your NSW location. Once there, open the "NU" folder and make a backup copy of NU.MSI (or you can just plan on copying it back from your CD if you mess it up). Now, right click on the NU.MSI file, and select "Edit with Orca".
Now, we need to make two changes to this file to override what the setup program will be passing into it by default during your unattended setup.
Change 1:
Locate the table titled "CustomAction" in the left-hand pane and click on it. In the right-hand pane, right-click and select "Add Row". Enter the following data:
Action: SetRemovedComponents1 Type: 51 Source: REMOVE Target: <paste the string you copied from the log file here>
Now, add another row that is exactly the same, but has an Action value of SetRemovedComponents2
Change 2:
Locate the table titled "InstallExecuteSequence" in the left-hand pane and click on it. In the right-hand pane, right-click and select "Add Row". Enter the following data:
Action: SetRemovedComponents1 Condition: <leave blank> Sequence: 150
Now, add another row with the following data:
Action: SetRemovedComponents2 Condition: <leave blank> Sequence: 950
(We have to enter this stuff twice because I'm too lazy to figure out exactly where the code needs to go to only have it in there once... hey, I've been working on this bugger all week--give me a break! If someone wants to play with it to figure it out, by all means, be my guest.)
Now, save the MSI (File -> Save, or just exit the program) and use the following command line in your installation script (whatever type it may be)
» Product Key
One last thing, and we're set to go. Currently, this is going to have issues with the product key. However, if you enter the product key into the registry first, everything comes out nice and smooth. To do that, enter the following into an empty text file and save it as NSW.REG (replacing the Xs with your key, of course):
For Norton System Works 2005
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Symantec\CCPD-LC\KStore\00000082\00000015\00000022] "Key"="XXXXXXXXXXXXXXXXXXXXXXXX"
For Norton System Works 2005 Premier
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Symantec\CCPD-LC\KStore\00000082\00000016\00000023] "Key"="XXXXXXXXXXXXXXXXXXXXXXXX"
<add the NSW.REG file to your registry, however you do that> <PathToNSW>\NSWSETUP.EXE /O REBOOT=ReallySuppress /qb-
Ta da! You should be done and working... give it a try in a VM to make sure.
» FYI
For those of you who are interested, I install the following components:
Anti Virus
Disk Doctor
WinDoctor
Speed Disk
Explor Shell Extensions
Which leaves me with a REMOVE line of (all on one line, of course):
Image32,Norton_Registry_Tracker,Norton_Registry_Editor, Wipe_Info,System_Information,Norton_System_Doctor,UnErase_Wizard, Norton_File_Compare,DOS_Applications,Norton_Optimization_Wizard
» Anti-Virus
Now, if you want to disable NAV, you'll have to edit a different MSI file. Unfortunately, NSW blows up if the NAV\NAV.msi file isn't there. I tried making a dummy MSI installer, but NSW threw a fit about that one too. So, we get to rip parts out of the NAV.msi file.
So, open up NAV.msi in ORCA. The first table that you're going to play with is the 'Binary' table. There are two files in here that can be deleted. They are 'Callreginst' and 'Callsttginst'.
Next, go to the 'CustomAction' table. In this table, you need to KEEP the following rows (delete all of the others):
AddVeniceIni
CheckSourceExists
CheckSymEvent
PostInstall
PreInstall
PreUpgrade
RemoveVeniceIni
UIFirstAction
Upgrade
Now, go to the 'InstallExecuteSequence' table and remove all of the entries in it. Yup, every last one (this is what keeps the MSI from actually DOING anything when it is called).
Next, go to the 'SymNestedFeature' and 'SymNestedInstaller' tables and remove everything EXCEPT for the one row in each table that starts with 'this'.
Now, just save the file out and remove everything else in the NAV folder (including any subfolders). You can remove the VIRUSDEF folder from the SystemWorks root as well.
FYI, this technique seems to work as well for NIS, though I can't find a shortcut to LiveUpdate anywhere in my Start menu (accessable through the NIS control panel). Definately don't use this if you're installing *both* NIS and NSW unless you don't want NAV installed at all. If this is the case, leave NIS alone (it will install NAV) and use this technique on the NSW install (which must run *after* NIS). This *should* cause the NSW installer to uninstall NAV and then run the 'custom' MSI that you've edited. No promises though, it's way past my bedtime and I don't know when I'll actually get around to testing it.
» Ghost
Open the NORTONGHOSTNT.MSI (and after that one, the GHOST.MSI) file in ORCA and naviate to the 'InstallExecuteSequence' table and remove all of the entries in it. Yup, every last one (this is what keeps the MSI from actually DOING anything when it is called).
Ghost shouldn't give you any hassles now, and won't actually install.
» CleanSweep
CleanSweep shouldn't give you any problems if you don't want it installed, because it is unselected by default. However, I had a request by someone who does want it, so here it is.
The easiest way to do it is to actually make it a separate install. Use the command line:
NCS.MSI SYMSETUP=1 /qb-
to launch the installer, and make sure that you do this AFTER installing the main body of NSW (at that will install the common libraries, etc.).
Enjoy, and good luck!
P.S. As a side note, you may get an error or two if you try to uninstall. Just click 'ignore' and everything seems to come out allright. Once, I had a couple of NU shortcuts that didn't get removed, but they no longer pointed to anything <shrug>.