Category Archives: what is active setup

Increment ActiveSetup Version – VBScript

This script will create the Active setup if not present on the system, otherwise it will increment the version of the active setup 

‘ Need to replace the “Any that you want to run” with the exact path of the EXE/MSI/Script which has to run
‘ Replace the “<NameOfActiveSetup>” with the related unique application name

Option Explicit
On Error Resume Next
Dim WshShell ,PrgFiles,KeyValue
Set WshShell=CreateObject(“WScript.Shell”)

KeyValue=WshShell.RegRead(“HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\<NameOfActiveSetup>\Version”)

WshShell.RegWrite “HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\<NameOfActiveSetup>\StubPath”, “Any that you want to run”


If  Err.Number=0 Then
WshShell.RegWrite “HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\<NameOfActiveSetup>\Version”,KeyValue+1,”REG_SZ”   


WshShell.RegWrite “HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\<NameOfActiveSetup>\Version”,”1″,”REG_SZ”

End If

Set WshShell = Nothing
Set PrgFiles = Nothing


Which one will execute first is Run or Active setup?

The answer is “Active setup”.

Because,  Activesetup is using to configure the userprofile settings if no entry points exists in the package and this will be running only once for a specific user.
Where as RUN key will execute everytime when user login the machine.
These settings are configured with different sequence , in order to speedup to get access to windows desktop\user level settings.

What is Active Setup

Active setup is a process that runs automatically when a user logs in.
Registry keys at 
HKLM\Software\Microsoft\Active Setup\Installed Components\%APPNAME% 
HKCU\Software\Microsoft\Active Setup\Installed Components\%APPNAME% 
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. 
If your application requires installation of components such as files or registry keys on a per-user basis, but your application has no advertised entry points or other triggers to initiate the installation process, then Active Setup is the solution. To implement Active Setup, 
populate the following registry key with two ( REG_SZ ) values: 
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 if using an MSI. (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. 
To force a repair using the existing MSI where a separate Active Setup EXE is not required, you can do it this way: 
Create the following key structure under HKEY_LOCAL_MACHINE hive:
Under this registry key, create a <new string value> such as:
"StubPath"="msiexec /fous {ProductCode} /qb"

Run, Run Once Registry Keys

Run keys cause programs to automatically run each time that a user logs on. The Windows registry includes the following four Run keys:


Each of these keys has a series of values. The values allow multiple entries to exist without overwriting one another. The data value for a value is a command line.

There are some special considerations for the third and fourth keys in the list, the RunOnce keys:

1.     By default, Run keys are ignored when the computer starts in Safe mode. Under the RunOnce keys, you can prefix a value name with an asterisk (*) to force the associated program to run even in Safe mode.
2.     You can prefix a RunOnce value name with an exclamation point (!) to defer deletion of the value until after the command runs.
3.     Without the exclamation point prefix, a RunOnce value is deleted before the command runs. As a result, if a RunOnce operation does not run properly, the associated program is not asked to run the next time you start the computer.

If more than one program is registered under any particular key, the order in which those programs are run is indeterminate. A program run from any of these keys should not write to the key during its execution. Doing so will interfere with the execution of other programs registered under the key. Furthermore, applications should use the RunOnce keys only for transient conditions (such as to complete application setup); an application must not continually re-create entries under RunOnce. Doing so will interfere with Windows Setup.