Professional Documents
Culture Documents
4) What are the Different types of Privileges during the installations can be
given?
Locked-down
• The users Doesn’t have the Full Admin Writes to Install the application
• The users Doesn’t have WRITE-ACESS to the Program Files folder of their
computers or to the HKEY_LOCAL_MACHINE registry location
• Installation can be done in this environment by the approval of the
Administrator by means of GPO or Active directories, the administrator can
assign or publish the application
Elevated rights
• An account or process that is operating or logged into the computer that
has full administrator rights or permissions.(User can install the application
but doesn’t have rights to set Group policies )
Administrative Rights
• Highest level of permissions that can be granted to an account in Windows
NT User Manager. An administrator can set permissions for other users and
create groups and accounts within the domain. These rights are required to
install the System Files Update.
5). What is the difference between the AdminUser and Privileged properties?
The AdminUser property is set when the user performing the installation is an
administrator; the Privileged property is set when the user is allowed to install with
elevated privileges. A user can install with elevated privileges if the user is an
administrator, both the per-user and per-machine AlwaysInstallElevated policies
are set or the application has been assigned by the system administrator.
If the user is an administrator, then both the AdminUser and Privileged properties
are set. If the user is not an administrator, then AdminUser is never set. In that
case, privileged is only set if the user has been given permission by the
administrator through assignment or policy to install the application as elevated.
A. Those with user-level privileges can install managed applications if the system
administrator has enabled the installation. Otherwise, the user will only be able to
install MSI applications provided the user has permission to write files, create
directories, and write registry keys in the locations where the installation typically
writes those resources. If the user cannot write to a location, then the installer will
only be able to write to that location if the administrator has given permission for the
installer to do so.
Differences Between:
3) These action are not executed 3)These actions are executed first and
immediately Instead they are the necessary system changes are done
scheduled to run later during the for the installation
execution. ( Untill
InstallExeute,InstallExeuteAgain ,
InstallFinalize actions are run)
4) These custom actions can run in : 4) These custom actions can run only in
(i)Context of the user initiating the the context of the user initiating the
installation installation
(ii) Elevated using the system
context
Example
1) Shortcuts are installed to the All Users 1) Shortcuts are installed only to that
profile users' profile
3) Icons and transforms are stored in 3) Icons and transforms are stored in
%WINDOWS%\Installer\ %USERPROFILE%\Application
{ProductCode}. Data\Microsoft\Installer\
{ProductCode GUID}
13) Determine all the values of the ALLUSERS property set in the MSI file ?
The following tables illustrate how the property affects the application installation
when combined with the access privileges of the user and the type of operating
system. You can ensure the ALLUSERS property has not been set by setting its value
to an empty string (""), ALLUSERS="".
Windows NT/
ALLUSERS is not
Windows 2000 set. (ALLUSERS="") ALLUSERS = 1 ALLUSERS = 2
User access privileges. Per-user installation Not valid; returns Per-user installation
using folders in user's an error stating using folders in
personal profile. the user does not user's personal
have enough profile.
access privileges
to install
application.
Default Value : If ALLUSERS is not set, the installer does a per-user installation.
Remarks
Application where the administrator exerts some level of control over the over
the installation and maintenance of the product is called as managed
application.
Following are the properties of a managed application :
Note that "managed"[ these are MANAGED by administrators so that they can be
installed on users PC ] is different from "elevated." An elevated application is an
application that can run with system privileges when installing. All managed
applications are elevated, but applications can be elevated without being managed
by means of the AlwaysInstallElevated policy. Due to its security implications, this
policy is disabled by default and requires careful consideration before use
.
ISOLATION is a method in which the application Files (DLLs/OCX) are also copied to
application Folder rather then the common folder location like system32 ,System and
a .EXE.local file of 0 KB is created which make the exe to look in the application
folder rather then the SHARED location which ensures more application stability and
less no. of CONFLICTS
16) What is the difference between SNAPSHOT and SMARTMONITOR?
SNAPSHOT SMARTMONITOR
1) It records all the changes which 1) It monitors and records the
happen after and before installation installation operations as they
and put in the Repackaged File happen
FEATURE COMPONENT
1) A part of the applications total 1) Basic building Block of a MSI which is
functionality that a user may decide to a collection of Files, registries,
INSTALL independently Advertising info..etc..
Windows Installer does not install the necessary components until a user or
application attempts to activate the advertised program. This concept is called
install-on-demand.
A transform is a .mst FILE which encapsulates all the changes to a base msi and
hence it enables to maintain a SINGLE installation FILE and changes separately in
the TRANSFORM file
24) What are the ways to make the changes in an MSI during installation?
The most generally used to make customizations in an MSI are
TRANSFORMS and COMMANDLINES
25) What is the command line option for applying two or more TRANSOFMS
to a Single MSI?
26) What are the reasons for self healing in an Application? An Application
Keeps on Reinstalling every time you click the shortcut. How to resolve.
.Go to eventviewer and check for Component ID. It may be missing or some error
related to that....fix it. Other options are….
PUBLIC PROPERTY:
1) They are in always in CAPITAL LETTERS
EX: INSTALLLEVEL, ALLUSERS, ROOTDRIVE, TARGETDIR
2) These CAN BE CHANGED BY USER OR SYSADMIN THROUGH COMMAND LINE
OR TRANSFORM
3) These CAN BE OVERRIDDEN by THE COMMAND LINE
4) PROPERTIES THAT ARE SET DURING INSTALLATION AT USER INTERFACE
SHOULD BE PUBLIC
PRIVATE PROPERTY:
REQUIRED PROPERTIES:
There are certain conditions where SystemAdmin can exert control over the
PUBLIC properties so that a user with an elevated privileges can’t modify or
access them so as to maintain secure systems these properties are know as
Restricted PUBLIC PROPETIES
Internal consistency evaluators, also called ICEs, are custom actions written in
VBScript, Script, or as a DLL or EXE. When these custom actions are executed,
they scan the database for entries in database records and check the MICROSOFT
STANDARDS and indirectly predict the application stability in an MICROSOFT
ENVIRONMENT
31) What is LaunchConditions Action and How will you check whether an
operating system is an WINDOWS XP or not before installing the application
?
LaunchConditions Action
The LaunchConditions action queries the LaunchCondition table and evaluates each
conditional statement recorded there. If any of these conditional statements fail, an
error message is displayed to the user and the installation is terminated.
Commonly used launch condition is VersionNT
VersionNT property identifies the exact type or "flavor" of Windows your setup is
running on. Putting the same in the Launchconditions we can detect the operating
system prior to installation
Both MST and MSP are used to make changes in MSI package But main
differences between both of them
MST MSP
1) This is a File which contains the 1) It is basically the FILE from which
changes in a BASE MSI changes to an already installed
application is done
UPDATE UGRADE
1) This is a minor enhancement or 1) IT is removing the older application
BUG in a SOFTWARE which can make completely and installing a NEW one
few changes of FILES or Registries
3) Hot Fixes, new Driver application 3) Wise package studio 5.0 and Wise
related to printers are examples of package studio 6.0 are the examples of
updates upgrades
A small update or a minor upgrade can affect applications in the following ways:
• Enlarge or reduce the feature component tree, without reorganizing the existing
hierarchy of features and components described in the table of feature
components.
• Remove a parent feature, including all the child features of each parent feature.
• Change the tables, custom actions, and dialogs in the .msi file without changing
the file name. (Renaming the *.msi modifies the package, which also changes the
package code.)
• Add, modify, or remove files, registry keys, or shortcuts for components that are
not shared among features.
• Follow the components rules: Dont mix user and machine specific entries
in a single component. Ensure that only one .exe exists in each component.
Ensure that components are UNIQUE i.e. dont have a .dll that exists in more
than one component.
• Dont use Custom Actions to make any critical system changes.
Anything done in a custom action doesnt have any rollback capability, so if
your install goes 'pear shaped' you cant roll back changes made during a
custom action.
• Generate Merge Modules (MSM's), for any common components, and
use the Merge Module in any application that requires the component. Try to
source and use commercially produced Merge Modules if you can. If you can't
(and you wont be able to for most things...) then produce your own....
• Ensure that all user specific parts of the install i.e. all HKEY_CURRENT
_USER registry entries, are contained in a separate component. When
a new user logs into a machine, the self-heal functionality of MSI will detect a
missing component in the users profile, and will populate the users registy
with the settings for the application in question
• Ensure that any INI file changes are recorded in the INI file table,
rather than just as files in the file table. This will ensure that INI files are
edited if they exist already, rather than replaced with the version within the
MSI Package
• Make custom configuration changes using Transforms (MST's), rather
than by editing the MSI itself. This will make it easier to produce 'generic'
packages that can be modified for several environments.
• Set the Property ALLUSERS = 1 in the property table. This will force the
application to install for all users, if installed under an Admin account, and to
Current User, if using a non-admin account...
• Set the Property ROOTDRIVE = C:\ in the property table - This will force
applications to install to drive C:\. Otherwise, if you have more than one drive
in the target machine, MSI will look for the one with most free space. this
means you cant always guarantee when your applications will install to.
• Be sure to generate a new Product ID for each application - otherwise
you will encounter installation problems when trying to install more than on
MSI application on a single machine.
• Set the property REBOOT = Force in the property table to force a reboot at
the end of the installation - if one is required.
• In the registry table, anything enclosed in square brackets [ ] is assumed to
be an MSI property, and Windows Installer will attempt to resolve it. Whilst
this is often quite useful, sometime you WANT to have square brackets in a
registry value. To acheive this use the following syntax: [\
[[<mystring>[\]]
CACLS filename [/T] [/E] [/C] [/G user: perm] [/R user [...]]
[/P user: perm [...]] [/D user [...]]
36) How do we create images using a ghost image which is for a particular
System, for Eg : for Dell pc, but need to install on different Hardware
configuration like IBM pc or some thing, how do we install the drivers et....
1) Create the perfect XP image on ANY hardware. (We used a Dell Optiplex
GX240).
2) Dump the image to the imaging server.
3) Image a different computer using that same image(Dell) even though the
target is a different computer with different HAL driver( We used an IBM 300GL).
At this time you would normally restart the computer and find out there is a
different HAL and hard drive drivers, video drivers and images are not compatible
on computers that use a different hal.
4) Turn on CD-ROM boot capability on your PC if it is not already active.
5) Reboot the computer with your Windows XP PRO CD inside it.
6) At the first prompt when it asks you if you want to repair or new install select
new install.
7) When it detects an XP installation has already occurred, it asks again if you
want to repair it or do a fresh install. CHOSE REPAIR.
The second repair scans the hardware information and recopies the files
ACCORDING TO THE
HARDWARE SCAN not the image that you sent down. All sound, video, HAL,
hard drive, chipset are
copied into the correct place.
8) enter a valid license, and restarting the machine this is what we saw:
Network loaded up perfectly on the first boot with Novell client even though the
NIC card was completely different than the image we put on, Auto Login still
worked, application launcher worked, Client trust and internet worked. Even the
user's profiles were still 100% intact. Everything about the image worked as if it
was a perfect clone including video, sound, USB, everything! . Only a few extra
shortcuts were on the start bar. We are now looking into weather or not we need
to reapply Windows XP SP1a and some other windows updates( I imagine we
will). All software that was installed and configured in the previous image loaded
without problems. It was a dream come true and only took us 40 minutes to
complete.
9) check over XP and make sure everything is ok and dump the new image.
We haven't checked all of the registry hacks we had in the original image, but we
know some took fine through the repair.
If you have a different way of doing this I would love to hear about it. I'm always
looking for better ways of doing things. I tried messing with Hal drives and device
drives between images and never got it running right. This way, it is automatic
and nearly 100% accurate.
Note:
1) HKLM\SOFTWARE\MICROSOFT\WINDOWSNT\CURRENTVERSION\WINLOGON
Anytime we change the workstation name this setting has to be changed or you
can't login. The workstation name and this registry key have to be the same,
unless you have a windows domain for it to contact. (SYSPREP set the default
m\c name)
2) Sysprep is a great tool to reduce the number of images. However, at the time
Sysprep is run, all drivers including INF files must be present on the machine.
When the Sysprep'd image is restored, the Sysprep mini-setup will perform a
hardware discovery and will only discover drivers that were present on the
machine when Sysprep was originally run. This means that as new hardware is
purchased or new drivers are required, the base image must be recreated,
drivers added, Sysprep run and every platform using the base image must be
tested.
An application that has been installed using the Windows Installer can be upgraded
by reinstalling an updated installation package (.msi file), or by applying a Windows Installer
patch (an .msp file) to the application.
Benefits of using patch, rather than a complete installation package for the updated
product can have the following advantages:
• A patch can contain an entire file or only the file bits necessary to update part
of the file. This can enable the user to download an upgrade patch that is
much smaller than the installation package for the entire product.
• An update using a patch can preserve a user customization of the application
through the upgrade
• Skip actions associated with specific tables that are unmodified by the patch.
This can significantly reduce the time required to install the patch
• Create and install patches that can be uninstalled singly, and in any order,
without having to uninstall and reinstall the entire application and other
patches.
it will not patch an existing installation. It will only update the locally cached
copy of the MSI database. Use this command line instead:
New Request
Technical Review
Defining the complexity
Application packaging
Quality Analysis
Dispatching the package
UAT
41) You just need to make some changes to a MSI, you have to save it not
compile it.Which tool will you use?
WFP : The windows file protection service is an "invisible" service that is enabled
by default and runs constantly in the background after a successful logon. (It does
not load in safe mode.) . It helps in retaining the Critical files of the system by
restoring them when they are Overwritten or deleted from special folder called
dllcache. The location of this file is:
%SYSTEMROOT%\system32\dllcache .
It is no feasible to replace the protected File through package, currently the only
applications capable of updating WFP files are:
Create a command line shortcut to uninstall the application and include the the
shortcut in your installation (command Line)
Command Line:[SystemFolder]msiexec /x {product code}
Systemfolder: It is an installer property it set s the path to the system folder For
example, on 32-bit Windows the value may be C:\Windows\System32. On 64-bit
Windows, the value may be C:\Windows\SysWow64
47) What are the file versioning rules for Microsoft installer?
File Versioning Rules:
The Windows Installer uses an even more complex algorithm when deciding
Whether to keep an existing file or install a new copy. It takes into account not just
the file dates and the version, but the languages involved as well. Here’s the set of
rules the Windows Installer follows:
Highest version wins. All other things being equal, the file with the highest
version number wins, whether that’s the file on the hard drive or the file in the
source media.
Any version is higher than no version at all. If the copy in the source media
Contains version information, and the copy on the hard drive has no version
Information, Windows Installer chooses the one with the version information.
Favor the new language. All other things being equal, if the file being
installed is localized for a different language than the file on the computer, Windows
Installer uses the copy with the language that matches the product being
Installed.
Meet the product’s needs for multiple languages. If both copies support
Multiple languages, Windows Installer ignores the common languages and uses
the copy that supports the most languages out of the set of languages that the
Product uses.
Keep the maximum number of languages. If the copies differ in the number
of languages they support and both support all the languages that the product
needs, Windows Installer keeps the copy that supports the most languages.
Date for the file on the computer. If the modification date is later than
the creation date, Windows Installer assumes this file has been customized by
the user and does not overwrite it. Otherwise, it installs a new copy.
Companion files go along with the versioned file. It’s possible to mark a
file within the Installer database that does not include version information as a
companion file to a file that does include version information. In this case, the
companion file is installed if the other file is installed. There is one exception to
this rule, though. If the companion file is not present on the target machine, it’s
Installed even if the versioned file is not installed.
48) How will you change the MSI default icon to some other ICON?
Active setup is a process that runs automatically when a user logs in.
Registry keys at
are compared, and if the HKCU registry entries don't exist, or the Version number of
HKCU is less than HKLM, then the specified application is executed for the current
user.
To implement Active Setup, you need to package your entire user Installation
requirements into an EXE preferably, using SMS Installer, or Wise Installation
System for example, and place the EXE on the client workstation during the main
application installation process.
In addition, populate the following registry key with two ( REG_SZ ) values:
KEY:
HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\
%APPNAME% -
where %APPNAME% is an arbitrary string which can be the application name,
or its product code GUID. As long as it is unique on that workstation!
VALUE1:
StubPath=<full local path>\YourActiveSetup.exe
VALUE2:
Version=1
When each new user logs on, the operating system compares Active Setup keys
between HKLM and HKCU, and runs the nominated executable if the HKCU entry is
missing or the version in HKCU is less than HKLM.So if you ever need to update the
ActiveSetup executable, just install a new version, and increment the Version
registry key (VALUE2 above) in HKLM. Next time the user logs on, the active setup
will run again for that user
51) What are the command line switches are supported in MSI?
1. All the information required to install a shared file is delivered to the installer in
a single, standardized .msm file,
3. If shared files are installed from .msm files, the Windows installer can keep a
correct reference list of applications that use those shared files.
4. Windows can better avoid deleting shared resources used by any application
until the last application using them is uninstalled.
There are several files type that can be created for the Windows Installer technology:
A .MSP is a Windows Installer patch file used to distribute small updates of .MSIs.
A .MST is a Windows Installer transform file that makes changes to a pre-existing
.MSI.
A .IDT is an Exported Windows Installer database table which can be removed from
one database and imported to another database.
A .CUB is a Validation Module that contains Internal Consistency Evaluators in a
database which in turn evaluates databases.
A .PCP file is a Windows Installer patch creation file that contains the configuration
information that patchwiz.dll requires to create a patch.
The different types of UPGRADES are: small update, Minor upgrade and Major
Upgrade and the following Changes are done during the upgrades
Significant Differences Among Small Updates, Minor Upgrades, and Major Upgrades
Upgrade Code : Same as the previous version . The UpgradeCode property in this
column specifies the upgrade code of all products that are to be detected by the
FindRelatedProducts action.
Attributes : This column contains bit flags specifying attributes of the Upgrade
table. Usually 261.To cause uninstall to occur, the
msidbUpgradeAttributesOnlyDetect bit in the Attributes column of the Upgrade
table for that product version must be off.
If you want a custom action to run during an uninstallation of the product, but not during the
removal of the product by a major upgrade, use this condition.
REMOVE="ALL" AND NOT UPGRADINGPRODUCTCODE
SelfReg Table
The SelfReg table contains information about modules that need to be self
registered. The installer calls the DllRegisterServer function during installation of the
module; it calls DllUnregisterServer during uninstallation of the module. The installer
does not self register EXE files.
56) How will you register a file without including the SelfReg table entries?
With the help of WiseCom capture tool we can capture the entries and
merge the same in the application
57) Whish File is used BY ORCA Tool to validate the custom actions? HP-
question
ICEs are stored in a special file with the same structure as any other Installer
database. By default, this file uses the extension .cub
darice.cub
logo.cub
mergemod.cub, open the .cub file in ORCA and view the details
A .cub file contains only the ICEs and their required tables. A .cub file cannot be
installed and is used only to store and provide access to ICE custom actions.
Orca or the validation tool msival2 uses the Logo.cub, Darice.cub, and
Mergemod.cub files. The set of ICEs in the Logo.cub file is a subset of those in the
Darice.cub file. If your package passes validation using Darice.cub, it will pas
pass with Logo.cub. Mergemod.cub contains a set of ICEs used to validate merge
modules.
58) How many type of ORCA ice errors are there?
The Windows Installer SDK includes 71 standard ICEs, numbered from ICE01
Through ICE73 (for some reason there is no ICE37, and ICE11 appears to be
undocumented and uncalled).
59) What are the ICE errors you have resolved during packaging?
A. There are four common reasons for why files may not be removed during
uninstallation:
• The components to which these files belong are marked as permanent. (This is
done through the Attributes column of the Component table.)
• None of the components to which these files belong have component GUIDs. (The
value for the component in the ComponentId column of the Component table is
NULL). Components without GUIDs are not managed by Windows Installer.
• If the keypath of the component has a shared DLL refcount, then the component
will not be uninstalled.
• If the component is installed in the system folder and at the time of uninstallation
there is an external shared DLL refcount for any one file in the component, then the
component will not be uninstalled.
61) How can u enable the VERBOSE logging file for an USER ?
To generate a detailed verbose log file through policy, use the following registry
key:
• HKLM\Software\Policies\Microsoft\Windows\Installer
Log files generated through the policy key will be of the form msiXXXXX.log in the
user's %temp% folder.
62) In Which conditions you can update a custom action via a patch?
Yes, you can update a custom action using a patch. If the custom action is included
in the Binary table, then simply update the custom action in the update installation
image. When you generate the patch between the original and update installation
images, the patch will contain a database transform that will transform the old binary
data stream to the new binary data stream
63) How do I create a second transform that includes different files than the original
transform without overwriting the .cab file from the original transform?
Follow these steps to create multiple transforms with different cabinet files:
1. After compiling the first transform, Wise will create a cabinet file with a system-
generated name, such as "WISETRFM_2.cab". Rename the file to a name you
specify, such as "mycab1.cab".
2. In the Setup Editor, select the Tables tab, then select the Media table to modify
the name of the cabinet file that was created when you compiled (WISETRFM_2.cab).
In the Cabinet column, rename the cab file to the name you specified -
"mycab1.cab".
3. After you have renamed the cabinet file associated with transform in the Media
table, recompile the transform.
Using unique names for your cab files, complete these same 3 steps each time you
add a new transform for the same MSI to ensure that cabinet files will not be
overwritten.
=================================================
3) What is a SERVICE and what are the basic services which open when we
start an log in?
Svchost
Svchost.exe is a generic host process name for services that run from dynamic-link
libraries (DLLs).
The Svchost.exe file is located in the %SystemRoot%\System32 folder. At startup,
Svchost.exe checks the services part of the registry to construct a list of services
that it must load. Multiple instances of Svchost.exe can run at the same time. Each
Svchost.exe session can contain a grouping of services. Therefore, separate services
can run, depending on how and where Svchost.exe is started. This grouping of
services permits better control and easier debugging.
Explorer.exe
Spoolsv.exe (Spooler Service)
Svchost.exe
Services.exe (Service Control Manager)
Taskmgr.exe
Winlogon.exe (manage user logon and logoff)
Note: Application files that can be installed as a service are: .EXE, .VXD, .SYS, or .
386
====================================================
1. What is a GPO?
GPO stands for Group Policy object and GPO is an active directory object and using
GPO we can publish and assign packages to users or computers. Apart from that
GPO is also used to control the user and computer con
4. What is DFS?
Distributed File system.
5. Do create two separate MSI for windows 2000 and windows XP and why?
Yes we will create the different MSI for windows 2000 and XP
Because windows 2000 and XP will have different type kernal, dll version, and Cab
file.
6. What is WSH?
Windows Scripting host 2.0
Network object
Shell object
12. Objects in VBS?
The Err object is an intrinsic object with global scope — there is no need to create an
instance of it in your code. The properties of the Err object are set by the generator
of an error — Visual Basic, an Automation object, or the VBScript programmer.
Use the GetObject function to access an Automation object from a file and assign the
object to an object variable. Use the Set statement to assign the object returned by
GetObject to the object variable. For example:
Dim <Variable>
Note 1: Option Explicit is the first line of the VBScript (apart from the ' Remarks).
My point is that you cannot introduce Option Explicit after the DIM statements.
The simple statement - Option Explicit - tightens up your scripts. What Option
Explicit says is this: if a variable is not declared, then you cannot use it. The use of
Option Explicit is twofold, to make sure that you declare variables, and to
troubleshoot by generating errors to highlight mistakes if variable names are
mistyped later in the script.
18 What is ADSI?
Active directory services Interfaces. Use to edit the schema
19. What is WMI, explain it and can you script it ?
The "Windows Management Instrumentation" service winmgmt "Provides a common
interface and object model to access management information about operating
system, devices, applications, and services. If this service is stopped, most Windows-
based software will not function properly. If this service is disabled, any services that
depend on it will fail to start."
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/msi/setup/authoring_merge_modules.asp
http://blogs.msdn.com/windows_installer_team/archive/category/10544.
aspx
http://www.wise.com/KBSearch.aspx
http://bonemanblog.blogspot.com/2004/12/active-setup-registry-keys-and-their.html
1. Infrastructure:
Configure the servers per design
Site configuration including boundary mgmt
Tier 3 server and client support
Create TSGs for Tier 2
2. Packaging / Testing:
Coordinate the packaging team in India
Coordinate the testing team in India
Ensure these teams are following the standards with a high quality performance.
3. Software Distribution:
Create, maintain and clean-up new advertisements
Create, maintain and clean-up new collections
Create, maintain and clean-up new packages
All related settings of software distribution
SWD troubleshooting & escalations
4. Patch Management:
Monthly updates setup and configuration
Compliance Reporting
Security and Office patch testing
Patch Management troubleshooting & escalations
5. Security reviews:
SMS instance and group permissions configuration and implementation
SMS Server OS Hardening Design Implementation
Security Review of all packages
6. Health monitoring
SMS server health monitoring for backlogs and performance issues
Client health monitoring
Hardware inventory extensions implementation
Software inventory and other client configuration
8. Documentation:
Maintain the Operations Guide and any other relevant documentation up to date
Must have:
Nice to have:
The point of an administrative installation is to create a much smaller MSI file. It is this
file that is initially executed on the target machine, and therefore runs faster as it is
smaller and doesn't need to download and expand the contained files. When the user has
chosen what to install, the possibly reduced, set of files are then copied down. i.e. it is
intended to minimize network usage (at least that is how it appears)
SYMPTOM
Rather than upgrading, some developers choose to install new files into existing
application directories, replacing older files. This can cause a self-repair which replaces
the new files with the original (old) files.
CAUSE
.MSI-based installations include specific entry points that initiate self-repair when
invoked. These entry points include COM activation, advertised shortcuts, file extensions
(Mime Type and Verb Activation) and direct calls to the Windows Installer. The AppId,
Class, Extension, MIME, ProgID, TypeLib and Verb tables contain advertising information.
The Advertising Setting option located on the Advertising tab of the Tools -> Options
dialog determines how to gather self-registration and advertising information for files
added to an installation. To ensure that no advertising information is added to the
installation, select "Scan advertising information into registry keys" from the Advertising
Settings drop down list.
COM Activation:
COM objects act as entry points to an installation. The Class and ProgID tables contain
COM server-related information. To ensure that the installation has no COM object
advertising information, add all COM information directly to the registry.
Advertised Shortcuts:
Advertised shortcuts make calls to a feature in the installation. This enables self-repair
functionality in an installation. To prevent self-repair, replace all advertised shortcuts with
command line shortcuts, which refer directly to file paths for execution.
File Extensions:
A file extension association creates a connection between a file extension and an
executable. Some file associations contain MIME and Verb information. See
Knowledgebase article #2240, "Preventing self-repair of file associations" for information
on how to create registry keys from File Extension information.
* Context Menu Verb Activation: The Verb table contains command-verb information
associated with file extensions.
* File MIME Type Association: The MIME table associates a MIME type with a file
extension or CLSID to generate the extension or COM server information required for
advertisement of the MIME (Multipurpose Internet Mail Extensions) content.
Following the steps above prevents self-repair in an installation. NOTE: If an end user
overwrites or deletes any application file(s), Windows Installer cannot replace the file(s)
and the application may no longer function correctly.
PRODUCTS:
OPERATING SYSTEMS:
• Windows NT 4.0
• Windows 2000
• Windows XP
SYMPTOM
Windows Installer attempts to self-repair an application when accessing a file during use
of the application.
CAUSE
Creating file associations using the File Associations page in Installation Expert populates
the MIME and Verb tables. These tables contain advertising information used by Windows
Installer to determine if self-repair is necessary for an installation.
RESOLUTION
To prevent Windows Installer from self-repairing file associations, no data should exist in
the MIME or Verb tables. Please use the information in this article in conjunction with
Wise Solutions Knowledge Base article number 1656, "Prevent self-repair by removing
advertised entry points".
To populate the registry with information about file associations for the application
(including Command Verbs and File MIME Types):
1. Complete the original vendor installation on a test machine to assist in obtaining the
necessary registry keys for the steps below.
2. On the File Associations page of Installation Expert, double-click the first file
association listed.
3. On the Extension Details tab, note the values of the Extension and ProgID fields.
4. If there are any entries on the Command Verbs tab, double-click each entry and note
the value of the Verb field.
5. Note any entries listed on the MIME Types tab.
6. On the test machine, open the Windows registry using regedit or another tool and look
directly under HKEY_CLASSES_ROOT for the file association noted in step 2 above.
7. Manually create the entire key and all subkeys on the Registry Page of Installation
Expert. If no Command Verbs or MIME Types exist for this file association, proceed to
step 13 below. If only MIME Types exist, proceed to step 11 below.
8. On the test machine, look directly under HKEY_CLASSES_ROOT for the ProgID noted
in step 3 above.
9. Delete the REG_MULTI_SZ registry value named "command" from
HKEY_CLASSES_ROOT\<ProgID>\shell\<Verb>\command for each verb noted in step 4
above (for example, open, edit or find). The command value contains advertising
information and initiates self-repair. Do not delete the (Default) string value.
10. Manually create the key and all remaining subkeys (that is, those not referenced in
step 9 above) on the Registry Page of Installation Expert. If no MIME Types exist,
proceed to step 13 below.
11. On the test machine, look under HKEY_CLASSES_ROOT\MIME\Database\Content
Type for the MIME Types noted in step 4 above.
12. Manually create the key and all subkeys on the Registry page in Installation Expert
for each MIME Type.
13. Repeat steps 2-12 for each of the file associations listed on the File Associations page
of Installation Expert.
After completing the steps above, remove all file association information from the File
Associations page of Installation Expert. This enables file associations to function as
expected while preventing self-repair for these entry points.