Pages

Monday 29 August 2011

Logoff Windows using VBScript

Following VBScript can be used to Logoff machine. Test it and Enjoy
  
Set WshShell=WScript.CreateObject("WScript.Shell")  
  
 WshShell.run "shutdown.exe -L -F"  
 

Get ComputerName + VBScript

Set oNetwork = CreateObject("WScript.Network")
sComputerName = oNetwork.ComputerName
MsgBox("ComputerName = " & sComputername)

Active Setup Registry Keys

Following Registries are to be included in package to load User settings(either registries/files) so that by the time User
logs in his current user settings will be available on the machine.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode]]
"StubPath"="msiexec /fup {9A346205-EA92-4406-B1AB-50379DA3F057} /qn"
"Version"="1,0"

Set Working Directory to Shortcut Using VBScript

Set objShell = WScript.CreateObject("WScript.Shell")
Set objShtCut = objShell.Createshortcut("C:\Documents and Settings\All Users\Start Menu\Programs\ShortcutName.lnk")
objShtCut.WorkingDirectory = "C:\PROGRA~1\MKSTOO~1\Demonstrations\bin"
objShtCut.Save
'WScript.Echo objShtCut.WorkingDirectory

VBScript to Terminate Process

Option Explicit
Dim objWMIService, objProcess, colProcess
Dim strComputer, strProcessKill 
strProcessKill = "'ProcessName.exe'" 
Set objWMIService = GetObject("winmgmts:root\cimv2") 
Set colProcess = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = " & strProcessKill )
For Each objProcess in colProcess
objProcess.Terminate()
Next 
WScript.Quit

Ger CurrentDirectory using VBScript

on Error Resume Next

	Set objWshShell = CreateObject("WScript.Shell")
	Set objFileSystem = CreateObject("Scripting.FileSystemObject")

	sScriptDir=objFileSystem.GetParentFolderName(WScript.ScriptFullName)

msgbox sscriptdir

Installshield 2012 Released

Installshield 2012 is the latest version best installation development solution which can be downloaded from flexera Software website

MsiLockPermissionsEx table



MsiLockPermissionsEx Table in Windows 7 enhances the functionality over LockPermissions Table. With MsiLockPermissionsEx table, users now have the ability to set access permissions on objects impacted by the application install that previously required using custom actions or other methods outside of Windows Installer


Expanding the set of permissions that can be applied to a resource by incorporating the Security Descriptor Definition Language(SDDL) in Windows Installer. This allows the security settings for an object to be more flexible, including;


o Ability to apply Deny ACLs to objects
o Indicate inheritance properties for permissions
o Expand the set of well-known SIDs
o Ability to set Owner, Group, and SACLs to the objects in addition to the regular access permissions


Security settings can be applied to services as well in addition to Files, Folders, Registry keys


Ability to apply permissions specific to user accounts – including accounts that are newly created on the system during the course of installation
Read more about this in Windows installer team blog

Whats new in Installshield 2012

Introducing InstallShield 2012 - used by over 70,000 software producers on more than 500 million desktops, InstallShield 2012 is the only installation solution capable of supporting the needs of today’s sophisticated software producers for packaging both standalone offerings and complex suites. InstallShield 2012, has been updated for a new generation of app-savvy users, delivering a fresh, positive and friendly experience to the exacting standards of today’s sophisticated users. And – it’s the only solution providing automated tools that empower software producers to productize, package and install their products in both traditional MSI and virtual formats. Understanding the needs of today’s decentralized agile teams, means that Flexera Software can design a world-class installation solution that supports the installation authoring, building and bundling requirements of these teams.


Register for this “What’s New with InstallShield 2012” Webinar and learn more about our new features including:

  • Suite Installations: With the new InstallShield Suite Project type, multiple products can be easily bundled together into a single, unified suite installation eliminating the need to develop a complex custom launcher or bootstrapper application. This new functionality offers advantages over MSI chaining, InstallShield prerequisite support, and the user interface functionality that is provided by Windows Installer.

  • Installation Streaming: Installation Streaming reduces the downloading wait time required before installation can begin. End users need only download a small file to quickly start the installation giving a more immediate interaction with the product installation. Based on the selected install options, only the required packages are downloaded from the web or extracted from the installation, reducing the overall time it takes to install the application and providing an “app store-like” experience for the user.

  • Installation Collaboration: The InstallShield 2012 Collaboration add-on has been significantly enhanced to better support distributed, collaborative installation development allowing product developers and technical writers to more efficiently create and manage their portion of the installation.

  • 64-Bit Enhancements: Comprehensive support for 64-bit installation development including updated dependency scanners to identify 64-bit dependencies of the 64-bit files in a project; support for setting permissions for files, folders and registry keys in 64-bit locations; and a prerequisite that installs the 64-bit version of the Microsoft VSTO 2010 Runtime.

  • Application Tagging: InstallShield 2012 is the only strategic installation development solution that creates ISO 19770-2 software identification tags as part of the installation development process. This enables software producers to help their customers by delivering better visibility into their installed software estate in order to facilitate software compliance efforts.

What is Application Packaging

Application Packaging is all about customizing applications according to best practices and User requirements.


Application packaging can help enterprises manage growing volumes of software for desktop and server systems efficiently. By streamlining software
configuration and deployment, application packaging can help reduce application management costs.

MDOP 2011 R2

MDOP 2011 R2 is available and can be downloaded from theMicrosoft Volume Licensing website, MSDN and TechNet. This version of MDOP includes Microsoft BitLocker Administration and Monitoring (MBAM) which is brand new to MDOP, and updates to the Microsoft Diagnostic and Recovery Toolkit (DaRT) 7.0, and Microsoft Asset Inventory Service 2.0.

Difference between Run, Run Once, Active Setup

Active Setup:



It is used when your application requires installation of components such as files or registry keys on a per-user basis, but application has no advertised entry points or other triggers to initiate the installation process.


Run:



The Run key is processed after every logon, either by the Explorer shell, if it is present, or by First Boot Agent (FBA), if a custom shell, Command shell, or Task Manager Shell is used. If FBA processes this key, it does so after every logon, not during first boot as it normally would. Typically, this flag is used to load Systray applications, launch services in executables, hide autostart applications, or hide background processes


Run Once:



The RunOnce key is processed only once, by FBA, after Plug and Play device enumeration and DLL registration processing have completed. The values of this registry key are deleted from the registry after it is processed, so that it will not run again. Typically, this flag is used when a reboot is required, such as for a DLL or OCX registration, or for cleaning up a setup or an uninstall.

AdminStudio Installshield Online Training Training

New batch of Application Packaging Classroom training using Installshield/Wise Packaging Studio is starting at Hyderabad on3rd September. If you are interested contact me at 91-9963678795 or Virtual.App.Packager@gmail.com


For training details please visit www.AppRepack.in

Application Packaging Video



http://www.youtube.com/watch?v=quY_a7Ye_WQ

Sunday 28 August 2011

What is Active Setup

Active setup provides a solution when the aim is to deliver user based components when no advertised entry points exist in an MSI package.


Most packages will contain some kind on entry point; commonly an advertised shortcut. When launching this kind of shortcut Windows Installer will check the keypath of the component the shortcut belongs to and verifies that the component is installed. If it is found to be missing Windows Install will kick off a repair.


This provides a great solution for installing current user data when the package is not installed in the user context. It is also a very good reason why you should never mix machine and user data in the same feature.

On logon the following registry keys are compared:


HKLM\Software\Microsoft\Active Setup\Installed Components\<UID>
HKCU\Software\Microsoft\Active Setup\Installed Components\<UID>


<UID> has to unique; it is good practise to use a GUID.


If the HKCU key is not found the contents of the string value StubPath is executed. The HKLM key is then copied to HKCU.


The executable in StubPath can be anything (a VBS script, a regsvr32.exe call, etc), but our aim, in this example, is to deliver missing current user data from a previously installed MSI. To do this we need to force the package to repair so Msiexec.exe will be used:


Msiexec.exe /fpu /qn


/f - Repair
/p - only if file is missing
/u - all required user-specific registry entries
If you choose to, the entire installation can be repaired:



Msiexec.exe /fomus /qn


[HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\{44CCA842-CC51-11CF-AAFA-00AA00B6015B}]
"Version"="1"
"StubPath"="Msiexec.exe /fpu {44CCA842-CC51-11CF-AAFA-00AA00B6015B}"


Where a version is included; StubPath will only execute if the version of HKCU is less than the version of HKLM.


When a new user logs on Windows will find the HKCU active setup key missing, run Msiexec.exe with the repair arguments from StubPath and copy the HKLM key to HKCU. Next time this user logs in the repair won't run as the key already exists in HKCU.

Advantages of MSI Application Packaging


  • Customize Applications to suit the user needs.
  • Simplify the Installation and Un-installation Procedures.
  • Saves Time in both Installation and Un-installation.
  • Once packaged, applications can be quickly installed on a range of desktops in multiple locations, saving administrative costs, simplifying the manage of licensing fees and minimizing support and repair expenditures.
  • Saves Space of the product by doing apt modifications to applications.
  • Has a great flexibility of obtaining the lost files through a phenomenon called Self Heal, this reduces the down time of application. If a critical file (a .DLL or .EXE file, for example) that is part of the distribution is corrupt or is deleted, the user can be prompted to repair the installation by presenting the original .MSI distribution. Additionally, if the installation media is available (for example, on a network share), the repair simply happens automatically.
  • Can be advertised. So that on demand installation could take place.
  • Upgrading of the application can be done with ease.
  • Clean installation and Un-Installation is achieved by a process called Roll-Back.
  • Simplifies management of new user set-up along with the revision and distribution of software repairs and new applications to existing users. Application recovery can also be improved.
  • Helps eliminate uncontrolled software downloads and installation, enables applications to be safely removed and reduces non-business traffic on a corporate network.
  • Using .MSI format, can automate software distribution process and ensure that the installation doesn't break other applications that have already been installed.
  • Application is installed via an OS service.
  • State management is maintained. In the past, it's been difficult to know whether an application is installed on a machine. You would have to query for a .DLL with a specific version number or determine whether an .EXE file with a specific name was present. Windows Installer provides an application programming interface (API) that lets programmers and administrators see whether a specific application is installed on a machine.
  • Scriptable API. This whips together a VBScript to help us with the MSI file manipulations. The API to manipulate MSI files is so powerful that it can create, validate and update packages, trigger installs and uninstalls, examine the MSI repository data on computers, and perform some custom actions.
  • Served installs. Because MSI files can be housed in a share point and delivered via a server, we can keep our installation files all in one place or move them around -- closer to the users if necessary.

Custom Action Conditions in MSI

You can execute a custom action or make the component install using conditions as per the requirement.

  1. Action run only during Install
    Condition: NOT Installed

  2. Action only runs during removal of MSI
    Condition: REMOVE="ALL"

  3. Action runs during Install and repair
    Condition: NOT REMOVE

Difference Between Self Heal and Repair

Self Heal and Repair are two different concepts in Windows Installer which people many times consider to be the same thing, however there is difference in these two.

Self Heal is triggered by advertised shortcuts, or other advertising information in the package which eventually Repairs the application.

When the application is launched by advertised shortcut, it checks for all the key paths of the Current Feature, if any of the key paths is missing it will launch Repair.

Note that if there are multiple features then it will not check the missing key paths of the other features, but only the feature of which the advertised shortcut is launched.

Repair of an MSI can be triggered by
  • Repair from  Add/Remove programs
  • Command -     msiexec /f{other option} {MSI path}
  • Self Heal by advertised shortcut or other advertising information.
  • Active setup
Once the repair of the package is triggered then the whole of the MSI is reinstalled by which I mean, all its features are reinstalled.

A Guide to MSI Healing

This describes several methods of MSI healing (repair) techniques to populate HKCU keys for other users.


The best methods are documented first with other alternative ways following later.


Method I



Active Setup Method:


This is one of the best practices in MSI Packaging which uses the native Active Setup behavior of Windows XP and Windows Installer HKCU keys repair techniques.


One should follow these specific steps while using this method:


Make sure all HKCU keys in the MSI Package that we are creating are under structured component names like CurrentUser, CurrentUser1, etc.
The Package author should be able to judge and set the key path for that Component properly.


As per Microsoft Component guidelines, make sure the components containing HKCU keys are as few in count as possible, for example only one component (CurrentUser) with all HKCU keys with best key path set is the best practice.
Create the following registry keys under the main hive:
HKLM\Software\Microsoft\Active Setup\Installed Components\{GUID of the MSI}
ComponentID=PackageName_ComponentName
StubPath=[SystemFolder]msiexec.exe /fu {Product Code of the MSI} /q
Version=ProductVersion


The principle of Active Setup behavior is when a new user logs on for the first time, then the Active Setup will perform a checksum between HKLM\Software\Microsoft\Active Setup\Installed Components\{GUID of the MSI} and 
HKCU\Software\Microsoft\Active Setup\Installed Components\{GUID of the MSI}; 


and if the GUID is not present under HKCU, then it performs all actions which are under that main hive (StubPath, Version) and populates the GUID under HKCU. The main Advantage of Active Setup is it performs an action only once per User with the Checksum behavior by matching the entries under HKLM and HKCU.


Method II



Active Setup Method:


This method can be used for both MSIs and Non-MSIs (SMS or WSE Script executables).


Create a silent SMS script or Wise Script (for eg:-Script.exe) which will create the needed HKCU registry entries for the application. Then place that EXE in the Application [INSTALLDIR] in your MSI Pkg or Executable binary memory.


Then create the following additional registry entries in the MSI Package or within the Script whichever is applicable:


HKLM\Software\Microsoft\Active Setup\Installed Components\{GUID or AppName}
ComponentID=PackageName_ComponentName
StubPath="[INSTALLDIR]Script.exe"
Version=ProductVersion


The Active Setup performs the regular checksum (comparison of entries under) HKLM and HKCU and if the respective unique GUID or AppName is not present under HKCU hive, then it will perform all actions (StubPath, Version) and populates the GUID or AppName under HKCU hive too. This is only once per user -- for the first time -- to populate HKCU hive.


Method I and method II use the Active Setup feature, and One should understand the advantages of one over the other. Method I requires source resiliency to populate HKCU keys, where as method II does not require this as the Script.exe does everything.


Method I and method II can be used in any scenarios like if Advertised entry points are present or NOT present.


Method III



Windows Installer repair method with SMS or Wise Script:


Typically the body of the script will be;


Check for the existence of a Flag key under
HKCU\Software\Company Name\Applications\{ProductName][productversion]
Installed=True


If the key exists then quit else initiate the Windows Installer repair to populate HKCU keys:


Msiexec /fu {Product Code of the MSI} /q


And edit and create registry key (Basically a Flag Key which can be any key which your firm adopts)
HKCU\Software\XYZ*\Applications\{ProductName][productversion]
Installed=True
End
* XYZ= Name of the organization \ Company
And keep this script exe in HKLM\Software\Microsoft\Windows\CurrentVersion\Run.


One should keep in mind that the /p switch can also be used to repair files (populate) user-specific data (Profile data) with the following syntax:


Msiexec /fup {Product Code Of the MSI) /q




Method IV



Silent empty exe with valid shortcut:


Create a silent empty exe and its Advertised shortcut and place both of them in the Application [INSTALLDIR]. And use them as entry points to trigger healing to populate HKCU keys.

Tuesday 9 August 2011

Application Packaging Training - September Batch

New batch of Application Packaging Classroom training is starting at Hyderabad on 3rd September. If you are interested contact me at 91-9963678795 or Virtual.App.Packager@gmail.com


For training details please visit www.AppRepack.in

Friday 15 July 2011

Application Packaging Training @ Hyderabad

New batch of Application Packaging Classroom training is starting at Hyderabad on 2nd August. If you are interested contact me at 91-9963678795 or Virtual.App.Packager@gmail.com


For training details please visit www.AppRepack.in

Friday 1 July 2011

Weekend Training on Application Packaging @ Hyderabad

Im Starting Application Packaging Classroom training Weekend batch from July 3rd 2011.
You can view the list of topics that would be covered in training in following URL


http://www.apprepack.in


Contact me if anyone on Virtual.App.Packager@gmail.com OR +91-9963678795 if you are interested

Wednesday 22 June 2011

Application Packaging Training @ Hyderabad

I would like to Invite for New batch of Application Packaging Classroom Training at Hyderabad starting June 28 2011.


Course Duration: 1 Month ( 1hr/day)
Timings: 9am to 10am.


Anyone interested in online training?, please contact me on Arjun@AppRepack.in so that I can accommodate you in Online Training batch.


Please visit www.AppRepack.in for more information on training topics.

Saturday 11 June 2011

Windows Registry

The Windows Registry is a hierarchical database that stores configuration settings and options on Microsoft Windows operating systems. It contains settings for low-level operating system components as well as the applications running on the platform: the kernel, device drivers, services, SAM, user interface and third party applications all make use of the registry. The registry also provides a means to access counters for profiling system performance.


When first introduced with Windows 3.1, the Windows registry's primary purpose was to store configuration information for COM-based components. With the introduction of Windows 95 and Windows NT, its use was extended to tidy up the profusion of per-program INI files that had previously been used to store configuration settings for Windows programs


For more information please visit http://en.wikipedia.org/wiki/Windows_Registry

Monday 2 May 2011

Application Packaging Training/Workshop at Bangalore



I would like to take this opportunity to Invite all the Individuals and Corporates for much awaited Application Packaging Training/Workshop at Bangalore on May 27, 28, 29, 2011


Register at the earliest to avail discounts. Please pass this information to friends/colleagues who might be interested.


Give me a call for any other queries. You can also contact me on Arjun@Msipackaging.in OR 91-9963678795

Friday 18 March 2011

Merge Modules

Merge Modules are pre-compiled logic of code which can be used by different applications. For more info please visit MSDN at below URL


http://msdn.microsoft.com/en-us/library/aa369820%28v=vs.85%29.aspx

All About Windows Installer

Go through below link for information about Windows Installer
http://msdn.microsoft.com/en-us/library/aa367449%28v=vs.85%29.aspx

Application Packaging Training

Infrastructure services is hot and fastest growing domain across the Globe. Application Packaging is one domain


within Infrastructure services which is in peak demand.


Few points about Application Packaging:


What is Application Packaging
i) History of Operating Systems
ii) Evolution of Windows Installer Technology
iii) Why applications are Packaged


Application Packaging Tools
i) Wise Package Studio
ii) Install Shield
iii) Orca


For more information on Application Packaging Training. Please visit www.msipackaging.in


I can deliver Classroom and Online training. Pls contact me If you are interested to learn Application Packaging


Training on virtual.app.packager@gmail.com OR 91-9963678795

Internet Explorer 9 Release

Download latest version of Internet Explorer from below URL


http://windows.microsoft.com/en-US/internet-explorer/products/ie/home?WT.mc_id=MSCOM_DLC_US_F_113LMUS004274

Application Packaging Training Website

Please have a look at my new website for detailed information on Application Packaging Training.


www.msipackaging.in