Application Packaging Material
Application Packaging Material
Application:
Shortcuts.
Registries.
Runtime engines.
.Net registration.
Shell integration
ActiveX Controls.
Application packaging:
Reg – registry
2 T.UMAMAHESWAR 8686393028
Icon – image file or icon files
Input Output
Binaries EXE, MSI or Loose files.
3 T.UMAMAHESWAR 8686393028
Application Repackaging:
Note: as we already know that app is a combo of files and registries how and
where files and registries stored.
Input Output
EXE, MSI or Loose Files ISS, MSI, MST, EXE
4 T.UMAMAHESWAR 8686393028
How and where files & registries stored let’s check:
5 T.UMAMAHESWAR 8686393028
Application packaging Life cycle or End to End process or phases:
Now a days for every work we use application for entertainment social media watts up
and for travelling for booking tickets and movies for money transactions and extra.
Previously Bank employees used to maintain log registries to check total revenue account
lists transactions and all etc. due to this updating world banks are also updated and
implemented apps to store records and also started online services to help customer
safely, securely, speedy.
Any application which are going to build should satisfy the customer hence need to take a
survey over customer requirements regarding their needs an app need to be implemented.
Hence life cycle of app packaging need customer review for that few steps need to be
followed.
6 T.UMAMAHESWAR 8686393028
8. License information
9. Dependencies
10. Any other requirements or testing scenarios
Generally, requestor provide ICT/PRF document and Install instructions there we will get
above details
ICT=Install & configuration test
PRF=Packaging request Form
How to identify
This can be identified by following listed methods
Manual
Auto
Disable
B. Event viewer:
7 T.UMAMAHESWAR 8686393028
Event viewer
C. Task manager:
It is also one of the methods to find .exe or .msi
Client process
Server process
Security process
Sand box (scripting)
D. Temp folder:
Windows+R
%temp% Enter
Windows+R
8 T.UMAMAHESWAR 8686393028
CMD
Copy as path
Example: a system having many accounts like user Kalyan,Mahesh,pavan,chiru etc.. number
of account can be created in a windows OS system and login to that account to operate in
that particular account.
Here user can access everything in that system but if you logged in via Kalyan there may
require soma permissions which are given by user to access it. So by checking whether the
functionality of an application is in user or admin can analyse the app.
Also to analyse the installation, uninstallation and short cut launch which helps to know
status / functionality is good or not.
9 T.UMAMAHESWAR 8686393028
J. Drivers, ODBC, environment variables, services and user data or
machine related data (multiple user):
Helps to check what and all are installing with the app and performance too…
Drivers:
1. Under C:\Windows\INF (in this folder we have to check oem
count 1. If 1 oem count is increased then one driver installed 2.
If 2 oem count is increased then two drivers installed 3. If 3 oem
count is increased then three drivers installed)
2. Under C:\Windows\System32\DriverStore\FileRepository (in
this we have to verify driver files)
3. Printer driver location C:\Windows\System32\spool
4. To find system drivers CMD is --- msinfo32 /path is C:\
Windows\System32\drivers
SERVICES
10 T.UMAMAHESWAR 8686393028
services are nothing background process which is running in backend,
background process which is controlled by services control manager which
is in operating system
To open services command line is =(services .msc} /for app related services
open )
TYPES OF SERVICES
1.Win 32 services:
Installed by application normally pointing to executable file part of services
manage by application
2.KERNAL SERVICES:
Used to communication with hardware on computer
To see Kernal services using command line” msinfo32”
Service information stored in registries
Cmd line for registries is” regedit “
HKLM/SYSTEM/CURRENT CONTROL SET /SERVICES/SERVICES NAME
In MSI services information will be stored in 2 tables
SERVICES INSTALL: will install /uninstall the services
SERVICES CONTROL: to control services during install/repair/uninstall
COMMAND LINES TO RUN SERVICES:
To start sc.exe start “services name”
To stop sc.exe stop “services name”
To delete sc.exe delete “services name”
To know about what/which services sc.exe/?
Will get clear details of services
Environment variables
Environment variables are strings that contain information about the
environment for the system and the currently logged on user.
Command line to open environment variable is “SET.”
11 T.UMAMAHESWAR 8686393028
Environment variables can be used to avoid hardcoded paths and
replace longer data references.
We can use environment variables and to store some
repeating usage data as a simple way to access.
There are two types of variables.
1. System Variables
2. User Variables
System Variables:
You must be an administrator to modify a system environment variable. These
variables will be available to all users.
Registry path: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\
Environment
User Variables:
Any user can add, modify, or remove a user environment variable.
Registry path: HKCU\Environment
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\
Environment
To reduce or avoid “hard code paths “ C:\....\....\.....\.....
To avoid their length of hard code we can store all this paths in
An environment variables & set a value to it so can access easily using value
Any software should work globally Eg : C:\users \kalyan\app data \roaming
C:\user \kumar \app data \roaming
If the user captures these app move to above systems it will fail, why Because
the use not specified
Command line to check environment variables in system= “set “
Environment variables in registry an” regedit “is
HKLM \ system\current control set \control\session manager \environment
variables
In msi environment variables stored in” environment table “
13 T.UMAMAHESWAR 8686393028
Testing will be done before app deployment and is done in 2 ways
Response file
.EXE to. ISS
Only for .exe applications we can create response file. It won’t work for
.msi. The input is .exe output may be .iss or .ini or .rsp
.EXE=legacy setup/Executable file/Setup
.ISS=Install shield silent/.INI= Initialization file/.RSP=Response file
On legacy applications When we need to configure or customize like
installation and uninstallation, we need response file concept.
To configure require settings while installation of any legacy
application(.exe) we can create response file.
To customize silent install and Uninstallation we can create response
file.
Syntax: “setup.exe” -r -f1 “C:\temp\Install.iss”
“setup.exe” -r -f1 “C:\temp\Uninstall.iss”
3. Marimba
Getting request from service now with all the details like PRF,
Customization, application details.
Source validation if any issues with source provided then will raise a
clarification to the requestor through mail and service now.
If no issues found with source, then we will start validate the source and
share the ETA to the respective team.
Packaging {MSI /EXE/MSI/MST} with all customer Specific standards and
customizations as per PRF.
Once packaging has done, will move to Quality chick (QA).
If any issues found in QA and those issues should fix in package and
move to UAT (user accept test).
If any issues found in UAT, will take the remote control of the effected
machines and trouble shoot.
There after SCCM team can tack care of test deplanement and
production.
All the activities should record in service now until the package is moved
to SCCM team
Application Operations:
1. Install
15 T.UMAMAHESWAR 8686393028
2. Repair
3. Uninstall or Remove
Application Architecture:
A. 32-bit application
B. 64-bit application
Files:
C:\Programme file—64-bit application
C:\Programme file X86—32-bit application
Registries:
64 bit---HKEY_LOCAL_MACHINE\SoftWARE\Microsoft\Windows\
CurrentVersion\Uninstall
32 bit---
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\
CurrentVersion\Uninstall
16 T.UMAMAHESWAR 8686393028
2. Admin studio / install shield—Version--2020
3. Application virtualization (APP-V) -- Version—5.1—older 4.6
4. Citrix app DNA—Version--7.6
5. ORCA—7.8
6. Application Microsoft app compatibility tool kit –version—6.1
7. SCCM-- system centre configuration manager --2017
8. Thin app
3. ORCA
4. Tuner
1. Application virtualization.
2. Thin Application.
17 T.UMAMAHESWAR 8686393028
Application Packaging: Need to get inputs as binary files which made to
convert it little time taking process and consumption of efforts and manpower
is high
Application re-packaging: here we get source input as package which makes
simplify and easier to work
1. Customised installation
2. Project cost is less.
3. Perform configuration information.
4. Silent installation and uninstallation
Drawbacks of app packaging
Some apps can’t be repackaged that is which are operating system related of
windows related and Microsoft related. Why because those apps are
interacted with system operating system if capture these the app will not work
properly.
Those apps are
1. msi app
In this if we tried to capture as output, we again get an .msi file
2. Microsoft internet explorer
3. Operating system
4. Windows media player
Windows installer
Windows installer is a service which is a part of operating system. which
interacts between applications and operating system. Built in operating
system.
Application programming interface (API) of Microsoft windows. It is only for
windows.
It manages applications operations like install uninstall other operations etc….
Develop an application.
18 T.UMAMAHESWAR 8686393028
Upgrade an application.
Can customise application.
Manage app installation /uninstallation and stores other operations.
Note: How to know the version of windows installer
2. Repair: When we lost some files in .msi when the repair will work .msi file
3. Rollback: When the user cancelled an installation of msi when the windows
installer restores the original system status. In the back-end Rollback script
generate and execute.
4.install on demand: when the user launches an application upon the demand
the windows installer components and it will provide required data.
5.Advertisement: The application data will be available to user partially then
the user requests or launches application then we can get complete data will
be available.
19 T.UMAMAHESWAR 8686393028
6. Source resilience: Installation file location changes or corrupted or missed
files or source files are deleted we store original on source resilience.
Error--- 1311—Source file not found on folders.
Store the msi file in install directory they do self-healing.
7.lockdown environment: Only admin can have full access rights. Standard
user has limited access.
MSI(Microsoft Installer or Microsoft Windows Installer)
MSI is a data base which consist of information about instruction this database
contains over 80 +tables.
Table is nothing but information about rules to accept while operating
following listed tables contains that files/information.
Summary search table Application search table Binary table Custom action
table Directory table
Component table Create folder table Condition table Feature table Component
table File table.
File hash table Launch condition table Lock permission table Media table
Remove file table.
ODBC Environment table Service install table Service control table Property
table Shortcut table.
Registry table INI file table Upgrade table Validation table and few are present.
Note: Each table contains that information of instruction which stores here…
Architecture of msi
It is based on 3 factors.
1.produt
2.feature
3.component
1. Product:
Mechanism of MSI
During installation both install script and roll back script will start running at
back end
if you cancel installation process at middle of progress 50% files will already
copied to system here roll back script removes the copied 50%files back and
bring system to previous normal state.
No spam or junk files will store if cancels installation by the help of rollback
script.
3 Uninstallation:
EVENT VIEWER
Name itself indicates that an event viewer stores each & every event
(operations like install, repair, restart, uninstall) in event log manner it will give
data 2 tabs.
21 T.UMAMAHESWAR 8686393028
While event running at bottom panel it will give data about that what is done
in general tab & details tab
A. Event viewer is an app which is built in windows app.
B. Tool & windows built in application.
C. It records events & tasks performed in system.
D. We can manage app install, app operations & security operations,
give permissions and
Some other setup programmes.
22 T.UMAMAHESWAR 8686393028
àRepair
àReboot
àSome other configurations
How to find Command line parameters for .EXE
In command prompt
We use various command line parameters based on application.
To know which parameters, we should use for application if you use below will
give a popup which contains app details
Setup.exe /? Or setup.exe /help
Installation:
For repair:
1. setup.exe /repair
For Update:
1. setup.exe /update
For Uninstallation:
1. setup.exe /uninstall
2. setup.exe /X
1. setup.exe /norestart
2. setup.exe /noreboot
23 T.UMAMAHESWAR 8686393028
To set language ID setup.exe /LID
Why do we use silent installation for exe?
Normal installation it will take 2 to 3 days.
For silent installation 4 to 5 hours
For this we need to check parameters to .EXE for time saving process
j—advertisement
u—user specific
24 T.UMAMAHESWAR 8686393028
m—machine level advertisement occur by all.
For updates:
P=patch
Note: need to give msp at path end instead of msi
For Reboot:
Note: Best practice to use qb-! ---- in real time every one use it
DLL OCX Registration
25 T.UMAMAHESWAR 8686393028
DLL & OCX registration: Both DLL &OCX are files which will get entries / stores
in registries.
Can find there by using regedit [Windows+R]
DLL [dynamic link library]: DLL is a major supporting file in an application
which acts as a major interface between system & software.
Command lines for DLL:
To register DLL file in silent [Regsvr32.exe /s ‘’path of DLL ‘’]
To unregister DLL [ Regsvr32.exe / u ‘’path of DLL ‘’]
For manual registration [regsvr32 ‘’path of DLL ‘’]
Note: if you install a dll , we get five information
Example: HKCR software CLSID
PROGRAM ID
INTERFACE
COM DATA
APPLICATION ID
We will get there 5 details of which class in it is having and under which
program file it is storing and about interface and also system data and
application ID.
OCX [active X control]:
For Registering exe files
To register [setup.exe / register]
To unregister [setup .exe / unregister]
Note: every DLL & OCX or exe can’t be register, it that DLL or OCX will be
valid then only we ca register.
DLL, OCX and EXE files registrations
Registering Dll files:
regsvr32 <Path to Dll File> : For Register the Dll
regsvr32 /u <Path of DLL> : For Unregistered the Dll
regsvr32 /s <Path of DLL> :For Silent register
Registering EXE files:
<Path to exe file> /regserver : For registering a exe file
<Path to exe file> /unregserver : For unregistering a exe file.
Registering OCX files:
regsvr32 <Path to OCX File> : For Register the Dll
regsvr32 /u <Path of OCX file> : For Unregistered the Dll
regsvr32 /s <Path of OCX file> :For Silent register
REGISTRIES
26 T.UMAMAHESWAR 8686393028
Registries are nothing but database. Which contains some information and
options related to system and operating system.
Database
Contains setup Program & options.
Contains information about kernal services, OS information and
application data & device drivers
Command line to open registries is “regedit.exe”
Structure of registries:
1. Root Keys
2. Sub keys
3. Hives [ path are known as hives] in Pannel left is hive.
4. Entries [in panel right sight is entry]
Types of registries:
1. HKEY-CURRENT-USER [HKCU]
2. HKEY- USERS[HKU]
3. HKEY-LOCAL-MACHINE[HKLM]
4. HKEY-CLASS-ROOT[HKCR]
5. HKEY-CURRENT-CONFIG[HKCC]
27 T.UMAMAHESWAR 8686393028
2.HKEY- USERS[HKU]: All users information is stored here. It stores a
configuration setting for actively logged in users.
Desktop Settings
Control panel entry
Application related.
OS related settings
Com data
Program ID
Class ID
Hardware profile
Kernal services
Software fonts
28 T.UMAMAHESWAR 8686393028
To do any operation we need files and folders. We need to aware of
storage of files and folders. Normally any application will be stored in C:\ drive
in some folders which can be machine level or only user level.
C:\Programmedata
C:\Programme files
C:\Programme filesX86
C:\Windows
C:\Windows \System32
C:\Windows\Syswow64
C:\Temp
HKLM
HKCC Registries
HKCR
29 T.UMAMAHESWAR 8686393028
Operating system(OS):
A. Security
B. Memory Management
C. GUI-User interface
D. Applications
Types of OS:
1. Windows
2. MAC
3. Linux
4. Android
5. Ubuntu
30 T.UMAMAHESWAR 8686393028
6. DOS
7. Elementary OS
(I). Server OS
(II). Client OS
(I)Server OS:
Types of Servers OS
There are a couple of varieties of server OS available, each with its private
abilities, strengths, and best-use instances. Here are a number of the most
not unusual kinds:
Windows Server: Developed by Microsoft, Windows Server is
extensively utilized in business enterprise environments. It offers a
person-first-class interface, robust protection features, and seamless
integration with different Microsoft merchandise which includes
Active Directory.
Linux Server: Linux is an open-supply running system widely used
for servers because of its stability, protection, and flexibility. Popular
distributions for servers encompass Ubuntu Server, CentOS, Red Hat
Enterprise Linux (RHEL), and Debian.
Unix: Unix walking systems, which include FreeBSD, OpenBSD, and
Solaris, are recounted for their stability and scalability. They are
normally applied in high-overall performance computing and
corporation environments.
MacOS Server: The MacOS Server is a server working gadget
advanced with the aid of Apple. It affords features that incorporate
document sharing, far-off admission to, and centralized
management for Mac and iOS devices .
(II)Client OS:
31 T.UMAMAHESWAR 8686393028
Characteristics of Client OS:
Graphical User Interface (GUI): Client OS generally consists of a graphical user
interface that lets in customers to have interaction with the operating gadget
and programs using visible factors consisting of home windows, icons, menus,
and buttons.
Application Support: Client OS affords assist for a various variety of
packages and software program equipment utilized by give up-users
for productivity, conversation, amusement, and personal duties. This
consists of web browsers, email clients, office suites, multimedia
players, and gaming packages.
Device Compatibility: Client OS is designed to paintings with quite a
few hardware devices and peripherals normally utilized by cease-
customers, along with printers, scanners, cameras, and enter
gadgets along with keyboards, mice, and touchscreens.
Ease of Use: Client OS emphasizes ease of use and ease, with
intuitive interfaces and person-pleasant functions geared toward
permitting non-technical customers to carry out duties inclusive of
surfing the internet, sending emails, growing documents, and coping
with documents.
Graphical User Interface (GUI): Client OS typically consists of a
graphical consumer interface that lets in users to have interaction
with the running system and packages using visible elements
including home windows, icons, menus, and buttons .
A. Windows XP
B. Windows Vista
C. Windows 7
D. Windows 8.1
E. Windows 10
F. Windows 11
32 T.UMAMAHESWAR 8686393028
Difference between Server OS and Client OS
Server Operating System Client Operating System
A. 32-bit OS
B. 64-bit OS
33 T.UMAMAHESWAR 8686393028
34 T.UMAMAHESWAR 8686393028
35 T.UMAMAHESWAR 8686393028
32BIT OS 64BIT OS
Files: C:\Programmefiles C:\Programmedata
C:\Programmedata C:\Programme files
C:\Users C:\Programme filesX86
C:\Windows C:\Windows
C:\Windows\System32 C:\Windows \System32
C:\Windows\Syswow64
C:\Users
Registries: 32bit OS
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
64-bit OS
HKLM\Software\Wow6432node\Microsoft\Windows\CurrentVersion\Uninstall
(Wow6432node is extra hive)
32 bit OS:
64-bit OS:
36 T.UMAMAHESWAR 8686393028
1. If application is 32 bit we can install and work on it (but files will be
stored in system 32) (registries are stored under HKCU, HKLM).
2. If application is 64 bits can also install and work here (files stored in X86
folder) (registries stored in wow6432node in HKLM, HKCU).
Environment variables
Environment variables are strings that contain information about the
environment for the system and the currently logged on user.
Command line to open environment variable is “SET.”
Environment variables can be used to avoid hardcoded paths and
replace longer data references.
We can use environment variables and to store some
repeating usage data as a simple way to access.
There are two types of variables.
1. System Variables
2. User Variables
System Variables:
You must be an administrator to modify a system environment variable. These
variables will be available to all users.
Registry path: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\
Environment
User Variables:
Any user can add, modify, or remove a user environment variable.
Registry path: HKCU\Environment
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\
Environment
To reduce or avoid “hard code paths “ C:\....\....\.....\.....
To avoid their length of hard code we can store all this paths in
An environment variables & set a value to it so can access easily using value
Any software should work globally Eg : C:\users \kalyan\app data \roaming
C:\user \kumar \app data \roaming
If the user captures these app move to above systems it will fail, why Because
the use not specified
37 T.UMAMAHESWAR 8686393028
Command line to check environment variables in system= “set “
Environment variables in registry an” regedit “is
HKLM \ system\current control set \control\session manager \environment
variables
In msi environment variables stored in” environment table “
System root = c:\windows \environment variables
System drive = c:\environment variables
Windir = c:\windows
User profile = c:\user \username
Public = c:\users\ public
User name = the user who logged in
Program file = c:\programme files
Program files x86 = c:\programme files x86
Commonappdata = c:\programme files \common files
Alluserprofile = c:\programme data
Appdata =c:\users \user name \app data\roaming
Local app data = c:\users\user name\app data\local
Home drive = c:\ [software drive]
Temp = c:\users\user name\app data\local\temp
Common file = c:\programme file\common file
System folder = c:\users
All user profile = c:\programme data
Properties
Advanced Settings
Launch Condition
Launch Condition is used to check system requirements on
the destination computer.
It contains a list of conditions that all must be satisfied for the
installation to begin.
PredefinedLaunch Conditions
For e.g. Minimum OS Version, Minimum IE version, Minimum IIS version,
Minimum .NET Framework version, Minimum Screen Resolution, Minimum
Color Quality, Minimum Physical Memory, Run only if user has administrator
privileges.
39 T.UMAMAHESWAR 8686393028
(VersionNT = “501” And [ProductName] requires Windows XP Service Pack 3
ServicePackLevel >= or later. Setup will now exit.
“3”) Or VersionNT <>
“501”
(VersionNT = “600” And [ProductName] requires Windows Vista Service Pack 2
ServicePackLevel >= or later. Setup will now exit.
“2”) Or VersionNT <>
“600”
(VersionNT = “601” And [ProductName] requires Windows 7 Service Pack 1 or
ServicePackLevel >= later. Setup will now exit.
“1”) Or VersionNT <>
“601”
PROPRTIES
Properties: it is a variable which can be used globally so properties are called
as global variables windows installer can configure an app while
install/uninstall /repair
40 T.UMAMAHESWAR 8686393028
Private Properties: product code, Product id, Manufacture, Product version,
Product language, Package code, agree to licence, Product name, Upgrade
code.
INSTALLDIR:
DIR is nothing but a directory folder
Where the major files are stored by an application is called INSTALLDIR
Eg : for example CISCO ANY CONNECT
C:\programfiles \cisco \any connect ----- INSTALLDIR.
TARGETDIR:
Files which are stored in INSTALLDIR (c:\programfiles \cisco) are redirected to
some other DIR is called TARGETDIR
To do this we use admin installation so can extract MSI & files except registries.
41 T.UMAMAHESWAR 8686393028
Eg: msiexe /a “msi path” TARGETDIR
ROOT DRIVE:
it will specify the files were the application installed.
We can determine which five in application installing files.
Eg: Root drive – c:\
Eg: Files we give c:\
If any App installed which is over size will check first in c:\ is space available it
will install , if no space it will redirect to the next drive ie, d:\ , e:\ , etc this
redirection will be done by windows installer at backend .
Direct editor
Property
Create new
ARPSYSTEMCOMPONENT:
To hide the entry in ARP (Add or remove program) then we need to use
ARP SYSTEM COMPONENT
42 T.UMAMAHESWAR 8686393028
ARPNOREPAIR:
To prevent repair option from add or remove program we need to use this.
In general:
ARP
ARPNOREMOVE:
To prevent Remove button from Add or remove program then we need to
use this.
ARPNOREMOVE=YES (Remove not done)
ARPNOREMOVE=NO (Remove to be done)
Above all these are from app levels.
In real time:
BY ORCA:
New
*DWORD (bit need to be select 32bit,64bit App)
*No repair value=0 (Modify option available)
*No repair value=1(NO modify) As same to NOREMOVE, NOMODIFY.
From InstallShield:
43 T.UMAMAHESWAR 8686393028
General information
Can disable entries here. (what all need can disable here)
ARPPRODUCT ICON:
Can set display icon to App in Add or remove program wizard. Extension
of .icon files is. ICO.
By using InstallShield
General information
ALLUSERS:
It determines the Application related data per user (or) per machine.
Per user =Specifies to user : per machine =specific at all
REMOVE:
By using this property can remove a feature while install/uninstall.
44 T.UMAMAHESWAR 8686393028
Adobe photo shop
Installing an existing App with same product code many times then use
this REINSATLL property.
Msiexec/I “msi path “REINSTALL=feature2
REINSATALLMODE:
It contains a string (only Alphabets) called “OMUS”.
It helps to repair interface in term of user data, machine data short cuts, etc.
OMUS
O=if files is missing it will repair (files related data)
M=Machine level data
U=user specific registries
S=shortcuts
f=repair
Msiexec/I “msi psth” REINSATALLMODE=OMUS REINSATALL=ALL
REBOOT:
We can manage restart, reboot settings.
Really suppress This value is prevent to reboot.
Prompt Reboot Give a dialog box yes or no reboot.
Force Reboot Nothing available will be force fully reboot.
In Realtime we need to use Really suppress
45 T.UMAMAHESWAR 8686393028
ADDLOCAL:
If the application is available in local environment (system drive) then that
case, we can manage features.
If MSI contains 100 features, I need to add 1 feature any those then we need
this command
msiexec/I “msi path” ADDLOCAL=feature name
ADD SOURCE:
When the Application is not present in local environment i.e, present in
D:\ drive, hard drive.
Msiexec /I “msi path” ADDSOURCE=feature name
INSATALL LEVEL:
Install level value INSTALL LEVEL VALUE
Eg: feature level value Product install level=3
LIMIT UI:
To control user interface If value is 1 LIMITUI=1
ARPNOMODIFY should present in LIMITUI is 1.
SOURCE LIST:
To get back data, which is lost, it will help to provide lost data
When source is corrupted then it will get that source back &will work only in
‘1’ MSI.
COMPANYNAME: Adidas
46 T.UMAMAHESWAR 8686393028
USER NAME: Adidas
MANUFACTURER: Vendor As per the PRF/Project requirements can mention these details.
TRANSFORMS
Doing some changes to MSI it is called MST. The replica of MSI is transform.
Transform extension is .MST.
Syntax to install: msiexec/I “msi path” TRANSFORMS= “Path of the
transforms”
1.For single MSI we can pass no of MST’S
2.Can call no of MST by using; after transform path
3..mst won’t run alone without MSI transform will not work
Transforms types:
1.Embedded transforms
2.Secured transforms
3 Unsecured transforms
Embedded Transform:
MST is part of MSI. (within MSI there is MST which is built in, then it is called
Embedded)
Should have ‘ ; ’ as suffix
Eg: msiexec/I “msi path” TRANSFORMS= : “path of the mst”
Secured Transforms:
For security purpose to be available for particular users by using, managing,
permissions.
Msiexec /i “msi path” TRANSFORMS=@ “path of the mst”
We use “ @ “ or “I”(pipe symbol) to use secured transforms
Unsecured transforms:
For many users No permission required
Msiexec /I “ msi path” TRANSFORMS= “path of the mst”
CREATIONOF TRANSFORMS
47 T.UMAMAHESWAR 8686393028
Tools used to create transforms (MSI-MST)
1.Tuner
2. InstallShield
3.ORCA
4.Wise package studio
How to create by using ORCA:
Menu line Transforms New Generate
transforms give location path to store.
General information
Do some changes.
Simple method:
Go to file
save as
Name it in MSTformat
if not present give all format Once validation done select installation designer
on the top menu
Store app
Save
2. Complex method;
check properties
49 T.UMAMAHESWAR 8686393028
Open Admin studio
Shortcut
Start menu
All programs
Program files
Startup
50 T.UMAMAHESWAR 8686393028
INI files
These are text files which contains some configuration information
1. Extension of these files are .INI
2. INI stands for initialization files (contains configuration files)
3. It is a plain text file.
STRUCTURE OF INI: default model
[keyword /key name= value]
VALID FILE:
1. Should follow a systematic structure [ ] with keyword &value
2. These valid files are stored in INI file table
INVALID FILE:
1. If not follow particular structure &also adding some special character
like *& etc. will be comes under invalid file
2. All these invalid files are stored in FILE TABLE
HOW TO HANDLED INI FILE IN TOOL:
Panel
INI files
Admin studio
51 T.UMAMAHESWAR 8686393028
It has entry in file hath table
Icons are stored in icon table
SERVICES
services are nothing background process which is running in backend,
background process which is controlled by services control manager which
is in operating system
To open services command line is =(services .msc} /for app related services
open )
TYPES OF SERVICES
1.Win 32 services:
Installed by application normally pointing to executable file part of services
manage by application
2.KERNAL SERVICES:
Used to communication with hardware on computer
To see Kernal services using command line” msinfo32”
Service information stored in registries
Cmd line for registries is” regedit “
HKLM/SYSTEM/CURRENT CONTROL SET /SERVICES/SERVICES NAME
In MSI services information will be stored in 2 tables
SERVICES INSTALL: will install /uninstall the services
SERVICES CONTROL: to control services during install/repair/uninstall
COMMAND LINES TO RUN SERVICES:
To start sc.exe start “services name”
To stop sc.exe stop “services name”
To delete sc.exe delete “services name”
To know about what/which services sc.exe/?
52 T.UMAMAHESWAR 8686393028
Will get clear details of services
UNINSTALL STRING:
32bit : HKLM/Software/Wow6432node/Microsoft/Windows/Current
version/Uninstall
64 : HKLM/Software/Microsoft/windows/current version /uninstall
ENVIRONMENT VARIABLE:
User variable: HKCU /Environment
System variable: HKLM\System\Current control set\Control\Session manager\
Environment
ACTIVE SETUP:
HKLM\Software\Microsoft\Active setup\Installed component
53 T.UMAMAHESWAR 8686393028
To know the version of Windows Installer:
C:\Windows\System32\msi.dll-right click -properties – Details we get version
Msiexec /? In cmd
Services:
HKLM\System\Current control set \Services
ODBC:
SYSTEM DSN: HKLM\Software\ODBC
USER DSN: HKCU\Software\ODBC
54 T.UMAMAHESWAR 8686393028
c:\users\<username>\appdata\local\temp --temp
c:\users\<username>\appdata\roaming\microsoft\windows\sart menu --
Start Menu
c:\users\<username>\appdata\roaming\microsoft\windows\sart menu\
programs -- Program Menu
c:\users\<username>\appdata\roaming\microsoft\windows\sart menu\
programs\Startup -- startup
c:\windows\syswow64
c:\windows\system32\Drivers
c:\windows\system32\Drivers\etc
c:\windows\syswow64\Drivers
c:\windows\system32\DriverStore\File Repositry
C:\Users\publc\Desktop
c:\users\public\my documents --my documents(public)
c:\progradata
c:\progradata\microsoft\windows\start menu\Programs -- Program menu
c:\progradata\microsoft\windows\start menu\Programs\Startup -- Public
statup
55 T.UMAMAHESWAR 8686393028
REGISTRIES: (regedit)command
Hklm\Software
HKLM\Software\wow6432Node
HKLM\SW\MS\Windows\CurrentVersion\uninstall
HKLM\SW\MS\Windows\CurrentVersion\Run
HKLM\SW\MS\Windows\CurrentVersion\RunOnce
HKLM\SW\Wow6432Node\MS\Windows\CurrentVersion\uninstall
HKLM\SW\Wow6432Node\MS\Windows\CurrentVersion\Run
HKLM\SW\Wow6432Node\MS\Windows\CurrentVersion\RunOnce
HKLM\SW\MS\ActiveSetup
HKLM\SW\wow6432Node\MS\ActiveSetup
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\
Environment
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
hklm\Software\ODBC
hklm\Software\Wow6432Node\ODBC
HKCU:
hkcu\Software
HKcu\SW\MS\ActiveSetup
HKcu\SW\Wow6432Node\MS\ActiveSetup
hkcu\Software\ODBC
UPGRADE
Upgrade is nothing but removing old versions & installing new version in that
place known as upgrading.
56 T.UMAMAHESWAR 8686393028
Upgrade is of 3 types:
1.Small update: very minute changes will be done here, as adding few files &
registries in a very less amount is known as small update.
Only package code will change
2.Minor update: certain files & registries for changes in a minor way with the
change of small version changes.
Package code & version code changes
3.major upgrade: totally removing existing app & install new one (major
changes)
Package code, product version & product code will also be changes.
How to implement on upgrade: update will be done using certain steps
Step 1: Collect upgrade code from lower version
Step2: Edit higher version application with install shield or some other tool&
then
Go to upgrade table & implement the upgrade table
Upgrade code Paste old version Upgrade code
Version minimum 0 (or) empty (or) old version
Version maximum Higher version
Language 1033 – English language
Attribute Value 1 – can run from source
Remove All – It will remove all old version
Action Property UPGRADE (Public Property)
57 T.UMAMAHESWAR 8686393028
1.Find related product
2.Removing existing product
3.Migrate, feature state
Note: once upgrade value is success, major upgrade value, should be the action
property value, should be a product code in log file.
UPGRADE – PROCEDURE
First, we have to take two version application one is lower version & another one is higher
version
↓
From lower version edit with install shield
↓
Copy the Upgrade code
↓
Install the lower version application
↓
Open higher version application in edit with install shield
↓
Direct editor
↓
Upgrade table
↓
In right side table – Delete minimum version row
↓
58 T.UMAMAHESWAR 8686393028
Take a new
↓
↓
Next go to Property table
↓
Right side we can see secure custom property
↓
At the end of the secure custom property
We have to paste what we have given in Action property
Component Rules
Component is nothing but files and registries & shortcuts and some other files.
Rules to follow:
Each component should have unique GUID
Generally, some files are editable and some files are non-editable.
Editable files: word, .txt, .xml, .excel,.ps1,.INI
Non-editable files:.exe,.dll,.msi,.ocx,.jpg
We can set keypath internally to file, Registry, Shortcut, ODBC.
Here we can not sett keypath to editable files
Why because if you set keypath to editable files it may cause trouble.
Example: .INI is an editable file in which licence agreement were stored in real
time systems.
In case it is setup with keypath then when we for reinstall it will through error
because of missing the licence.
59 T.UMAMAHESWAR 8686393028
Should not move any file, registry, shortcut, from one component to
another component. That particular data should be member of that
particular component.
Never create 2 components which is with the same resources to some
target location.
Every component should have “COMSERVER”
To access COMSERVER need to set keypath, COMSERVER is needed to
component which acts interface at backend.
Should not create versioning component which are not compatible with
previous versions.
Example: A.dll-2.0
B.dll-3.0 -if any error raised with this at least it will run A.dll-2.0
Red Componant
60 T.UMAMAHESWAR 8686393028
When the component is not allocated to feature that is called red component.
How to resolve
Go to feature component table – select feature--- map a feature
Note: Don’t create a component in a component wizard. If you create it there
then it should not be mapped to some feature.
So, always create a component in a “feature component table”. There
immediately first create new component and the new feature also it will be
mapped there.
Device Drivers
Device drivers are required to provide connectivity between hardware and
software.
Types of Drivers:
1.Signed Drivers: It is trusted and we have signature for this signed driver
and will get .CAT file as well.
61 T.UMAMAHESWAR 8686393028
3. Under C:\Windows\System32\DriverStore\FileRepository (in
this we have to verify driver files)
4. Printer driver location C:\Windows\System32\spool
5. To find system drivers CMD is --- msinfo32 /path is C:\
Windows\System32\drivers
CUSTOMISED LOGFILES
Gives you a clear information where error occur & what action to be
require to clear issue. A log file will record events performing in system to
check whether success or failure.
TYPES OF CUSTAMISED LOG FILES
1. Verbose log files
2. Voice warmup log files
1.VERBOSE LOG FILE
SYNTAX: installation of msi
62 T.UMAMAHESWAR 8686393028
Msiexec /I “mai path “/L+V” path of the log file “ [ path of log file = need to
specify space to store]
Eg – create folder c:\temp \app_install .log]
/i= install
/L= logging
*= interact with database
V=verbose
Logging extension should “log”.to be gain
For uninstallation= msiexec/X “msipath /L*V”path of log file
For repair: msiexec /f ”msipath” /L+V “path of log file
NOTE: log files will work only in msi but not in exe.
By using that command line, we will be taken to a page log page which is
having some info about the log file.
At the end least but one line finds machine engine value
63 T.UMAMAHESWAR 8686393028
Eg can create “exe internally it calls” msi files “also will be done
To review logs, we need to have return value
LOG FILE RETURN VALUE:
By identification their value we can assume whether success /fail
By executing number of lines will open as logs around 10000+lines
Simply type ctrl+f = search for return value
It will show every return value which is in log page
For every action at the end, we get return value
Return Description
Value
0 Function could not execute properly
1 Success
2 User cancelled operation
3 Fatal error (Script Incorrect)
4 Suspended [more than 2 MSI run it will suspend because only 1
MSI at 1 time]
5 Successfully executed
6 Handled invalid state
7 Data is Invalid
Active setup
64 T.UMAMAHESWAR 8686393028
C: \users \ local
C:\ users \ local low files stored under here
C: \users \ desk top
C: \users \ downloads
Scenario 1: having user data, but windows no entry points then we implement active
setup for multiple user
User data implement active setup for single user to multiple user
Active setup
65 T.UMAMAHESWAR 8686393028
Install components
Product code
Under product code
We need to create 2 strings
f = repair
2. version = 1
Note: to do multiple log off & login need to change version every time you logged in
“incremental way “
Windows logs
Application
Log entries
ACTIVE SETUP
Go to → Regedit
HKLM
↓
Software
↓
Microsoft
↓
66 T.UMAMAHESWAR 8686393028
Active setup
↓
Installed components
↓
Folder Creation
(Eg-Notepad)
↓
Right side
Create → New → String Value → Stub Path → Double click → Value data
(Notepad application path location)
Copy & Paste
↓
Then Restart the system
Working procedure:
Need to” logged off & log in “then it will start active setup
After setup will work only 1 time when the user logged off & logged in
Note: if you want to run multiple times need to pass version value in incremental way
Scenario: we can pass executable files also but, exact path should give then stab path = “path of
executable “
Run: it will work multiple time to user when logged off & log in
Eg : Microsoft skype for business Microsoft Lyne
67 T.UMAMAHESWAR 8686393028
In real time, few applications should run automatically when log in, skype for interact with
colleagues at that time run should be used.
HKLM
Software
Microsoft
Windows
Current version
RUN
Name
Value= path
RUN OFFICE: It will work once the user logged in, work only first time & after second logged in
the key will delete hence it is named as run once.
Implement run:
HKLM
Software
Microsoft
Windows
Current version
Run once
C:\progfiles \facebook\.exe
68 T.UMAMAHESWAR 8686393028
Note: after run once the run key will be deleted
How it works:
According to machines
Open regedit
HKLM
Software
Microsoft
Windows
Current version
Run
ACCORDING TO APPLICATION:
Install shield
Windows installer
New transform
Next
Finish
Here we need to check whether the application is having uses data or not by checking common file
data under files & folders can check.
69 T.UMAMAHESWAR 8686393028
APP SEARCH: Used to check system requirement & app requirement as well. It
is same as launch condition. Eg: SAP hena (main app)
It requires Microsoft. netb4.6 as dependency
File under – c:\windows \.net \assemblies .net 4.6
Registries under _HKLM \software\microsoft \.net\.net version =4.6
If the file is existed in any of the hive, then the application should install either
dependency app in existed in any hive or file, folder, registry then only it will
install.
Whenever we implement entry of app search it will get entries under or we
need to work on
App search table
Launch condition table
Reg locater table
Signature table
Property table
FILE ASSOCIATION: it will classify files as per extension & create a group.
the files are stored in same extension it will gather extension & stores group of
extension (some) under one group
Eg: .exe, .msi , .mst , .ini, .dll , .log etc
All exe files are stored in .exe group
All msi files are stored in .msi group
70 T.UMAMAHESWAR 8686393028
Types of ODBC:
1.user DSN: [data source name] it specifies to user & stored in HKCU \
software \ODBC
2. system DSN: it is available to multiple users stored in HKLM\software \ODBC
Here ODBC are connected to some table
ODBC INI
ODBC data source
ODBC drivers
ODBC translates
MERGE MODULE: There are pre compiled libraries we can share files,
registries & other resources to multiple application.
This concept will work on shared .dll concept
App1
A.dll App2
App3
Note: if apps connected increase, shared count will increase.
If apps connected decrease .shared count also decrease.
Merge module will basically on 3 factors
Version
Size
Data
If the file belongs to editable file, it doesn’t have version
Only size & date will be available
Eg : .word
.ini
.log
71 T.UMAMAHESWAR 8686393028
If the file to non-editable file it has version, date & size also
Eg: .dll
.ocx
.msi
Module signature
Module Execute sequence
Module UI sequence
Module component
How to operate in system:
File parts:
To open type at start can be ODBC 32or ODBC 32.exe
Can add user & system as well
Name - google
Description anything about app info
Service on which service to add & XQL
Next or finish
It will create on ODBC
REGSTRY PART
HKCU
Software
ODBC
72 T.UMAMAHESWAR 8686393028
ODBC INI and some other data will present
HKLM
Software
ODBC
MSI- Edit with install shield – Goto build menu-Validate-Full msi validation suite
There we can find information,warnings,Errors
CUB File: When you validate msi cub file will generate, it is used to validate
msi.
Difference between CAB &CUB
CAB: When you add files in compressed mode CAB file will generate, it will
refer in media table.
CUB: When you validate msi CUB file will generate.
ICE21: When the component does not belong to any feature then we will get
ICE21
73 T.UMAMAHESWAR 8686393028
Solution: Go to feature table select that component and allocate the feature.
ICE80: it is related architecture we have to set as per the application
architecture.
Solution: We have to map correct architecture.
ICE03: Its s validates data types foreign key & primary key from the msi table.
Solution: Go to Directory table you have to sort that name.
ICE43: Component has non-advertised shortcut and it use registry HKCU as key
path
When you create MST if you validate ICE errors compare with MSI ICE errors
MSI- ICE21, ICE43
MST- ICE57, ICE03, ICE21, ICE43 (We have to resolve ICE57, ICE03 only)
ICE57: (IMP)
Components(files,registries,shortcuts)
When the component having per user data and per machine data but keypath
is set to machine data.
Solution: please set keypath to registry HKCU
ICE64: When we directory under user profile we will get ICE64
Solution: Add directory to the remove file table then we will resolve.
ICE99: When directory and property are same
Solution: we have to change directory name or property name
ICE40: When we add “REINSTALL MODE” property we will get ICE40 but we can
ignore it.
ICE18: It checks empty directory as key path of component that is not listed in
the create folder table
Solution: Empty directory used as a key path for a component in the
installation package must be specified in the CreateFolder table.
ICE27: It validates the sequence table
74 T.UMAMAHESWAR 8686393028
PATCH
Before knowing about patch need to be aware of GUID
GUID IN MSI: Global unique identification having 128 characters that to in a
form of hexadecimal from combo of alphabets & numbers
{2C11R – 5767P – DC653- 421CB}
75 T.UMAMAHESWAR 8686393028
PATCH FILES:
A patch is a small update (with<50 files) here we can add some changes by
adding files & registries
Patch extension is .MSP
Whenever we do change the package code will be changed if it’s a major
change
For minor change package code will not change
PATCH FILES WILL BE USED IN 2 WAYS:
Scanario1: system which is having already .MSI can only need to update .MSP
System+msi just requied .msp
Already installed (msi)=just update (.msp)
Scanario2: system which is not having both MSI &MSP; need to install update
System =. MSI+.MSP
No installation get, need to install (MSI) & update (MSP)
SYNTAX TO INSTALL PATCH:
Msiexec /p “path of the msp”(after installing msi only we can run like this)
Sysntax to install to update patch:
Msiexec /I “msipath “ Patch =”msp path”
Remove command line
Msiexec /x “msipath “ Remove =”product code”
Permissions
To manage access and control we can use permissions. We can set permissions for file,
folders and registries
1.Full Control
2. Modify (Can change something but cannot delete the file)
3.Read
76 T.UMAMAHESWAR 8686393028
4.Write
Types of users:
Administrators
System
Remote users
Authenticated users
Domain users
Types of permissions:
1. Lock permission table
2. IS lock permission table (IS- install shield) it will work on 2011and later
versions
3. CACLS (Change access control list)
4. X CACLS
5. Subnacle.exe
77 T.UMAMAHESWAR 8686393028
For this request owner will provide some files and we need to ask where we
have to copy in package
Standard Actions
In the context of Windows Installer (MSI), Standard actions are predefined
actions provided by the Windows Installer service that perform common
installation tasks. These actions are built into the installer and handle a wide
range of tasks from copying files to the target system to modifying the system
registry.
Custom Actions
Custom actions are actions defined by the package author to perform
specific tasks that are not covered by the standard actions. They provide
flexibility to handle unique installation requirements, such as configuring third-
party software, running scripts, or making specific system changes.
Custom actions Standard actions
Remove folder Already present in msi and which are
running by msi itself
Copy file App search dependency check
Move file Lauch condition
Create Short cut Find related products
Read and write file Remove existing products
Add-in and Plug -in Migrate feature state
Handling fire walls Create shortcut
To change property value Cost initialize
Delete folder while uninstallation Cost finalizes
Kill process Roll Back
Public features
78 T.UMAMAHESWAR 8686393028
Remove folder
80 T.UMAMAHESWAR 8686393028
Batch Script
Integers – Batch supports the whole set of positive and negative integers
Strings – Unlike most programming languages we rarely use (“”) double-
quotes here but we use ‘echo‘ command to print strings
81 T.UMAMAHESWAR 8686393028
Try to avoid spaces when naming batch files, it sometime creates issues when
they are called from other scripts.
Don’t name them after common batch files which are available in the system
such as ping.cmd.
82 T.UMAMAHESWAR 8686393028
S.No Commands & Description
01 DEL
This batch command deletes files and not directories.
Syntax
del [filename]
Example
@echo off
Rem Deletes the file lists.txt in C:\
del C:\lists.txt
02 COPY
This batch command is used for copying files from one location to the other.
Syntax
Copy [source] [destination]
Example
@echo off
cd
Rem Copies lists.txt to the present working directory.
If there is no destination identified , it defaults to the present working directory.
copy c:\lists.txt
Rem The file lists.txt will be copied from C:\ to C:\tp location
copy C:\lists.txt c:\tp
Rem Quotation marks are required if the file name contains spaces
copy “C:\My File.txt”
83 T.UMAMAHESWAR 8686393028
Rem Copies all the files in F drive which have the txt file extension to the
current working directory copy
F:\*.txt
Rem Copies all files from dirA to dirB. Note that directories nested in dirA will not be
copied
copy C:\dirA dirB
03 RD
This batch command removes directories, but the directories need to be empty
before they can be removed.
Syntax
rd [directoryname]
Example
The following example shows the different variants of the rd command.
@echo off
Rem removes the directory called newdir
rd C:\newdir
Rem Removes the directory Dir1 including all the files and subdirectories in it rd /s
Dir1
Rem Removes the directory Dir1 including all the files and subdirectories in it but
asks for a user confirmation first.
rd /q /s Dir1
04 REN
Renames files and directories
Syntax
ren [oldfile/dirname] [newfile/dirname]
Renames the file name from the old file/dir name to the new one.
Example
@echo off
84 T.UMAMAHESWAR 8686393028
ren C:\lists.txt C:\newlists.txt
05 REM
This batch command is used for remarks in batch files, preventing the content of
the remark from being executed.
Syntax
REM remark description
Example
@echo off
REM This is a batch file
06 TASKKILL
This batch command ends one or more tasks.
Syntax
Taskkill /im [taskname]
Example
@echo off
Taskkill /im mspaint.exe
07 XCOPY
This batch command copies files and directories in a more advanced way.
Syntax
Xcopy [source][destination]
Example
Xcopy c:\lists.txt c:\tp\
08 SET
Displays the list of environment variables on the current system.
Set
Example
@echo off
set
MKDIR
Allows you to create a directory.
85 T.UMAMAHESWAR 8686393028
Example:
@echo off
MKDIR C:\Users\StackHowTo\MyFolder
RMDIR
Allows you to delete a directory.
Example:
@echo off
RMDIR C:\Users\StackHowTo\MyFolder
RENAME
This command allows you to rename files.
Example:
@echo off
RENAME example.txt test.txt
REPLACE
This command allows you to replace or overwrite files.
Example:
The following example Update the record.mp3 file in all the folders under C:\
records :
@echo off
REPLACE "C:\tmp\record.mp3" C:\records /s
COMP
This command allows you to compare the contents of two or more files.
Example:
@echo off
86 T.UMAMAHESWAR 8686393028
COMP C:\demo\file1.txt C:\demo\file2.txt
EXIST
This command allows you to check if a file exists.
Example:
@echo off
IF EXIST "filename" (
echo 'File EXIST!'
) ELSE (
echo 'File missing!'
START
This command allows you to start some programs or some commands.
Example:
The following example will start two programs called Notepad and Calculator.
@Echo Off
START notepad.exe
START calc.exe
87 T.UMAMAHESWAR 8686393028
1. Install
2. Uninstall
3. Delete Shortcut
4. Copy file or folder
5. Delete file or folder
6. Create folder
To install application:
If the source contain in same folder we can use below command
“~dp0Mangodb compass 1.39.0win32.X64.msi”
If the source is in another folder we have to use below command
“~dp0Mangodb\abc\Mangodb compass 1.39.0win32.X64.msi” l*v “%windir%\
logs\install.log” /qn
To Uninstall Application:
Msiexec /X “product code” /qn
To delete shortcut:
Del path of the shortcut
del “path of the shortcut “
To Copy file application:
Copy “%cd%\Olympus_Screensaver.scr” %windir% /b /v /y
To Delete file:
Del path of the file or folder
To Create directory:
Mkdir path of the file or folder
To Create Registry:
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /f /v DisableTaskMgr /t
REG_DWORD /d 1
To Remove Registry:
reg delete "HKCU\Some\Registry\Path" /f
88 T.UMAMAHESWAR 8686393028
Batch Commands
Basic batch commands are all case insensitive and can be used to perform a specific set of
instructions:-
DIR – The ‘dir’ command is used to get all the directories, sub-directories, and
files present in the current working directory.
CD – The ‘cd’ command is used to change the current working directory.
VER – The ‘ver’ command tells the version of the user’s Windows.
CLS – The ‘cls’ command is used to clear the screen of the command prompt.
ECHO – The ‘echo’ command is by default ‘on’ but if we turn it off by ‘echo off’
it turns off prompt till the time ‘echo on’ is passed.
@ – The ‘@’ if used before any command hides which command is running.
@ECHO OFF – This commands serves as the start point to any basic batch script
as it hides the prompt with ‘echo off’ and hides ‘echo off’ command with ‘@’.
HELP – This command tells us all about the commands available in the cmd. It
runs only if the cmd is run as an administrator
TO install exe:
ECHO OFF
89 T.UMAMAHESWAR 8686393028
Hostname
91 T.UMAMAHESWAR 8686393028
Fso.createfile”path of the file”
6. copy a folder
Fso.copyfloder”sourcepath” “destination path”
7.Create registry
'WshShell.RegWrite StrHKLM &
"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\
TeamViewer\" &
"NOREMOVE", "1", "REG_DWORD"
8.Delete Registry
'WshShell.RegDelete StrHKLM &”path of the registry”
92 T.UMAMAHESWAR 8686393028
10.To delete shortcut
// JScript.
Shell = new ActiveXObject("WScript.Shell");
FSO = new ActiveXObject("Scripting.FileSystemObject");
DesktopPath = Shell.SpecialFolders("Desktop");
FSO.DeleteFile(DesktopPath + "\\test.lnk")
' VBScript.
Set Shell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
DesktopPath = Shell.SpecialFolders("Desktop")
FSO.DeleteFile DesktopPath & "\test.lnk"
11.Kill process
93 T.UMAMAHESWAR 8686393028
PS
App Deploy Toolkit Install Window
It’s meant to simplify complex installation/uninstallation scripts and improve the installation
success rates. With a few simple lines, you can create an installation bundle (suite), or
perform additional changes on the system.
Configure PSAppDeployToolkit
Once PSAppDeployToolkit has been downloaded, extract the zip file, navigate to Toolkit\
AppDeployToolkit and edit the AppDeployToolkitConfig.xml.
The AppDeployToolkitConfig.xml is the main configuration xml for the script. There, you can
choose the default log location, message icon, banner, logging options, installation
parameters, languages, and more.
94 T.UMAMAHESWAR 8686393028
PSADT Configuration XML
It might seem like a tedious task, but once you configure PSAppDeployToolkit as you need,
you can use the AppDeployToolkitConfig.xml for every script created in the future, not
having to worry about settings each time you create a new script.
95 T.UMAMAHESWAR 8686393028
PowerShell Modules
3. Go into the copied AppDeployToolkit folder and modify the
AppDeployToolkitConfig.xml. Inside the AppDeployToolkitConfig.xml, change the
Toolit_RequireAdmin parameter to False.
96 T.UMAMAHESWAR 8686393028
AppDeployToolkit folder.
And that is it, all the commands should appear in the right pane and should auto-complete
when writing.
PowerShell ISE
Create scripts
Once finished with the above configurations, you are ready to start creating scripts.
In the extracted location, navigate to the Toolkit folder where you will see a folder called
Files.
97 T.UMAMAHESWAR 8686393028
The Files folder is where you will place all of your installation files, either installers like MSI,
MST, MSP, or other configuration files which you can copy later during installation.
The first basic lines that must be edited are your Application Vendor, Application Name,
Application Version and other basic information about the installation. These variables will
appear in the logs, toast notifications or progress box.
Deploy-Application.ps1 script
98 T.UMAMAHESWAR 8686393028
Next, the PSAppDeployToolkit installation logic is composed out of three main actions which
contain three sub-actions for each. The main actions are:
1. Installation
2. Uninstallation
3. Repair
1. Pre-Installation/Pre-Uninstallation/Pre-Repair
2. Installation/Uninstallation/Repair
3. Post-Installation/Post-Uninstallation/Post-Repair
Depending on your requirements, edit the sub-actions you need. In this example, we will
modify only the Installation and Uninstallation main actions.
In the Pre-Installation action, we removed the message that informs us of closing a certain
app or to defer the installation.
In the Post-Installation action, we also removed the message that informs us that the
installation is complete. In the end, the script looked like this:
Deploy-Application.ps1 script
With a line, we have a progress box, an installation sequence and toast notifications for the
user. Next, we moved to the Uninstall actions.
99 T.UMAMAHESWAR 8686393028
In the Pre-Installation section we removed the initial message. Then,in the Uninstallation
section, we uninstalled Orca with the following command line:
Deploy-Application.ps1 script
And that is it, the installation script is now done and can be used in the infrastructure.
Execute scripts
You can call the deployapplication.ps1 directly using powershell, and if you prefer, you could
also call deployapplication.exe which sets the executionpolicy correctly.
The preferred method is via the powershell script directly. For this, open an administrator
command prompt and type the following:
Advanced Installer offers the possibility to create a chained installation of multiple packages,
without needing the support of 3rd party tools.
- 3.9.3
2) Structure of PSADT?
SupportFiles
Show-InstallationWelcome: Displays a welcome message to the user before the installation process
begins.
C:\windows\logs\software\
Install - Execute-MSI -Action 'Install' -Path "MSI name" Transforms "MST name"
1. Restricted: This is the default execution policy. It does not allow any scripts to run,
including scripts that you write yourself.
2. AllSigned: Only scripts signed by a trusted publisher are allowed to run. Scripts that
are downloaded from the internet or written on the local machine must be signed by
a trusted publisher.
3. RemoteSigned: Scripts downloaded from the internet must be signed by a trusted
publisher, but locally-created scripts do not need to be signed.
4. Unrestricted: No restrictions; all scripts can run. This setting can be potentially
dangerous if you run scripts from untrusted sources.
5. Bypass: No restrictions; all scripts can run. However, it bypasses the PowerShell
execution policy for individual commands.
6. Undefined: No execution policy is defined. This typically means that no execution
policy is set, and PowerShell operates in a restricted mode.
You can check the current execution policy on your system by opening PowerShell and
running the command:
Get-ExecutionPolicy
And you can set the execution policy using the Set-ExecutionPolicy cmdlet, for example:
Set-ExecutionPolicy RemoteSigned
Set-Executio
In PowerShell, the Bypass execution policy is one of the options you can set for the script
execution policy. It allows scripts to run without any restrictions, bypassing the PowerShell
execution policy.
When you set the execution policy to Bypass, PowerShell will not enforce any restrictions on
script execution. This means that all scripts, regardless of their origin or whether they are
signed by a trusted publisher, will be allowed to run without prompting or restrictions.
The Bypass execution policy can be useful in certain scenarios where you need to run scripts
that would otherwise be blocked by the execution policy. However, it's important to use this
You can set the Bypass execution policy using the Set-ExecutionPolicy cmdlet, for example:
Remember to consider the security implications before using the Bypass execution policy
and to revert to a more restrictive policy when it's no longer needed.
In PowerShell, a pipeline is a feature that allows you to pass the output of one command (or
cmdlet) as input to another command. It enables you to chain commands together, allowing
for more efficient and concise scripting.
The pipeline operator in PowerShell is represented by the vertical bar character |. You use it
to connect the output of one command to the input of another command. For example:
In this example, the Get-Process cmdlet retrieves a list of all running processes, and the
output (a collection of process objects) is passed through the pipeline to the Where-Object
cmdlet. The Where-Object cmdlet filters the process objects based on the condition { $_.Name
-eq "chrome" }, which checks if the process name is equal to "chrome".
Pipelines are a fundamental concept in PowerShell scripting and are used extensively to
manipulate and process data. They are one of the key features that make PowerShell a
powerful and flexible scripting language.
-Key 'Autodesk_BIM_Glue_Install' `
-ContinueOnError:$true
By using these functions within your PSADT scripts, you can effectively manage user files
and registries during application deployment or removal processes.
In PowerShell App Deployment Toolkit (PSADT), you can use PowerShell cmdlets to get
process names. One common cmdlet for this purpose is Get-Process.
This script retrieves all running processes using Get-Process cmdlet and then iterates through
each process object to extract the process name using the ProcessName property. Finally, it
displays the process names using Write-Host.
You can integrate this code into your PSADT script to get process names as needed. For
example, you might want to check if a specific process is running before proceeding with
certain actions during application deployment or removal.
we should declare Appname, vendor name, app version, author name, script date and
apparchitecture.
Balloon tip notifications are displayed in the system tray automatically at the beginning
and end of the installation. These can be turned off in the XML configuration.
-Recurse when used in deleting folders command will check all the subfolders and it recursively
deletes all files and subfolders located in the target folder, before deleting the target folder itself.
-Force when used in deleting folder/file command will delete the file/folder forcefully.
Uninstall string
Display name (Application Name)
Display version
Source Path (Package)
Installation script path
Un installation script path
Requirements
Dependencies
Supercdense
1.Application model
2.Package model
Open Console
↓
Go to software library
↓
Applications (Right Click)
↓
Create folder-- Only application name(Without Version)
(If already exists ignore it)
↓
If folder is ready existed go and open that folder create application
If You don’t want folder, just go to applications, and right click Create Application
↓
Here
1.Automatically detection information
2.Manually specify application information
↓
Select second one—Manually specify—Click on next
↓
Enter – Application name and with Version
Publisher
Software Version – Click on next
2.DISTIBUTE CONTENT
Open application and click on that → Right Click → Select distribute content → we
can be able to see app name
↓
Click on next → Next
↓
Click on add →Select Distribute points → Select all →Click on OK
↓
Next → Next →Progress
↓
1. Open SCCM console and go to Software library tab at the bottom left corner.
After you browse for MSI file it might sometime give publisher verification warning. Select yes to
proceed.
If you executing a script that will execute and MSI then path should be of script.
Cscript.exe NameofInstallvbsfile.vbs.
In case of MSI it should be MSI command and in case of exe it should be exe along with its parameter
if any.
Cscript.exe NameofUnInstallvbsfile.vbs.
For MSi it should be msi uninstall command and for exe uninstallation command of exe
If you are installing an MSI then using the product code is ideal rule for detection.
If you installing an exe then you can use standard registry that is created by Appdeploy script for
Ashland and Valvoline as shown in below screen.
Operator – One of
Select the operating system for which this application is applicable. And click ok
Now you are ready to deploy your application on the devices for testing.
Again right click on the application and select Deploy
Post this step the deployment will be triggered to the devices and hence it is necessary to verify the
settings.
1.Deployment Tools?
3.What is DP?
5.What is MP in SCCM?
10.What is Collection?
12.What is Co-Management?
13.What is Supersedence?
14.Detection Logic?
3. Navigate to Tools folder. Run IntuneWinAppUtil.exe file with elevated privileges. Command prompt
will appear and enter the required information as below.
Mention the path of the source folder, name of the main setup/packaged file name and then mention
output folder path. Enter ‘N’ for specify catalog folder option.
5. Using 7-Zip app the created. intunewin file can be extracted. Besides content, that file contains a
Detection.xml file that shows the detected information of the installation file.
2. On the Add app blade, select Windows app (Win32) – preview to show the configuration options and
select App package file to open the App package file blade. Upload the intunewin format file.
4. On the Program blade, mention the install and uninstall cmd. Based on the UI for the package use the
below cmd line.
With UI ServiceUI.exe -Process:Explorer.exe Install.exe
Without UI Install.exe
5. Select the install behavior to install the package in System or in user mode.
6. By default, few return codes are configured. In addition to that, please add any customized return
codes in case of requirement.
8. Detection Rules – Select the Rules format to configure the detection rules.
Use Manually configure detection rules to set MSI product code or file path or registry key path.
Use the custom detection script to add any scripts for detection purpose.
10. On the supersedence blade, you can configure as per the requirement. When you supersede an
application, you can specify which app will be updated or replaced. To update an app, disable the
uninstall previous version option. To replace an app, enable the uninstall previous version option.
There is a maximum of 10 updated or replaced apps, including references to other apps. For example,
your app references another app. This other app references other apps, and so on. This scenario
creates a graph of apps. All apps in the graph count toward the maximum value of 10. For more
information, see Add Win32 app supersedence
11. On the scope tag blade, select and add the required scope tags only if required. Because, few
tags are enabled by default.
At this point, you have completed steps to add a Win32 app to Intune.
1. CAB Files:
CAB (Cabinet) files are archive files used to package multiple files into a single
compressed file. They are commonly used in Windows installation packages,
including MSI (Microsoft Installer) packages, to store compressed copies of files that
are to be installed on the target system.
In the context of MSI packages, CAB files contain the actual files to be installed (such
as executables, DLLs, configuration files, etc.) along with any necessary resources like
icons, images, or documentation. These files are typically compressed to reduce their
size and optimize the installation process.
During the installation of an MSI package, the contents of the CAB files are extracted
and copied to the appropriate locations on the target system. This helps streamline
the installation process by reducing the size of the installer package and improving
installation performance.
2. CUB Files:
CUB (Cabinet Update) files, on the other hand, are used in the context of Windows
Installer database validation. A CUB file contains a set of validation rules (in the form
of validation tables) that are used to verify the integrity and correctness of an MSI
package.
In summary, CAB files are used to store compressed files within an MSI package, while CUB
files are used for validating MSI packages against predefined rules to ensure their integrity
and compliance with Windows Installer standards.
Deference between CAB and CUB:
CAB: When you add files in compressed mode cab files will be generate. It will
refer in media table.
CUB: When you validate .msi cub file will be generate.
In application packaging, "per-machine data" and "per-user data" refer to the configuration
settings, files, and registry entries that are specific to either the entire machine or individual
user accounts. Understanding the distinction between these two types of data is crucial for
creating MSI packages and ensuring that applications are installed and configured correctly
for all users on a system.
1. Per-Machine Data:
Per-machine data refers to settings, files, and registry entries that are shared among
all users on a computer. These are typically installed in locations accessible to all
users, such as the Program Files folder or the HKLM (HKEY_LOCAL_MACHINE) registry
hive. Per-machine data is installed during the machine-wide installation process and
is available to all users who log in to the system.
Examples of per-machine data include:
Executable files and shared libraries installed in the Program Files directory.
Registry settings stored under HKEY_LOCAL_MACHINE .
Configuration files installed in machine-wide locations, such as %SystemRoot
%\System32.
2. Per-User Data:
Per-user data refers to settings, files, and registry entries that are specific to
individual user accounts. These are installed in user-specific locations and are only
182 T.UMAMAHESWAR 8686393028
accessible to the user who installed or configured the application. Per-user data is
installed during the user-specific installation process, typically triggered when a user
logs in for the first time or launches the application.
Examples of per-user data include:
User-specific configuration files stored in the user's profile directory
(%APPDATA% or %LOCALAPPDATA% ).
Registry settings stored under HKEY_CURRENT_USER .
User-specific application data stored in user-specific directories.
When creating MSI packages or other deployment packages, it's essential to identify which
data should be installed per-machine and which should be installed per-user based on the
application's requirements and user experience considerations. Properly configuring per-
machine and per-user data ensures that applications are installed and configured correctly
for all users on a system and helps avoid conflicts or issues caused by incorrect installation
settings.
HKLM
HKCC Registries
HKCR
There are a lot of IMTs out there, but the most popular (and widely used) are:
Most of the services from a Windows machine run in the system account -- the account with
the highest privileges.
What is PSEXEC
A tool called PSExec must be used to access the LocalSystem account. PsExec is a command-
line utility for Windows which allows administrators to run programs on local and remote
computers. It’s part of Sysinternals pstools suite built by Mark Russinovich.
A new CMD window should appear. If you type whoami in the new CMD, you should appear
as the NT Authority\System.
For example, if you have a package that places user registry or user files, you always have to
use advertised shortcuts or the Active Setup mechanism. This will ensure that user data will
be applied to all users.
It’s also good to understand that if you want to perform changes in the current user context,
it will be tricky and you will need to use alternative solutions.
One of the key components of ServiceNow is its ticketing system, which allows users to
create, track, and manage service requests, incidents, and other IT-related issues. Here are
some features commonly found in ServiceNow's ticketing tool:
Overall, ServiceNow's ticketing tool is designed to improve IT service delivery and support
by providing a unified platform for managing IT incidents, requests, changes, and assets. It
helps organizations streamline IT operations, enhance service quality, and improve
customer satisfaction.
Generally, application packaging team will deal with
1. Software application packaging request (RITM)(SC TASK)
2.Incedents
3.Software requests
Response Transform
Certainly! To create a Response Transform using InstallShield, follow these steps:
1. Open the Open Transform Wizard:
o In your InstallShield project, navigate to the menu or option that allows you
to create a transform (usually labeled as “Transforms” or “Response
Transforms”).
o Select the option to open the Transform Wizard.
2. Complete Each Panel of the Wizard:
Remember that response transforms allow you to customize an existing installation package
without altering the original package itself. They are particularly useful for creating silent
installations or modifying specific properties during installation12.