Skip navigation.

digital-nation

Blog-note d'un informaticien procrastinate...

Posts tagged with "msi"

Installation silencieuse d’une application

, , , ...

Il arrive parfois qu’on doivent installer des logiciels sans interactions humaines… Cette méthode d’installation s’appelle « silent » ou « stealth ».

Pour ce faire, nous utilisons un fichier MSI… Nous savons que le MSI utilise le MSIExec… Logiciel de Microsoft pour installer ces dits logiciels est appelé « Microsoft Installer » (plus sympa aussi). Nous savons aussi ses paramètres et sa syntaxe :



msiexec /Option <Required Parameter> [Optional Parameter]

Install Options
</package | /i> <Product.msi>
Installs or configures a product
/a <Product.msi>
Administrative install - Installs a product on the network
/j<u|m> <Product.msi> [/t <Transform List>] [/g <Language ID>]
Advertises a product - m to all users, u to current user
</uninstall | /x> <Product.msi | ProductCode>
Uninstalls the product
Display Options
/quiet
Quiet mode, no user interaction
/passive
Unattended mode - progress bar only
/q[n|b|r|f]
Sets user interface level
n - No UI
b - Basic UI
r - Reduced UI
f - Full UI (default)
/help
Help information
Restart Options
/norestart
Do not restart after the installation is complete
/promptrestart
Prompts the user for restart if necessary
/forcerestart
Always restart the computer after installation
Logging Options
/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile>
i - Status messages
w - Nonfatal warnings
e - All error messages
a - Start up of actions
r - Action-specific records
u - User requests
c - Initial UI parameters
m - Out-of-memory or fatal exit information
o - Out-of-disk-space messages
p - Terminal properties
v - Verbose output
x - Extra debugging information
+ - Append to existing log file
! - Flush each line to the log
* - Log all information, except for v and x options
/log <LogFile>
Equivalent of /l* <LogFile>
Update Options
/update <Update1.msp>[;Update2.msp]
Applies update(s)
/uninstall <PatchCodeGuid>[;Update2.msp] /package <Product.msi | ProductCode>
Remove update(s) for a product
Repair Options
/f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode>
Repairs a product
p - only if file is missing
o - if file is missing or an older version is installed (default)
e - if file is missing or an equal or older version is installed
d - if file is missing or a different version is installed
c - if file is missing or checksum does not match the calculated value
a - forces all files to be reinstalled
u - all required user-specific registry entries (default)
m - all required computer-specific registry entries (default)
s - all existing shortcuts (default)
v - runs from source and recaches local package
Setting Public Properties
[PROPERTY=PropertyValue]


En règle générale nous avons donc la ligne de commande suivante
MSIEXEC.EXE /i INSTALL.MSI /qn

Cependant, et bien souvent, les utilisateurs ne sont pas adminstrateur de leurs postes. Et les applications se font de plus en plus lourde pour les distribuer à travers le réseau via des GPO.
Par là même il faut donc utiliser des droits d’un profil administrateur… Cela peut se faire de deux manières :
passage de paramètres à un fichier BATCH, les arguments sont stockés par exemple dans un exécutable (non visible à l’utilisateur donc) et transmis par %1 et %2 dans le BATCH
utilisation de la commande RUNASWAIT d’AutoIT avec un chargement de profil :
RunAsWait($s_utilisateur, $s_reseau, $s_motdepasse, 4, "MSIEXEC.EXE /i INSTALL.MSI /qn", @ScriptDir, @SW_Hide)

L’installation continuera dès la fin de la commande. Il est tout aussi utile alors d’utiliser la commande ProgressSet afin de faire patienter l’utilisateur (il est toujours recommandé de ne pas faire d’autres actions lors d’une installation).

Dans la continuité, il faut changer les droits du dossier… Simplement avec script en MS-DOS.

Simple et efficace. Mais surtout convivial pour l’utilisateur : il ne se préoccupe pas de l’installation, tout se fait « automatiquement » avec le SI derrière :smile:
December 2009
M T W T F S S
November 2009January 2010
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31