You are on page 1of 56

MAHLE Filtersysteme Austria GmbH

Global Software Deployment


St. Michael 19
A-9143 St. Michael ob Bleiburg, Austria

Hotline: +43 (4235) 5050 - 2700

Software packaging guideline

Version: April, 28th 2017

Stefan Schuh, Stefan Barth, Elmar Brandstätter, Kapsch BusinessCom AG


MIG-IT – software packaging guideline for Microsoft SCCM

Table of Contents
1 Introduction ....................................................................................... 4
1.1 Package-Categories ..................................................................................... 4
1.2 Application List ............................................................................................. 4
1.3 Windows Installer ......................................................................................... 4
1.4 Packaging Environment ............................................................................... 4
1.5 Preconditions of the Application ................................................................... 4
2 Software Packaging .......................................................................... 6
2.1 Ordering Process for Software Packaging ................................................... 6
2.2 Naming Conventions .................................................................................... 6
2.3 Preconditions ............................................................................................. 11
2.4 Desktop Experience (Start Menu, Desktop icon) ........................................ 11
2.5 Terminal Server Support ............................................................................ 11
2.6 Configuration of the Software Package ...................................................... 11
2.7 Paths .......................................................................................................... 12
2.8 Permissions ................................................................................................ 12
2.9 Configuration Settings ................................................................................ 12
2.10 Wrapper ..................................................................................................... 12
3 Quality Assurance ........................................................................... 22
3.1 Stage 1: Testing of unattended Installation ................................................ 22
3.2 Stage 2: Test via SCCM Deployment ......................................................... 22
3.3 Stage 3: Test Application Functionality ...................................................... 22
3.4 Change (Transform) Packages to Application ............................................ 22
3.5 Documentation ........................................................................................... 24
4 Updates .......................................................................................... 25
4.1 Functional Updates for Windows 7 ............................................................. 25
4.2 Functional Updates for Microsoft Applications ........................................... 25
4.3 Functional updates for non-Microsoft Applications ..................................... 25
4.4 Critical ........................................................................................................ 25
5 Test environment ............................................................................ 26
5.1 Test clients ................................................................................................. 26
5.2 Test processes ........................................................................................... 26
5.3 Approval processes - Package ................................................................... 28
5.4 Approval processes - Application ............................................................... 28
5.5 SCCM Standard-Object-Settings................................................................ 29
6 Go live............................................................................................. 48
6.1 Make online ................................................................................................ 48
6.2 Rollout ........................................................................................................ 48
7 Scripting .......................................................................................... 49
7.1 MSI, MSP ................................................................................................... 49
7.2 Folder permissions for Everyone ................................................................ 49
7.3 Use the %PCLANG% Variable ................................................................... 49
7.4 InstallShield Response Files ...................................................................... 49
7.5 Create Links with VBS................................................................................ 49
7.6 Regwriteallusers.exe .................................................................................. 49
7.7 Certificates (certmgr.exe) ........................................................................... 49
7.8 PowerShell with -Bypass ............................................................................ 49
8 Task Sequence SW installation....................................................... 50

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 2 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

9 Windows 10 Upgrades .................................................................... 51


9.1 Upgrade Definitions .................................................................................... 51
9.2 Deployment ................................................................................................ 52
10 Terms and abbreviations ................................................................. 56
ABBILDUNGSVERZEICHNIS
Figure 2-1: Package Wrapper ............................................................................................................... 11
Figure 2-2: File- and folder structure of software packages .................................................................. 13
Figure 2-5: ProgressBar ........................................................................................................................ 20
Figure 2-4: GUI Display ......................................................................................................................... 21
Figure 2-5: Extract from a log file .......................................................................................................... 21

TABELLENVERZEICHNIS
Table 2-1: naming convention for package sources ............................................................................... 6
Table 2-3: Naming convention for SCCM-collections ............................................................................. 7
Table 2-4: Naming convention for AD-groups ......................................................................................... 8
Table 2-5, Naming convention for SW-Applications ................................................................................ 8
Table 2-5, Naming convention for SW-Packages ................................................................................... 9
Tabelle 2-5: ISO 3166 Country Codes .................................................................................................... 9
Table 2-7: Naming convention for SCCM-programs ............................................................................. 10
Table 2-8: Files contained by the wrapper ............................................................................................ 13
Table 2-9: Contents of the folder _TOOLS........................................................................................... 13
Table 2-10: Description parameter #install.ini ....................................................................................... 17
Table 2-12: Example calls ..................................................................................................................... 20
Table 5-1: Terms and abbreviations ...................................................................................................... 56

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 3 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

1 Introduction
This document describes how to package Software for unattended deployment to reach a maximum
success rate in software rollout. This Guideline is bindig to reduce the operating expense.

1.1 Package-Categories
The baseline for the Engineered Standard Client (ESC) is the Core Load. The Core Load is a software
bundle that consist of the Operating System (Windows 7 / Windows 10) and a couple of GL Software-
Packages

GL Packages are a bundle of operating system and Multilanguage core software packages or
packages which are available in all*1 supported global languages or packages which are available only
in English and one or more (but not all) local language(s).

1.2 Application List


The central application list is available in Lotus Notes.

1.3 Windows Installer


The Microsoft Windows Installer is an installation and configuration service based on Windows.

For installation of msi packages it is necessary to use version 5.0 or higher. The actual used version at
MAHLE is 5.0.

1.4 Packaging Environment


To ensure a safe separation between testing and productive environment there will be separate
testing-equipment. This is established through appropriate authorization for the packaging team to this
separate environment.

A user account can be ordered from the Service Center for Software Distribution (GL-SW-
DEPLOYMENT) at St. Michael /Austria.

For testing the SCCM-collections beginning with „TEST-<COUNTRYCODE>“ must be used. The exact
naming convention is described at section 2.2.3.

New packages are stored in the SCCM-folder „<COUNTRYCODE>-TESTPACKAGES“ until their state
is changed to productive.

Packages from this area are not for productive use and may only be released after passing the quality
measures described in Chapter 3.

The packaging needs to be done on the base-client. The base-client must be updated to an actual
version in appropriate intervals because it has to represent an actual operating client.

This base-client can be physical or virtual. The base-client is based on the ESC CoreLoad.

See also to section 5 (Test environment)…

1.5 Preconditions of the Application


The software must have the ability to be installed automatically. Please refer to the documentation of
the manufacturer.

The preferred technology for installing software packages is MSI format.

A repackaging of software, which means an unpacking and new packaging of the original
manufacturer-package with appropriate tools is only allowed in exceptional cases, eg. if there is no
possibility of an unattended installation.

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 4 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

If such a case happens a special decision-board must be consulted. The announcement of a


repacking is made by the release-builder, the meeting of the board has to be set up by the director of
GL-SW-DEPLOYMENT. Communications flows are done by mail. The service level for the decision is
best effort.

The following roles are members of the board:


 Package requester / application manager
 Director GL-SW-DEPLOYMENT
 SCCM-Admin
 Release Builder (optional)

In case of escalation please contact the service owner.

The following persons are nominated:

Anyway, if there is a decision for repackaging of software the tool Admin Studio must be used.

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 5 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

2 Software Packaging
2.1 Ordering Process for Software Packaging
The ordering for software-packaging is done in most cases by the application responsible person.

The correct form of ordering is done by transferring a completely filled out “software definition
document“. A Microsoft Word master-form is available.

2.2 Naming Conventions


The names of msi-packages and exe-files stay as given by the manufacturer. The versioning is done
by the directory-name as describes in the following chapters.

2.2.1 Source Directory


The following central file-share is available for the source files:
\\ITC.global.mahle\DSLSOURCE

The share contains the following directory structure:


\local and \global

Among these folders the individual sites are located. Within these sites the source-files are stored
according to the naming convention.

Examples for these shares are: \\itc.global.mahle\dsl\global\ and \\itc.global.mahle\dsl\local

The folder containing the sources must match the following convention. Spaces are not allowed.

Sequence Parameter Value Example


1 Country-Code GL for the Global Site GL
2 Separator “_” _
3 Category <0-1>, 0 = CoreLoad, 1 = software package 1
4 Separator “_” _
5 Application <name> Microsoft
Manufacturer
6 Separator “_” _
7 Application Name <name> Office
8 Separator “_” _
9 Application <SW-Version> 2010
Version
10 Separator “_” _
11 Language “MUI” for GL or YY packages, “<code>” for MUI
XX packages. Code is the three-letter ISO
639-2 code
12 Separator “_” _
(optional)
13 Package Version*1 <Package-Version>, vierstellig, beginnend 0001
mit 0001
Table 1-1: naming convention for package sources

Annotation:
*1: To keep the naming convention consistent, the package version is also available in the
source directory.

Examples:
GL_0_Adobe_AcrobatReader_9.3.0_MUI_0001
GL_1_Microsoft_Project_2010_MUI_0001
GL_1_Sun_JAVA_6u21_MUI_0001

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 6 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

2.2.2 Software Package Directory (DSL)


Software packages are store in the „Definitive Software Library (DSL)”. The following file-share is
available:
\\ITC.global.mahle\DSL

The share contains the following directory structure:


\local and \global

Among these folders the individual sites are located. Within these sites the software-packages are
stored according to the naming convention.

Examples for these shares are: \\itc.global.mahle\dsl\global\ and \\itc.global.mahle\dsl\local

The naming convention is already described above.

2.2.3 SCCM Collections


SCCM collection are used as queries to assign software packages to one or more computers.

The following naming convention must be used:


Sequence Parameter Value Example
1 Country-Code GL for the Global Site. GL
2 Separator “_” _
3 Application <name> Adobe
Manufacturer
4 Separator “_” _
5 Application Name <name> Reader
6 Separator “_” _
7 Application <SW-Version> 10.0.1
Version
8 Separator “_” _
9 Language “MUI” for GL packages, “<code>” for XX MUI
packages. Code is the three-letter ISO 639-2
code
10 Separator “_” _
11 SCCM-Program sccm program command (INSTALL, INSTALL
UNINSTALL, REPAIR)
Table 1-2: Naming convention for SCCM-collections

Examples:
GL_AdobeSystems_Reader_10.0.1_DEU_INSTALL
GL_Sun_Java_6u21_MUI_UNINSTALL

Switching a collection to productive state is done by inserting the attribute “online” to the comment
field in the collection-properties.

2.2.4 Collections Comments


All productive collection should have the following comment sheme
Sequence Parameter Value Example Purpose
1 Productive Online online Required
2 Region CountryCode GL Optional
3 Prio 1-99999 1 Optional
4 Comment Comment Only for Windows 10 Clients Optional

Examples:
ONLINE;GL;1;Only for Windows 10 Clients;
ONLINE ;;;;
ONLINE ;DE ;;

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 7 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

2.2.5 Active Directory Groups


Based on the SCCM Collections the necessary active directory groups are created automatically by
the operations manager according to the following naming convention:

Sequence Parameter Value Example


1 AD Group Type Type of the AD Group, Always Global Group GG
2 Separator “_” _
3 Application <name> Adobe
Manufacturer
4 Separator “_” _
5 Application Name <name> Reader
6 Separator “_” _
7 Application <SW-Version> 10.0.1
Version
8 Separator “_” _
9 Language “MUI” for GL or YY packages, “<code>” for XX MUI
packages. Code is the three-letter ISO 639-2
code
10 Separator “_” _
11 SCCM-Program sccm program command (INSTALL, INSTALL
UNINSTALL)
Table 1-3: Naming convention for AD-groups

Examples:
GG_AdobeSystems_Reader_10.0.1_DEU_INSTALL
GG_Sun_Java_6u21_MUI_UNINSTALL

In addition to the creation the name of the collection will be written to the group description-field.

2.2.6 SCCM Applications


Today, the new software standard is applications. Packages are only used in coordination with the GL-
SW-DEPLOYMEN Team!

For detailed Applications-Settings, please take a look to section 5.5.2. The full naming convention for
Applications results as follows:

“ <manufacturer> <productname> <majorproductversion> <NLS-languagecode>


<package_version>“

Sequence Parameter Value Example


1 Application <name> Oracle
Manufacturer
2 Application Name <name> JAVA
3 Application <SW-Version> 9XX
Version
4 Language MUI / ENG MUI
Table 1-4, Naming convention for SW-Applications

Example:
Adobe AcrobatReader 9.3.0 MUI
Microsoft Project 2016 MUI
Gupta PMV 2.1 ENG
Autodesk AutocadLT 2010 ENG

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 8 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

2.2.7 SCCM Packages


Only Applications will be created. Packages are only used in coordination with the GL-SW-
DEPLOYMEN Team!

As a prefix to the manufacturer the 2-digit country code and an hyphen (“-“) as separator must be
inserted manually, eg. „EU - Microsoft“. This results in the full package name „EU - Microsoft Office
2010 MUI“.

The full naming convention results as follows:

GL - <manufacturer> <productname> <majorproductversion> <NLS-languagecode>


<package_version>“

Sequence Parameter Value Example


1 Country-Code GL for the Global Site. GL
2 Application <name> Sun
Manufacturer
3 Application Name <name> JAVA
4 Application <SW-Version> 6uXX
Version
5 Language “MUI” for GL or YY packages, “<code>” for XX MUI
packages. Code is the three-letter ISO 639-2
code
6 Plant-Code MAHLE 4-letter Plant Code <NONE>
(optional)
Table 1-5, Naming convention for SW-Packages

Example:
GL - Microsoft Windows 7SP1 MUI
GL - Adobe AcrobatReader 9.3.0 MUI
GL - Microsoft Project 2010 MUI

Country-Codes:
ISO 3166 Code Country
AT Austria
CZ Czechia
DE Germany
GB Great Britain
FR France
CH Schwitzerland
HU Hungry
IT Italia
NL Netherlands
PL Poland
PT Portuguese
RU Romania
RU Russian
SK Slowakia
ES Spain
TR Turkey
GL Global (used for global packages)
Tabelle 1-6: ISO 3166 Country Codes

A full list of the country codes is available at


http://www.iso.org/iso/english_country_names_and_code_elements

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 9 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

2.2.7.1 Changes to existing SCCM Packages


When packages with a missing item (e.g.: .ini file is missing) are detected after initial rollout or if the
package however has to be corrected – the package must not be recreated. The correction can be
done using a separate temporary software package.

This has to be done as follow:

1. Create a temporary SW-Package with the missing or corrected files.


2. Create a temporary Collection, a temporary Deployment and SCCM-Program
3. Deploy the temporary SW-Packages
4. Edit the existing SW-Package (integrate or correct / missing Files)
5. Delete the temporary SW-Package, Collection, Program and Deployment

The naming convention for temporary SW-Packages is the same as for standard packages but they
have to be located at the “Temp” directory.

The naming convention for temporary Collections is the same as for standard Collections but they
have to be located at the “+ Deployment (Admins)” collection.

The naming convention for temporary SCCM-Programs and Deployments as follow:

„<Country-Code>_<Command>_UP_<Application Manufacturer>_<Application
Name>_<Application Version>“

Example:
GL_INSTALL_UP_S.A.X._MasterLayout_v4
GL_INSTALL_UP_IBM_INOTES_8.5.2

2.2.8 SCCM Programs


A software package can contain more than one SCCM-programs. When creating programs in SCCM
the following naming convention must be used:

Sequence Parameter Value Example


1 Country-Code GL for the Global Site. GL
2 Separator “_” _
3 Command ”INSTALL”, “UNINSTALL” INSTALL
4 Separator “_” _
5 Task Sequence ”TS” TS
(optional)
6 Separator “_” _
(optional)
7 Application <name> S.A.X.
Manufacturer
8 Separator “_” _
9 Application Name <name> MasterLayout
10 Separator “_” _
11 Application <SW-Version> v4
Version
Table 1-7: Naming convention for SCCM-programs

Examples:
GL_INSTALL_S.A.X._MasterLayout_v4
GL_UNINSTALL_Adobe_Reader_9.3.3

2.2.9 MST
To map the individual requirements of different business areas, these adjustments are implemented in
a transform (MST file).

The naming of the MST-Files matches the naming convention described in chapter 2.2.1.

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 10 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

2.2.10 Deployment
Deployment names are automatically generated from program-name and collection-name.

2.3 Preconditions
It is possible to install a software package depending on the fulfillment of certain conditions

Possible conditions are:

 Hardware requirements
- Required disk space
- Minimum requirements for RAM
- CPU speed

 Software requirements
- Operating system version / service pack level
- Domainmembership
- Dependencies on other software packages
- Checking of certain registry-values
- Checking of certain WMI-values

It is the responsibility of the release builder to decide which settings are useful. The application
manager can note special requirements in the warrant of apprehension (Software profile).

2.4 Desktop Experience (Start Menu, Desktop icon)


Start menu and desktop shortcuts remain original. Variations are noted in the software definition
document.

2.5 Terminal Server Support


The installation on the terminal servers must only be verified if there is a separate request. The
Terminal Server-specific deviations / adjustments need to be separately planned, documented and
tested. Maybe a manual installation will be more efficient, this will also be checked.

I.e. Software is generally packaged without considering the usage on terminal servers.

2.6 Configuration of the Software Package


Scheme of the package-configuration:

Wrapper

Pre-Check

Pre-Processing (if necessary)

Original source Modifications


(MST)

PostProcessing and Status

Figure 1-1: Package Wrapper

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 11 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

Pre-Check:
In this phase, the open processes are reviewed, which must be terminated. If a process is defined in
the #install.ini, this is ended.

Pre-Processing (if necessary):


In this phase, the progress bar displayed to the user. Mouse and keyboard are locked if necessary.

Original Source:
The original sources of the application to install.

Modifications (MST):
This section contains the modifications that are needed to do an unattended installation of the
software package. Additional settings can be eg. Companyname, …

Post-Processing and Status:


In this phase the registry-values for wrapper installation are written and the package status is sent
back to SCCM.

2.7 Paths
Installation target paths or parts of installation target paths where a system side variable exists, must
be accessed via this variable. The package should not contain any explicit server- or hostnames.

2.8 Permissions
Basically, the installed software must be able to run under user privileges. The setting of different than
default-permissions for file-, folder- or registry keys permissions must be considered in the package.
The aim should be to supplement the existing default permissions to that minimum amount of ACL
entries that are necessary for the functioning of the application.

2.9 Configuration Settings


Changing settings via active directory group policies is the preferred method and must be done in this
way if possible.

This should be done as follows:


 ESOT-AD creates the policy envelope with the basic settings that are valid for all ESC-clients.
 For efficient support of the ESC-Client it would make sense to nominate a separate support
team. This team („ESOT-Client“) fills up the Policy envelope with the needed settings based
on the respective location.
 ESOT-Client releases the finished policy – the team should have the necessary permissions
für policy release

2.10 Wrapper
This section describes the use of the package-wrapper. A wrapper covers the real installation of a
software product. The software installation will be addressed only through the wrapper and not directly
by the mechanisms included in the software for automated installation of the product. By use of the
wrapper all packages can be addressed immediately. The wrapper was written in VBScript and meets
the following requirements:

 Installation of software-packages
 Removal of software-packages
 Repairing of software-packages
 Continuous file- and registry-based logging
 Single package for 32bit and 64bit operating systems

An exception to this rule is not intended.

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 12 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

2.10.1 Wrapper Description


Wrapper Needs 6 Files:
Datei Funktion
#install.ini This file includes the package information
#uninstall.ini This file includes the package information for uninstall process
_uninstall.bat Package removal call
_uninstall_x86.bat Package removal call to run only on 32bit operating systems
_uninstall_amd64.bat Package removal call to run only on 64bit operating systems
_install_x86.bat Installation call for packages to run only on 32bit operating systems
_install_amd64.bat Installation call for packages to run only on 64bit operating systems
_install.bat Installation call for packages to run on all operating systems which
means 32bit and 64bit operating systems.
_SW_silent.vbs This file is used by the wrapper for installation, removal and reinstallation
Folder _Tools Contains several tools for software deployment
Folder CONFIG Contains the configuration files (MST)
Folder Software Contains the software sources
Table 1-8: Files contained by the wrapper

The folder „Software“ contains the source-files of the Application.

Figure 1-2: File- and folder structure of software packages

2.10.2 _TOOLS
The folder contains several tools for software deployment.

Program name Function


ProcessListGUIV3.exe Shows the GUI
ProgressBar.exe Shows the user the running installation (Progressbar)
regwriteallusers.exe Writes registry-values to the default user and to any user ever logged on
to the computer.
Usage: regwriteallusers.exe <REGFILE from HKCU>.reg
Company.gif Company Logo
Table 1-9: Contents of the folder _TOOLS

2.10.3 #install.ini
The file #install.ini contains the information about the package. The basic parameters of the package
are configured here.

Example-Settings:

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 13 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

[GLOBAL]
SiteCode = ITC
ApplicationManufacturer = Kapsch
ApplicationName = Wrapper
ApplicationVersion = 8.2
ApplicationLanguage = MUI
ApplicationRevision = 0001
PackageAuthor = Kapsch

[FILES]
strFile = _install.bat
strFilex86 = _install_x86.bat
strFileamd64 = _install_amd64.bat
strUnFile = _uninstall.bat
strUnFilex86 = _uninstall_x86.bat
strUnFileamd64 = _uninstall_amd64.bat

[LOGGING]
CheckRegistryReRun = 0
MSILogging = 0
strPackageInfoRegistryPath = HKLM\SOFTWARE\_SWDeploy\
CM_HWInventory = 0
LogPath = C:\Logs
Successcodes = 0
SuccessCodesReboot = 3010
SuccessCodesUninst = 0
SuccessCodesUninstReboot = 3010

[RegCheck]
RegPath =
RegValue =
SearchString =
QuitSetup =
ShowUserMessage =

[CHECKPROCESS]
Process=
TimeOut=

[KILLPROCESS]
NoListGUIProcess=

[KILLPROCESSFULLTEXT]
WINWORD.EXE=Microsoft Word

[REBOOT]
ShowRebootNotification=0
RebootNotificationDeferTime=5400
RebootDeadline=16200
RebootDialogTimeWithoutHide=1800
AutomaticRebootIfNoUserIsLoggedOn=0

[GUI]
LanguageVariableName=0
BlockKeyBoardandMouse=0
CountdownActive=0
Countdown=3600
AcceptButton=0
ShowGUIAllways=0
Hidden=0
ShowEndMessage=0
ShowProgressBarIfKILLPROCESSFULLTEXTprocessRun=1
HideDesktopandStartmenu=0
KillProcessDuringExecution=1
DeferCount=3
DeferTimeDays=0
CloseButton=Start Installation
DeferButtonText=Postpone
HeaderColour=0xffffff
LogoPosition=right

[GUIAnnouncementMessages]
text=%ApplicationManufacturer% %ApplicationName% %ApplicationVersion%
text=Installation will be performed on you device.
text=
text=
text=The following programs must be closed before the installation can proceed.

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 14 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

text=
text=Please save your work, close the programs, and then continue.
text=Alternatively, save your work and click the Start Button
text=
text=
text=If you have some further questions please contact the Helpdesk
text=

[GUIENDMESSAGES]
text=Installation completed!
text=If you have some further questions please contact the Helpdesk
text=
text=Your IT-Team

[GUIAnnouncementMessages_0407]
text=%ApplicationManufacturer% %ApplicationName% %ApplicationVersion%
text=wird auf Ihrem Computer installiert
text=
text=
text=Nach dem Sie die untenstehenden Anwendungen beendet haben, wird dieses Fenster
text=automatisch geschlossen und %ApplicationManufacturer% %ApplicationName%
%ApplicationVersion% installiert.
text=
text=
text=Wenn der Countdown rechts unten zu Ende ist werden die untenstehenden Anwendungen
text=automatisch beendet.
text=
text=Sollten Sie Fragen zur Installation haben wenden Sie sich bitte an Ihr IT-Team
text=
text=Danke für ihre Mitarbeit

[GUIENDMESSAGES_0407]
text=Installation wurde beendet!
text=
text=Sollte während der Installation ein Fehler aufgetreten sein,
text=wenden Sie sich bitte an Ihren Helpdesk
text=
text=Danke für ihre Mitarbeit
text=Ihr IT-Team
text=

[ShowUserMessageText]
text=
test=Regcheck Key isset
text=-----------------------------------------------------------------------------------------
---
test=English:
test=Regcheck Key isset

[GUIREBOOTMESSAGES]
text=In order to complete the update of your system it
text=needs to be restarted.
text=
text=Do you want to restart now?

[GUIREBOOTMESSAGES_0407]
text=Sie müssen den Computer neu starten, damit die Aktualisierung
text=Ihres Systems übernommen werden.
text=
text=Soll der Computer jetzt neu gestartet werden?

[GUIREBOOTMESSAGESBtn]
Button1=Reboot Now
Button2=Reboot Later
Button1_0407=Jetzt Neustarten
Button2_0407=Später Neustarten

Parameter Explanation
SECTION GLOBAL
SiteCode SiteCode of the SCCM Site the package will be deployed
ApplicationManufacturer Manufacturer name of the application
ApplicationName Application name
ApplicationVersion Version of the application
ApplicationLanguage Application language
ApplicationRevision Package revision

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 15 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

PackageAuthor Release Builder

SECTION FILES
strFile Architecture-independent execution of commands
strFilex86 Execution of commands for 32bit operating systems
strFileamd64 Execution of commands for 64bit operating systems
strUnFile Execution of commands for package removal

SECTION LOGGING
CheckRegistryReRun Activate the Registry Logging on / off (1 / 0)
strPackageInfoRegistryPath Logging path for registry
LogPath This folder contains the logging data for software packages
Successcodes Each command line in the files under strFile, strFilex86 and
strFileamd64 sends back an error code. This error code indicates
whether the execution was successful or not. The parameter
success code indicates which error codes should be interpreted
as successful.
SuccessCodesReboot The parameter SuccessCodesReboot indicates which error codes
should be interpreted as successful reboot pending
SuccessCodesUninst The parameter „SuccesscodesUninst” indicates which error codes
should be interpreted as successful. This applies to uninstallation
routines.
SuccessCodesUninstReboot The parameter „ SuccessCodesUninstReboot” indicates which
error codes should be interpreted as successful reboot pending.
This applies to uninstallation routines.

SECTION RegCheck
RegPath Define an additional Registry Path, this will be checked before the
Software installation starts
RegValue The specific value in the RegPath
SearchString String for which will be search in the RegValue
QuitSetup Set if the setup should aborted if the SearchString was found (0
not abort / 1 abort)
ShowUserMessage Show a message to user if the SearchString was found (1 show
Message / 0 not show a message) – Message can be defined by
the [ShowUserMessageText] Section

SECTION CHECKPROCESS
Process Some programs start after running a second process that needs
to be waited for not to run in an error with the next command.
Here, this process can be entered.
TimeOut After this time the second process will be ended if it hasn’t
finished.

SECTION KILLPROCESS
Process These processes are ended without user interaction before
installation begins.

SECTION KILLPROCESSFULLTEXT
Process These processes will be shown to the user before the installation
starts and will be ended after a special timeout (countdown in the
section below). A comma is used as process separator.

SECTION GUI
BlockKeyboardandMouse Mouse and keyboard can be blocked by entering the parameter
„1“ in this section..
CountDownActive If active the processes defined in the
„KILLPROCESSFULLTEXT“ section are ended automatically
after the countdown. Then the installation starts.
Countdown Time until the installation begins.

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 16 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

AcceptButton Define to display a checkbox before installation which the user


has to confirm.
ShowGUIAllways Define if the GUI always should be shown or only if a process is
runnig defined in the „KILLPROCESSFULLTEXT“ section.
Hidden The installation process is running in hidden mode by entering the
parameter „1“ in this section
ShowEndMessage If active an Endmessage was shown after the installation
complete
ShowProgressBarandEndmessag If a defined process in [KILLPROCESSFULLTEXT] is started, the
eIfKILLPROCESSFULLTEXTproc progressbar will be shown. If not the, the setup will run in hidden
essRun mode
HideDesktopandStartmenu Desktop and Start Menu can be hide during the installation
process
KillProcessDuringExecution Blocks the process which is defined in
[KILLPROCESSFULLTEXT] Section during the setup.
DeferCount Enable the option to defer the installation for the user
0 = disabled
[1-9] = Count of possible deferments
CloseButton This text is shown at the „Close“ button in the GUI.
DeferButtonText This text is shown at the „Defer“ button in the GUI, if DeferCount
is enabled

SECTION GUIAnnouncementMessages
Text This text is shown when a process defined under the „Process“
section is started.

SECTION GUIENDMESSAGES
Text This text is shown when the installation completes and
“ShowEndMessage“ section is set to “1”

SECTION ShowUserMessageText
Text This text is shown when the RegistryKey define in [RegCheck]
Section is set and ShowUserMessage isset to 1
Table 1-10: Description parameter #install.ini

2.10.4 #uninstall.ini
The file #install.ini contains the information about the package for uninstall process. The basic
parameters of the package are configured here.

Example-Settings:

[GLOBAL]
SiteCode = ITC
ApplicationManufacturer = Kapsch
ApplicationName = Wrapper
ApplicationVersion = 8.2
ApplicationLanguage = MUI
ApplicationRevision = 0001
PackageAuthor = Kapsch

[FILES]
strFile = _install.bat
strFilex86 = _install_x86.bat
strFileamd64 = _install_amd64.bat
strUnFile = _uninstall.bat
strUnFilex86 = _uninstall_x86.bat
strUnFileamd64 = _uninstall_amd64.bat

[LOGGING]
CheckRegistryReRun = 0
MSILogging = 0
strPackageInfoRegistryPath = HKLM\SOFTWARE\_SWDeploy\
CM_HWInventory = 0
LogPath = C:\Logs
Successcodes = 0

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 17 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

SuccessCodesReboot = 3010
SuccessCodesUninst = 0
SuccessCodesUninstReboot = 3010

[RegCheck]
RegPath =
RegValue =
SearchString =
QuitSetup =
ShowUserMessage =

[CHECKPROCESS]
Process=
TimeOut=

[KILLPROCESS]
NoListGUIProcess=

[KILLPROCESSFULLTEXT]
WINWORD.EXE=Microsoft Word

[REBOOT]
ShowRebootNotification=0
RebootNotificationDeferTime=5400
RebootDeadline=16200
RebootDialogTimeWithoutHide=1800
AutomaticRebootIfNoUserIsLoggedOn=0

[GUI]
LanguageVariableName=0
BlockKeyBoardandMouse=0
CountdownActive=1
Countdown=6000
AcceptButton=0
ShowGUIAllways=0
Hidden=0
ShowEndMessage=0
ShowProgressBarIfKILLPROCESSFULLTEXTprocessRun=1
HideDesktopandStartmenu=0
KillProcessDuringExecution=1
DeferCount=0
DeferTimeDays=0
CloseButton=Start Uninstallation
DeferButtonText=Postpone
HeaderColour=0xffffff
LogoPosition=right

[GUIAnnouncementMessages]
text=
text=Nach dem Sie unten angeführte Anwendungen beendet haben, wird dieses Fenster
Text=automatisch geschlossen und %ApplicationManufacturer% %ApplicationName%
%ApplicationVersion% deinstalliert.
text=
text=
text=Wenn der Countdown rechts unten zu Ende ist werden die Anwendungen gegebenfalls
text=automatisch beendet.
text=
text=Danke für ihre Mitarbeit.
text= Ihr IT-Team

[GUIENDMESSAGES]
text=Deinstallation wurde beendet!
text=Falls die Deinstallation nicht funktioniert hat wenden Sie sich bitte
text=an den Helpdesk
text=
text=Danke für ihre Mitarbeit
text=Ihr IT-Team
text=
text=Installation completed!
text=If the Software don't work call your heldesk
text=
text=Your IT-Team

[GUIENDMESSAGES_0407]
text=Installation wurde beendet!
text=
text=Sollte während der Installation ein Fehler aufgetreten sein,
text=wenden Sie sich bitte an Ihren Helpdesk

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 18 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

text=
text=Danke für ihre Mitarbeit
text=Ihr IT-Team
text=

[ShowUserMessageText]
text=
test=Regcheck Key isset
text=-----------------------------------------------------------------------------------------
---
test=English:
test=Regcheck Key isset

[GUIREBOOTMESSAGES]
text=In order to complete the update of your system it
text=needs to be restarted.
text=
text=Do you want to restart now?

[GUIREBOOTMESSAGES_0407]
text=Sie müssen den Computer neu starten, damit die Aktualisierung
text=Ihres Systems übernommen werden.
text=
text=Soll der Computer jetzt neu gestartet werden?

[GUIREBOOTMESSAGESBtn]
Button1=Reboot Now
Button2=Reboot Later
Button1_0407=Jetzt Neustarten
Button2_0407=Später Neustarten

2.10.5 _install.bat
This file contains the instructions for installing architecture-independent software packages. The
wrapper parses the file line by line and checks the error codes of the executed commands. If the found
error code matches a corresponding success code the next line is executed. This file should, if
possible, not include any absolute paths.

Example:
%~dp0software\jre-6u31-windows-i586-s.exe /s ADDLOCAL=jrecore IEXPLORER=1
MOZILLA=1 JAVAUPDATE=0 REBOOT=Suppress
REG ADD "HKLM\SOFTWARE\JavaSoft\Java Update\Policy" /v EnableJavaUpdate /t

2.10.6 _install_amd64.bat
This file contains the instructions for installing 64-bit software packages. The wrapper parses the file
line by line and checks the error codes of the executed commands. If the found error code matches a
corresponding success code the next line is executed. This file should, if possible, not include any
absolute paths.

Example:
%~dp0software\jre-6u31-windows-i64.exe /s ADDLOCAL=jrecore IEXPLORER=1
MOZILLA=1 JAVAUPDATE=0 REBOOT=Suppress
REG ADD "HKLM\SOFTWARE\JavaSoft\Java Update\Policy" /v EnableJavaUpdate /t

2.10.7 _install_x86.bat
This file contains the instructions for installing 32-bit software packages. The wrapper parses the file
line by line and checks the error codes of the executed commands. If the found error code matches a
corresponding success code the next line is executed. This file should, if possible, not include any
absolute paths.

Example:
%~dp0software\jre-6u31-windows-i586-s.exe /s ADDLOCAL=jrecore IEXPLORER=1
MOZILLA=1 JAVAUPDATE=0 REBOOT=Suppress
REG ADD "HKLM\SOFTWARE\JavaSoft\Java Update\Policy" /v EnableJavaUpdate /t

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 19 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

2.10.8 _uninstall.bat
This file contains the instructions for uninstalling software packages. There is no architecture
dependence. This file should, if possible, not include any absolute paths.

Example:
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83216021FF} /qb-!

2.10.9 _uninstall_amdx64.bat
This file contains the instructions for uninstalling 64-bit software packages.

Example:
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83216021FF} /qb-!

2.10.10 _uninstall_x86.bat
This file contains the instructions for uninstalling 32-bit software packages.

Example:
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83216021FF} /qb-!

2.10.11 _SW_Silent.vbs
This file represents the wrapper himself. This file contains the logic for logging and parsing the batch-
files. This file cannot be changed.

2.10.12 Wrapper Call


The wrapper is addressed via the file _SW_Silent.vbs. The following arguments can be transferred to
the VBScript:
 INSTALL, UNINSTALL und REINSTALL

Example:
Aufruf Erwartetes Ergebnis
_SW_Silent.vbs Installs the software package
_SW_Silent.vbs INSTALL Installs the software package
_SW_Silent.vbs UNINSTALL #uninstall.ini Removes the software package
_SW_Silent.vbs REINSTALL Removes the software package and does a new install
_SW_Silent.vbs DEF Creates a definition file in the \CONFIG folder which
can be used to import into SCCM.
_SW_Silent.vbs DEFINITION Creates a definition file in the \CONFIG folder which
can be used to import into SCCM.
_SW_Silent.vbs DisplayTS Display the GUI also in TaskSequence
_SW_Silent.vbs Section:<String> Only executes Commandline after ECHO
Seciont:User
Table 1-11: Example calls

2.10.13 Progressbar
For each installation right below the progress bar appears. After the installation, the progress bar
stops.

Figure 1-3: ProgressBar

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 20 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

2.10.14 GUI Display


This GUI is shown when a process (notepad.exe, winword.exe, shown below) that is defined under the
„KILLPROCESSFULLTEXT“ section in the #install.ini file runs. Bottom right shows the “Countdown”.

It is recommended that this information will be set, because the new MAHLE standard settings in all
deployments should be run in silent mode and only when a defined process is running, the GUI should
be displayed:

Figure 1-4: GUI Display

2.10.15 Logging
The wrapper logs every call in two files:

File 1: <LOGPATH>\package_logs.log
File 2: <LOGPATH>\PACKAGES\<packagename>.log

<LOGPATH> represents the logging-path which is defined in the file #install.ini.

<packagename> is created from information in the file #install.ini:


<SiteCode>_<ApplicationManufacturer>_<ApplicationName>_<ApplicationVersion>_
< ApplicationLanguage>_<ApplicationRevision>.log

Example: ITC_SUN_JAVA_6u21_MUI_0001.log

The log entries of all packages created with the wrapper are written to “File 1”. “File 2“ contains only
package-specific log entries. These two files are used for troubleshooting and further analyses. The
files are also quality-criterias to check the completeness and correctness of a software package.

Example of a log file:

Figure 1-5: Extract from a log file

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 21 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

3 Quality Assurance
Quality assurance is normally done in three independent stages. Additional, specific test requirements
can be defined in the warrant of apprehension.

3.1 Stage 1: Testing of unattended Installation


The installation-tests of the packages include at least the following procedures and are performed by
the release builder:
 Installation on a MAHLE base-client (ESC CoreLoad)
 Installation together with other applications to check for package dependencies (common set of
software)
 Check for proper installation of the start menu / desktop icons
 Check of the application by starting or using the software
 Check whether permission changes from the package were performed correctly (optional)
 Check whether the application can be started with a limited test account

The uninstallation-tests of the packages include at least the following procedures and are performed
by the release builder:
 Removal from a MAHLE Base-client
 Check for proper removal of all program-files
 Check for orphaned registry entries

3.2 Stage 2: Test via SCCM Deployment


The installation-tests of the packages include at least the following procedures and are performed by
the release builder:
 Installation on a MAHLE base-client (ESC CoreLoad)
 Installation together with other applications to check for package dependencies (common set of
software)
 Check for proper installation of the start menu / desktop icons
 Check of the application by starting or using the software
 Check whether permission changes from the package were performed correctly (optional)
 Check whether the application can be started with a limited test account
 Check whether the installation was done properly under the service account

The uninstallation-tests of the packages include at least the following procedures and are performed
by the release builder:
 Removal from a MAHLE Base-client
 Check for proper removal of all program-files
 Check for orphaned registry entries
 Check whether the uninstallation was done properly under the service account

3.3 Stage 3: Test Application Functionality


In Stage 3 application-specific functions are tested. These tests are performed by the application
managers. This is the final test before the productive release of the package.

3.4 Change (Transform) Packages to Application


The new MAHLE-Software standard is applications. Maybe it could be possible to rebuild some
packages into applications. Therefore first copy the Sources from the existing Package to the
\\itc.global.mahle\dsl\global\CA1\GL Location if they are not existing there. If they are existing, create a
new Revision. Now follow the steps below:

 Replace the _tools Folder and the _sw_silent.vbs File with the newest Wrapper-Version (this is
important because it only works from Wrapper-Version 8.0 upwards)
 Check the new __install.ini and __uninstall.ini Files for the correct Settings (delete the Old
_information.txt and _information1.txt files)
 Create the application according to the MAHLE-Standard specifications
 Test via SCCM Deployment like Step 3.2

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 22 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

3.4.1 No application exists


Note: There should normally be no uninstall steps in the install Batch file (dependency)!

Only exception: If it is the first application build for, that`s build out of a former MAHLE package, the
uninstall steps from the previous MAHLE software package (Software1.0 still exists as a MAHLE
package) stays within the install.bat of the new MAHLE application.

3.4.2 Application still exists


e.g. Software1.0 already existed as MAHLE application and Software2.0 will be built as the new
MAHLE application, no uninstall information for previous versions must exist in the ne install.bat file.

The uninstall information will be found in the dependency (Software1.0 application uninstall.bat).

For Example look at the following Application:

ALBASigner is the Main-App, ALBASigner.Reg is the Dependency…

Create a Dependency-Group like “DepGroup”, add the application you want to install:

Main-Application, where Dependency is configured…

Select the Dependency-App and select “Auto Instal”…

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 23 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

3.5 Documentation
For the acceptance of a package the corresponding area in the warrant of apprehension has to be
filled out and the testing criterias have to be processed. If any problem in testing occurs the package
has to be made new by the release builder team. All testing criterias must be processed again.

All changes to a package must be documented in a seperate protocol or if possible in the supporting
document. Undocumented changes are not allowed.

All test results and approvals must be formally documented in the warrant of apprehension.

After approval of the package, its state will be changed to productive by the SCCM administrator.
Documentation of this step in the warrant of apprehension is mandatory.

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 24 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

4 Updates
4.1 Functional Updates for Windows 7
These updates are created as special SCCM packages deployed to the appropriate clients. Previously
to this, an update to the basic package is made to avoid the deployment of outdated versions to new
clients. The evaluation, which clients will get an update is made by a Dynamic Query-Based
Collection.

Examples:
 Silverlight
 .Net Framework
 Visual Studio Tools

4.2 Functional Updates for Microsoft Applications


After request by ESOT Client-Service, these updates are created as special SCCM packages
deployed to the appropriate clients. Previously to this, an update to the basic package is made to
avoid the deployment of outdated versions to new clients. The evaluation, which clients will get an
update is made by a Dynamic Query-Based Collection.

A distribution of these updates through WSUS would be advantageous. Coordination with ESOT-
Security is desirable.

4.3 Functional updates for non-Microsoft Applications


These updates are created as special SCCM packages deployed to the appropriate clients. Previously
to this, an update to the basic package is made to avoid the deployment of outdated versions to new
clients. The evaluation, which clients will get an update is made by a Dynamic Query-Based
Collection.

4.4 Critical
Critical updates for Windows 7 and Microsoft products are deployed via WSUS. Responsible for this
deployment is ESOT-Security.
Critical updates for non-Microsoft applications are deployed via SCCM. These updates are created as
special SCCM packages deployed to the appropriate clients. Previously to this, an update to the basic
package is made to avoid the deployment of outdated versions to new clients. The evaluation, which
clients will get an update is made by a Dynamic Query-Based Collection.

The order is issued by ESOT-Security (Mr. Irasch).

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 25 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

5 Test environment
5.1 Test clients
You always have to use a ESC-Client for packaging and testing! This could be virtual or a physical
HW, but always a ESC-Client…

5.2 Test processes


 Copy the Source-Files local on the Test-Machine (C:\TEMP or C:\zip)
 First step is testing on the machine local with ADMIN rights (ITC\a-account).
 When the Package/Application is working, next step is testing on the machine local with
“LOCAL SYSTEM” rights (like SCCM does).
o For this process you can use the existing Package:
(Software Library\Overview\Application Management\Packages\DEPLOYMENT-
ADMIN\EU \AT – Kapsch CMD.LocalSystem) on the SCCM-Server Package-ID
EU1000C3

o The Collection for this Package (where you have to put in your Test-Client):
(\Assets and Compliance\Overview\Device Collections\DEPLOYMENT-ADMINS\EU\
EU_Kapsch_CMD.LocalSystem_1.0_MUI_INSTALL)

 Copy the Sources from the local Machine to the DSL-Share


 Create the Package in SCCM
o Create the Programs in SCCM (INSTALL, INSTALL_TS, UNINSTALL)
 Create the Collections in SCCM (INSTALL and UNINSTALL)
o Create the Deployments in SCCM (INSTALL and UNINSTALL)
Please distribute the sources only to necessary DPs in the Testing-Phase!
 Next step is testing on the machine via the SCCM-Deployment as a NORMAL ITC-Domain-
User (without ADMIN-Rights)
o Put the Testclient in both COLLECTIONS (INSTALL and UNINSTALL)
o Go to SoftwareCenter and start the installation
o Go to SoftwareCenter and also start the uninstallation
 Retry the installation and always check the Logfiles
o For UNINSTALLATION you should create a Deployment as AVAILAIBLE for the
_UNINSTALL-Collection, also for the tests of the Software-Owner
 Distribute the Package to the DP-Group or Groups where the Package is used.

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 26 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 27 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

5.2.1 Test processes MUI


When you have to package a Multilanguage Software you have to test this software also in multiple
Languages.
 On MSI-Packages it should be enough to change the local System-Settings
 With INI-Files or other stuff you can use the System-Variable %PCLANG% (this Variable will
be set during the OS-Installation) – This always needs a reboot!
For example see PackageID ITC002CB or ITC0021F

5.3 Approval processes - Package


You always have to use a ESC-Client for the approval of the SW-Owner. It should always be a
physical HW and a ESC-Client, without local ADMIN-Rights!

 Put the Cient in both COLLECTIONS (INSTALL and UNINSTALL)


 Let the Keyuser test the INSTALL and UNINSTALL (Deployment also AVAILAIBLE)
 When all Software-Testing is done and OK, create the Deplomynet as REQUIRED for the
_UNINSTALL-Collection and delete the AVAILAIBLE-Deployment

5.4 Approval processes - Application


You always have to use a ESC-Client for the approval of the SW-Owner. It should always be a
physical HW and a ESC-Client, without local ADMIN-Rights!

 Put the Cient in the _INSTALL COLLECTION in the new INSTALL Sub-Folder
 Let the Keyuser test the INSTALL and UNINSTALL (Deployment AVAILAIBLE)
 When all Software-Testing is done and OK, create an additional Deployment as REQUIRED
for the _UNINSTALL-Collection in the new UNINSTALL Sub-Folder

The new INSTALL and UNINSTALL folders…

For additional information about the INSTALL/UNINSTALL folder please refer to 5.5.6.

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 28 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

5.5 SCCM Standard-Object-Settings


For new software products always application should be used. For application at least Wrapper
Version 8.2 is needed!

5.5.1 Package-Settings

Always create 3 Programs (INSTALL, INSTALL_TS, UNINSTALL)

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 29 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

 INSTALL Program-Settings:

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 30 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

 INSTALL_TS Program-Settings:

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 31 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

 UNINSTALL Program-Settings:

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 32 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

5.5.2 Application Basic-Settings

The Application Catalog and company portals in Configuration Manager can give users control over
how and when software is installed on their devices. Configuration Manager can also help ensure that
the software that users need in order to perform their work is available wherever they log on, not just
on their primary devices:

Always use the icon-from the exe on the Test-Client, where the Application is installed…

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 33 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

A dependency defines one or more prerequisite deployment types that must be installed before
another specified deployment type can be installed. You can configure the prerequisite dependent
deployment types to install automatically before the dependent deployment type is installed:

You specify whether to replace or upgrade an app in the Specify Supersedence Relationship dialog
box of the application properties dialog box. The type of supersedence depends on whether you check
the Uninstall option in this dialog box:

 If you want to update to a newer version of the same application (with the same application
ID), do not check Uninstall.

 If you want to change to a different application (with a different application ID), check Uninstall.
You will need to remove the superseded version of the application.

It can be used to uninstall an older version of an Application. So please be careful in the packaging
process (no UNINSTALL-Steps in the _install.bat Files)! For uninstall only use _uninstall.bat Files:

Only applications can be selected (no packages)…

Further considerations

 You can specify multiple supersedence relationships for dependent applications. The highest
dependent application in the supersedence chain gets installed.

 Dependent applications must be deployed to the device where the master application is
installed, or the dependent application will not be installed.

 For new installations of the master application, when you have multiple dependencies, the
dependency order determines which version of the dependent application gets installed.

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 34 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

5.5.3 Application Logs


There are three new Logfiles on Client-Computers to check some issues and so on for Packaging,
Detection-Method and so on.

%WINDIR%\CCM\Logs
- AppDiscovery.log and AppEnforce.log

5.5.4 Deployment-Type Settings (Applications)


Before you can deploy an application in Microsoft System Center Configuration Manager, you must
create at least one deployment type for the application.

As deployment type always “Script Installer” should be used, because here we refer to our
WRAPPER:

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 35 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

There is no difference between packages, always use the UNC-Path for the source files:

There are several available methods to determine whether a deployment type is already present on a
device. You can detect a Windows Installer product code, a file or a folder, or a registry value to
determine whether a deployment type is present. You can also write a script to detect whether a
deployment type is present on the device.

The ”Detection Method” will be checked two times. Once before the deployment starts and once after
the deployment was running.

It is recommended to use more than one detection method. For best practices use the UNINSTALL-
Registry-Key and the WINWORD.EXE in the Office Package for example.

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 36 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

Registry-Key is used…

The available detection methods will vary depending on the device you are creating a deployment type
for.

.EXE File is used…

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 37 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

More Information about “Logon requirement” please refer to 5.5.6

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 38 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

System Center Configuration Manager removes the need to create collections (although you can still
do this) by introducing requirements which are processed by the client device when the application is
deployed. For example, you can specify that an application can be installed only on computers that
run Windows 7. You can then deploy the application to all devices, but it will only be installed on the
computers that meet the specified requirements.

The Configuration Manager client evaluates requirements to determine whether an application and
any of its deployment types will be installed. Then it determines the correct deployment type by which
to install an application. Every day, the requirement rules are reevaluated to ensure compliance
according to the client setting Schedule re-evaluation for deployments:

Should not be changed…

A dependency defines one or more prerequisite deployment types that must be installed before
another specified deployment type can be installed. You can configure the prerequisite dependent
deployment types to install automatically before the dependent deployment type is installed:

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 39 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

Two additional examples for the “Detection Method”:

Cisco VPN…

SAP-GUI…

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 40 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

5.5.5 Application Folder Structure


Applications are located in different folders based on their status and scope

 #Retired
Software that is no longer in use
 Administration
In the Administration Folder, Application should be placed during the “Test-Phase”
 Coreload
Applications which are used inside the CoreLoad (!Only Applications which are ready
to Deploy)
 OM-Eshop
All Applications which are ready to deploy and approved by the Software responsible
person (!Only Applications which are ready to Deploy)
 Prerquisites
Application which are need for other Applications for correct function e.g. VCRedist
(!Only Applications which are ready to Deploy)
 Quality checked
Applications which are tested and waiting for approval of the software responsible
person
 Software-Updates
Applications which are updates for an already installed software on computers or
Windows Updates

5.5.6 Deployment-Type Settings (Applications for Task Sequence)


Now in the Application deployment type settings we only use INSTALL and UNINSTALL (no
INSTALL_TS like Packages)! The selection if an Application will be installed during the Task
Sequence will be done via PowerShell-Script. If a Client is in one Collection of the INSTALL Folder
then the Application will be installed at the end of the Task Sequence.

If we don’t like to INSTALL an Application during the Task Sequence, we have to put the _INSTALL
Collection into the Subfolder “Install not in Task Sequence”:

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 41 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

Two different Folders for INSTALL and UNINSTALL…

5.5.7 Collection-Settings

We are always need two Collection (INSTALL and UNINSTALL)

 INSTALL Collection-Settings:

On Membership Rules, set the Schedule a full update on this collection to “Occurs every 1 day”

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 42 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

 UNINSTALL Collection-Settings:

On Membership Rules, set the Schedule a full update on this collection to “Occurs every 1 day”

5.5.8 Deployment-Settings (Packages)

 INSTALL Deployment-Settings:

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 43 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

 UNINSTALL Deployment-Settings:

Maybe this option must be changed for some packages…

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 44 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

5.5.9 Deployment Settings (Applications)

 INSTALL Deployment-Settings:

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 45 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

 UNINSTALL Deployment-Settings:

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 46 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 47 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

6 Go live
6.1 Make online
In this process we have to change the Collection-Comment to ONLINE. When this flag is set to
ONLINE the Package is availaible for the eShop in the OM-Tool:

6.2 Rollout
In this process we have to change the Collection-Comment to ONLINE.

6.2.1 Pre-Pilot
This steps are only used for big rollouts with more than 500 Clients.
o Use a group of some Clients – 2%
o Monitoring the deployment status via SCCM
o Check some logfiles on this clients

6.2.2 Pilot
This steps are only used for big rollouts with more than 500 Clients.
o Use a group of some Clients – 10%
o Monitoring the deployment status via SCCM
o Check some logfiles on this clients

6.2.3 Rollout-Plan
This plan has to be checked with Manuel Haberl and Alexander Molnar for the global Rollout…

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 48 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

7 Scripting
7.1 MSI, MSP
It is important, that you never modify a MSI-File! If you have to do some modifications like
LicenceKeys and so on, always create a MST-File with the tool ORCA (can be downloaded on the
Internet).

In this case we install Software with MSI including a Transforms-File -> MST:
MsiExec.exe /i "%~dp0Software\Acro.msi" TRANSFORMS="%~dp0CONFIG\AcroRead.mst" /qn

In this case we install an Update with MSP:


MsiExec.exe /p "%~dp0Software\AcroRdrDCUpd1500920069_MUI.msp" /qn

7.2 Folder permissions for Everyone


See Package-ID SM1001A1 (JITplant)

7.3 Use the %PCLANG% Variable


See Package-ID EU100240 (Irfanview Viewer)

7.4 InstallShield Response Files


See Package-ID EM100066 (HP QuickLaunch)

7.5 Create Links with VBS


See Package-ID EU100235 (Lotus Notes)

7.6 Regwriteallusers.exe
See Package-ID EU100272 (Easy DMS)

7.7 Certificates (certmgr.exe)


See Package-ID EU100102 (Suzuki Certification)

7.8 PowerShell with -Bypass


See Package Microsoft_Win10.OSDcustom_1511_MUI_0001

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 49 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

8 Task Sequence SW installation


A new process for software installation during the task sequence was implemented in the new SCCM
Environment (MDT replacement):

The task sequence step „Get Collection Software” is checking the collection membership of all
software collections in the “INSTALL” folder from the Collection-Container. For this step the software
title will be written in a variable.

 A deployment for the collection must exist!


 A TS Program must exist when Packages are used!

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 50 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

9 Windows 10 Upgrades
9.1 Upgrade Definitions
Availability of Minimum
Servicing new feature length of Supported
Key benefits
option upgrades for servicing editions
installation lifetime

Home, Pro,
Makes new Education,
Current Immediately after
Approximately features available Enterprise, IoT
Branch first published by
4 months to users as soon as Core, Windows
(CB) Microsoft
possible 10 IoT Core Pro
(IoT Core Pro)

Current Approximately 4 Provides additional


Pro, Education,
Branch for months after first Approximately time to test new
Enterprise, IoT
Business published by 8 months feature upgrades
Core Pro
(CBB) Microsoft before deployment

Enables long-term
Long-Term deployment of
Immediately after
Servicing selected Windows
published by 10 Years Enterprise LTSB
Branch 10 releases in low-
Microsoft
(LTSB) change
configurations

Source: Microsoft.com

Source: Microsoft.com

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 51 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

9.2 Deployment
9.2.1 Deplyoment Process

UPGRADE TIMELINE
not Available Available Required

7 24
PHASE I

31 14 17
PHASE II

62 30
PHASE III

Phase I
Personenkreis
IT Service

Clients
Testclients welche einem Standard Client entsprechen sowie eventuell Clients aus dem Bereich IT
Service

Zeitrahmen
 Verfügbar (Available): Sofort nach Deklarierung als CBB durch Microsoft
 Erforderlich (Required): 7 Tage nach Verfügbarkeitsdatum
 Notifikation(PopUp): Alle 3 Stunden innerhalb des Verfügbarkeitszeitraums
Die Installation umfasst mindestens folgende Vorgänge

 Installation auf MAHLE Basisclients


 Prüfung der Anwendungen durch Starten oder sofern möglich durch Nutzung
 Treiber Überprüfung – Überprüfung der Vollständigkeit der Hardwarebedingten
Treiberinstallation basierend auf den verwendeten Testgeräten

Phase II
Personenkreis
„Key User“

Clients
Clients aus den Fachabteilungen mit erweitertem Softwareset

Zeitrahmen
 Verfügbar (Available): 1 Monat nach Verfügbarkeitsdatum der Phase I

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 52 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

 Erforderlich (Required): 14 Tage nach Verfügbarkeitsdatum


 Notifikation (PopUp): Alle 3 Stunden innerhalb des Verfügbarkeitszeitraums
Die Installation umfasst mindestens folgende Vorgänge

 Installation auf MAHLE Clients der Fachabteilungen


 Prüfung der Fachspezifischen Anwendungen durch Starten und Nutzung

Phase III
Personenkreis
Alle Benutzer

Clients
Alle Clients mit entsprechender Windows Version

Zeitrahmen
 Verfügbar (Available): 2 Monate nach Verfügbarkeitsdatum der Phase I
 Erforderlich (Required): 30 Tage nach Verfügbarkeitsdatum
 Notifikation (PopUp): Alle 3 Stunden innerhalb des Verfügbarkeitszeitraums
Die Installation umfasst mindestens folgende Vorgänge

 Installation auf MAHLE Clients

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 53 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

A new process for Windows (Feature-) Upgrades was:

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 54 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 55 of 56
MIG-IT – software packaging guideline for Microsoft SCCM

10 Terms and abbreviations


Deployment SCCM term: an object that is used to notify a management point that a program, a software
update or a task-sequence is available to a client. An Deployment is directed to a collection.
AGPM Advanced Group Policy Management
Collection SCCM term: a grouping of objects (Systems, Computers, Users, Groups, etc.). SCCM provides
predefined collections like „all systems“ or „all users“.
Core Load Logical bundle which consists of the operating system (Windows 7) and European-wide base
packages
DSL Definitive Software Library (ITIL®)
GL Are MUI Packages, which are used global
ESC Engineered Standard Client
ITIL® IT Information Library
MSI Microsoft software installer
MST Microsoft software transform
MUI Multi-language
Package SCCM term: something that can be deployed via SCCM
Program SCCM term: a command, that can be started in a package, eg. „install.cmd“
SCCM MS Systems Center Configuration Manager
GL-SW-DEPLOYMENT Service Center Software Delivery in St. Michael
Warrant of apprehension Document which contains meta information about a package and supports the entire
lifecycle of the package
TS (Task Sequence) SCCM term: The mechanism in Configuration Manager, which allows multiple steps or tasks
on a client computer to be executed from the command line without requiring any user
interaction. Each step in a task sequence executes an action, such as hard disk partitioning
and formatting, software installation, etc.
Table 9-1: Terms and abbreviations

Author: Kapsch BusinessCom AG Version: 06.04.2017


Page 56 of 56

You might also like