Video Screencast Help

Software Virtualization Agent Installation

Created: 03 Oct 2006 • Updated: 29 Jul 2010 | 6 comments
Language Translations
Jeremy_Hurren's picture
0 0 Votes
Login to vote

Jeremy Hurren dug deep to bring this info about installing and upgrading SVS to the surface. Read it for a better understanding of the installation process or as a guide to automating or troubleshooting installations. Thanks Jeremy!

During the course of working on SVS 2.0 I received many questions regarding the installation, upgrading, maintenance, etc. of the SVS Agent. Many of those questions turned into features in the product installer, but I felt that there was still a need to answer additional questions, and to document how the installer functions.

Installer Basics

The SVS Agent installer is a Windows Installer package and therefore includes many features common to all Windows Installer packages. I will document some of the more common options here, but for more information you can refer to Windows Installer elsewhere online.

The SVS Agent package installs a number of components on the system, some optionally. The components installed and corresponding files are shown in Table 1. (Please note that the term "component" as used in this article does not relate directly to the Windows Installer "components" that are used internally in the installation package.) The paths shown are the defaults on a Windows XP English system, so adjust them appropriately for the systems you are working with.

Driver C:\Windows\system32\drivers\fslx.sys
Library C:\Windows\system32\fsllib32.dll
WMI Provider C:\Program Files\Altiris\Software Virtualization Agent\AltirisVSProvider.dll
C:\Program Files\Altiris\Software Virtualization Agent\AltirisVSProvider.mof
Command-line Utility C:\Program Files\Altiris\Software Virtualization Agent\svscmd.exe
Graphical Admin Tool C:\Program Files\Altiris\Software Virtualization Agent\svsadmin.exe
C:\Program Files\Altiris\Software Virtualization Agent\\svsadmin_resources.exe
C:\Program Files\Altiris\Software Virtualization Agent\fslui.dll
C:\Program Files\Altiris\Software Virtualization Agent\<LCID>\fslui_resources.dll
File Redirection Area C:\fslrdr

In addition to installing these files on the hard drive, the installer also creates the file redirection area at C:\fslrdr. This is where files that are contained in virtual layers are stored. There is a corresponding area of the registry where registry entries for the virtual layers are stored. The installer creates this area at HKEY_LOCAL_MACHINE\SOFTWARE\fslrdr in the registry. A few other registry keys are created by the installer as described below.

Virtual Layer Metadata HKEY_LOCAL_MACHINE\SYSTEM\Altiris\FSL
SVS Product Settings HKEY_LOCAL_MACHINE\SYSTEM\Altiris\SVS
Registry Redirection Area HKEY_LOCAL_MACHINE\SOFTWARE\fslrdr

After creating these resources, the installer has to register some of them on the system. It installs the driver in a fashion similar to how a service is installed. (Don't expect to see it in your services list, but the registry keys look very similar to a service.) The WMI provider is installed using the programmatic equivalent of mofcomp.exe.

The installer sets the security permissions on the File Redirection Area and the Registry Redirection Area. For these, the local system and the Administrators group are given full access. During normal operation of the product, directories and registry keys will be created within these areas. Security permissions for this will inherit the default settings, or they will be copied from a directory of the same name in the base. This keeps security in the redirect area in synchronization with security elsewhere on the machine. Similar security is also set for the Virtual Layer Metadata registry keys.

Finally, Windows Installer itself has some information that it stores about the installation. It caches the installer package on the hard drive, creates an entry for the agent in Add/Remove Programs, and stores some internal information about the components installed.

Once the installer has completed, it needs a reboot in order for the product to become fully usable. The freshly-installed File System Filter Driver needs to do some work during computer boot up in order to work properly.

That's it for the installer basics. We'll touch on this information again later when we look at manual cleanup of the SVS Agent.

Automating Installation

So now that we have an understanding of the installer package, what do we actually do with it? An individual user may just double-click the package and run the installer user-interface to perform the installation. The more advanced user or administrator may want to use additional options discussed in this section to customize the installation and automate it.

Rolling the agent out to an organization probably means doing a silent install. The typical Windows Installer switches are a good start, but not sufficient. At a minimum you will need to specify a product key in order to complete the installation. The following command-line is an example of this:

msiexec.exe /qn /i Software_Virtualization_Agent.msi PRODUCT_KEY=<product-key>

A few other command line parameters can be used to customize the installation, as discussed on Table 3.

INSTALL_ADMIN=1 Installs the SVS Admin Tool
ALTIRIS_NS=1 Installs the information necessary for SVS to communicate with Altiris Notification Server.
REBOOT=ReallySuppress Suppresses reboots and reboot prompts. Without this switch, the installer will automatically reboot the computer (assuming that you're doing a silent install).
D_FSLRDR=D:\fslrdr Changes the location of the file redirect area. This switch is undocumented and untested, but there's no technical reason why it should not work.
INSTALLDIR=C:\SVSAgent Changes the install location of the command line utility, WMI provider, and Admin tool.
PRODUCT_KEY=<product key> Specifies the product key to be used to install. This product key is obtained from Altiris, either when you purchase the product or when you download a key for free personal use of the product.

Upgrades and Repairs

Upgrades and/or repairs of a broken installation can be accomplished through standard Windows Installer methods. The product key is validated each time the install runs, and therefore must be provided. The following commands repair an existing install and upgrade the installation respectively.

msiexec.exe /qn /I {7D8DBB7C-1C55-4950-A107-043C164F379A} REINSTALL=All REINSTALLMODE=omus PRODUCT_KEY=<product-key>

In this case we use the Windows Installer product code for the SVS Agent rather than pointing to an .msi file. Since the installer has cached the .msi file on the system during the initial install, the cached copy can be used for future repair work.

You can use a repair to install the SVS Admin Tool at some point after the initial install. This has come in handy any number of times when I have forgotten to include the parameter the first time the installer was run.

An upgrade looks almost identical, but provides a slight variation on the switches. In order to do an upgrade, you need to provide a new .msi file. You also need to tell Windows Installer to recache the installer package using the new file (the v switch on REINSTALLMODE does this).

msiexec.exe /qn /I Software_Virtualization_Agent.msi REINSTALL=All REINSTALLMODE=vomus PRODUCT_KEY=<product-key>

Troubleshooting Failed Installs

Most failed installs can be successfully completed after a reboot and reattempting the install. In the event that this doesn't work for you, more drastic steps may be necessary.

In the event of an installation failure, you'll need to create a Windows Installer log in order to determine where the failure occurs. You can add the "/l*v <logfile>" switch to the command-line for the installation to generate a log file. Search for "return value 3" inside the install log and the few lines above it should have an error message regarding the failure.

This error message may tell you exactly what the problem is, such as an invalid product key, or attempting to install the product on an unsupported operating system. In other cases the error message will indicate a more involved failure, such as not being able to install the driver or WMI provider, or something similar. In those cases you may need to contact Altiris support or do a manual cleanup of the installation.

Manually cleaning up a machine is a simple matter of cleaning up everything the installer does. Start out by removing all the files and registry keys listed in the above sections. Delete the FSLX driver with the following command:

sc.exe delete FSLX

Removing the WMI Provider is a little more complex. I use a built-in tool named wbemtest.exe for this purpose. Launch the tool, click the Connect button, enter the namespace "root\default" and click Connect. Click the Delete Class button, enter the class name "AltirisVSProv" and follow the prompts to delete the class. For completeness we also need to remove the registry keys created by the WMI provider:

HKEY_CLASSES_ROOT\AppID\AltirisVSProvider.DLL
HKEY_CLASSES_ROOT\CLSID\{71D8DF9A-AD2D-44BF-A542-1412F68061D1}
HKEY_CLASSES_ROOT\TypeLib\{888967EF-E75C-4480-992D-93FDA658F21E}

And the final step is to cleanup the stuff that Windows Installer caches about the package. The easiest way to do this is with a tool called msizap.exe from the Windows Installer SDK. The following command will remove all Windows Installer data for the SVS Agent:

msizap.exe TW! {7D8DBB7C-1C55-4950-A107-043C164F379A}

Comments 6 CommentsJump to latest comment

Wm Jesse Foster's picture

If you are looking for the "Software Virtualization Administrators" group, you will not find it. This article was written and published during the original beta program.

As of the release candidate, SVS security was redesigned and this group is no longer created.

The remainder of the information in this article is still very useful.

0
Login to vote
Wm Jesse Foster's picture

Thanks for updating this.

Everybody can now ignore my previous post.

0
Login to vote
riva11's picture

Perfect reminder, I didn't know this article, all information provided are really interesting and I stored on my personal KB.

Thanks

0
Login to vote
rajat's picture

Some really nice info here.

Actually just a few days back, I'd uninstalled SVS and installed it back (though without a restart in between) while tracking system changes it made. I came to know of all the ones you posted, except the C:\Windows\system32\drivers\fslx.sys driver file.

This wasn't caught by the tracker probably bcoz the driver file wasn't initially removed by the uninstaller (it probably needs a restart) so no 'change' was made to the system.

Thanks for posting this lordjeb.

0
Login to vote
rmholden's picture

I have tried all sorts of methods to get SVS to install from the command line, and apparently I am simply not worthy. Here are some of the examples:

D:\>msiexec.exe /i /qn Software_Virtualization_Agent.msi PRODUCT_KEY=xxxx-xxxxx-xxxxx-xxxxx INSTALL_ADMIN=1 REBOOT=ReallySuppress D_FSLRDR=D:\fslrdr INSTALLDIR=D:\"Program Files"\SVSAgent

D:\>Software_Virtualization_Agent.msi /i /qn PRODUCT_KEY=xxxx-xxxxx-xxxxx-xxxxx INSTALL_ADMIN=1 D_FSLRDR=D:\fslrdr INSTALLDIR=D:\"Program Files"\SVSAgent

D:\>Software_Virtualization_Agent.msi /i /qn INSTALL_ADMIN=1 D_FSLRDR=D:\fslrdr INSTALLDIR=D:\"Program Files"\SVSAgent PRODUCT_KEY=xxxx-xxxxx-xxxxx-xxxxx

D:\>Software_Virtualization_Agent.msi /i /qn INSTALL_ADMIN=1 D_FSLRDR=D:\fslrdr INSTALLDIR=D:\"Program Files"\SVSAgent PRODUCT_KEY="cyvwe-wm64b-m58u2-nrpv2"

D:\>Software_Virtualization_Agent.msi /i /qn INSTALL_ADMIN=1 REBOOT=ReallySuppress D_FSLRDR=D:\fslrdr INSTALLDIR=D:\"Program Files"\SVSAgent PRODUCT_KEY=xxxx-xxxxx-xxxxx-xxxxx

D:\>msiexec.exe /i /qn /norestart d:\Software_Virtualization_Agent.msi INSTALL_ADMIN=1 REBOOT=ReallySuppress D_FSLRDR=D:\fslrdr INSTALLDIR=D:\"Program Files"\SVSAgent PRODUCT_KEY=xxxx-xxxxx-xxxxx-xxxxx

D:\>msiexec.exe /i /qn /Software_Virtualization_Agent.msi PRODUCT_KEY=xxxx-xxxxx-xxxxx-xxxxx INSTALL_ADMIN=1 REBOOT=ReallySuppress D_FSLRDR=D:\fslrdr INSTALLDIR=D:\"Program Files"\SVSAgent

D:\>msiexec.exe /i /qn /package=d:\Software_Virtualization_Agent.msi PRODUCT_KEY=xxxx-xxxxx-xxxxx-xxxxx INSTALL_ADMIN=1 REBOOT=ReallySuppress D_FSLRDR=D:\fslrdr INSTALLDIR=D:\"Program Files"\SVSAgent

D:\>msiexec.exe /a /i /qn Software_Virtualization_Agent.msi PRODUCT_KEY=xxxx-xxxxx-xxxxx-xxxxx INSTALL_ADMIN=1 REBOOT=ReallySuppress D_FSLRDR=D:\fslrdr INSTALLDIR=D:\Program Files\SVSAgent

D:\>msiexec.exe /i /qn D:\Software_Virtualization_Agent.msi PRODUCT_KEY=xxxx-xxxxx-xxxxx-xxxxx INSTALL_ADMIN=1 REBOOT=ReallySuppress D_FSLRDR=D:\fslrdr INSTALLDIR=D:\Program Files\SVSAgent

Now, what I'm trying to do is install svs on my D: drive, including the fslrdr folder so that my C: partition isn't taking a beating (as Windows sees it). What am I doing wrong?

I even created the three D:\ partition folders manually, to no avail. HELP!

0
Login to vote
Wm Jesse Foster's picture

Maybe its the way you are using quote marks in the middle of the path. Did you ever try putting the full path in quotes? i.e.

"D:\Program Files\SVSAgent"

0
Login to vote