Professional Documents
Culture Documents
MIG-IT Packaging Guidline V1.9 en
MIG-IT Packaging Guidline V1.9 en
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
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
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).
For installation of msi packages it is necessary to use version 5.0 or higher. The actual used version at
MAHLE is 5.0.
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.
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.
Anyway, if there is a decision for repackaging of software the tool Admin Studio must be used.
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.
Among these folders the individual sites are located. Within these sites the source-files are stored
according to the naming convention.
The folder containing the sources must match the following convention. Spaces are not allowed.
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
Among these folders the individual sites are located. Within these sites the software-packages are
stored according to the naming convention.
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.
Examples:
ONLINE;GL;1;Only for Windows 10 Clients;
ONLINE ;;;;
ONLINE ;DE ;;
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.
For detailed Applications-Settings, please take a look to section 5.5.2. The full naming convention for
Applications results as follows:
Example:
Adobe AcrobatReader 9.3.0 MUI
Microsoft Project 2016 MUI
Gupta PMV 2.1 ENG
Autodesk AutocadLT 2010 ENG
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“.
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
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.
„<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
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.
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
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).
I.e. Software is generally packaged without considering the usage on terminal servers.
Wrapper
Pre-Check
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.
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, …
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.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
2.10.2 _TOOLS
The folder contains several tools for software deployment.
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:
[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.
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
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.
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
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
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
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.
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.
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:
2.10.15 Logging
The wrapper logs every call in two files:
File 1: <LOGPATH>\package_logs.log
File 2: <LOGPATH>\PACKAGES\<packagename>.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.
3 Quality Assurance
Quality assurance is normally done in three independent stages. Additional, specific test requirements
can be defined in the warrant of apprehension.
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
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
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
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.
The uninstall information will be found in the dependency (Software1.0 application uninstall.bat).
Create a Dependency-Group like “DepGroup”, add the application you want to install:
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.
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
A distribution of these updates through WSUS would be advantageous. Coordination with ESOT-
Security is desirable.
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.
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…
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)
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
For additional information about the INSTALL/UNINSTALL folder please refer to 5.5.6.
5.5.1 Package-Settings
INSTALL Program-Settings:
INSTALL_TS Program-Settings:
UNINSTALL Program-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…
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:
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.
%WINDIR%\CCM\Logs
- AppDiscovery.log and AppEnforce.log
As deployment type always “Script Installer” should be used, because here we refer to our
WRAPPER:
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.
Registry-Key is used…
The available detection methods will vary depending on the device you are creating a deployment type
for.
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:
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:
Cisco VPN…
SAP-GUI…
#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
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”:
5.5.7 Collection-Settings
INSTALL Collection-Settings:
On Membership Rules, set the Schedule a full update on this collection to “Occurs every 1 day”
UNINSTALL Collection-Settings:
On Membership Rules, set the Schedule a full update on this collection to “Occurs every 1 day”
INSTALL Deployment-Settings:
UNINSTALL Deployment-Settings:
INSTALL Deployment-Settings:
UNINSTALL Deployment-Settings:
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…
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
7.6 Regwriteallusers.exe
See Package-ID EU100272 (Easy DMS)
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.
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)
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
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
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
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