Amorçage

Actuellement, chaque installation qui tente d’utiliser Windows Installer commence par vérifier si le programme d’installation est présent sur l’ordinateur de l’utilisateur et, si ce n’est pas le cas, si l’utilisateur et l’ordinateur sont prêts pour l’installation de Windows Installer. Une application d’installation Instmsi.exe est disponible avec le SDK Windows Installer qui contient la logique et toutes les fonctionnalités permettant d’installer Windows Installer. Toutefois, une application de démarrage doit gérer cette installation.

L’application de démarrage doit d’abord vérifier si Windows Installer est actuellement installé. Les applications peuvent obtenir la version de Windows Installer actuellement installée en utilisant DllGetVersion. Si Windows Installer n’est pas installé, l’application de démarrage doit interroger le système d’exploitation pour déterminer la version nécessaire du fichier Instmsi.exe. Une fois l’installation de Windows Installer lancée, l’application de démarrage doit gérer les codes de retour de l’application Instmsi.exe ainsi que tout redémarrage effectué pendant l’installation de Windows Installer. Pour plus d’informations, consultez Détermination de la version de Windows Installer

L’exemple suivant montre comment l’application d’installation qui installe Microsoft Office 2000 vérifie le système de l’utilisateur et configure l’installation de Windows Installer. Cet exemple est spécifiquement écrit pour installer Office 2000 et doit être utilisé comme référence générale uniquement.

Quand un utilisateur insère un CD-ROM Office 2000 dans son ordinateur, Setup.exe tente de lancer le mode de maintenance, l’application d’installation ou ne fait rien, en fonction des besoins de l’utilisateur. La section suivante décrit comment l’application d’installation d’Office 2000, nommée Setup.exe, prépare l’utilisateur et son ordinateur, construit une ligne de commande et installe Windows Installer en utilisant l’application Msiexec.exe.

Comment Setup.exe démarre Windows Installer pendant l’installation d’Office 2000

  1. L’utilisateur insère un CD-ROM Office 2000 dans son ordinateur. Le système d’exploitation Windows lance Setup.exe en utilisant le commutateur /autorun et le fichier Autorun.inf. Le fichier Autorun.inf se trouve à la racine du CD-ROM Office 2000 et contient les sections suivantes :

    [Autorun]

    [Office Features]

    [Product Information]

    [ServicePack].

    La section [Autorun] contient une ligne de commande qui exécute l’application Setup.exe, exécute l’icône utilisée pour afficher le disque, et contient des informations permettant d’ajouter une option « Install » et une option « Configure » au menu contextuel du CD-ROM.

    La section [Office Features] contient une liste de fonctionnalités et de paires de noms de fonctionnalités.

    La section [Product Information] spécifie le nom et la version de l’application.

    La section [ServicePack] permet à un administrateur réseau de définir le niveau minimal de Service Pack nécessaire. L’administrateur réseau peut utiliser cette section pour créer le texte d’un message d’alerte qui s’affiche si le système d’exploitation local n’a pas le Service Pack nécessaire.

    Voici un exemple de fichier Autorun.inf.

    [autorun] 
    OPEN=setup.EXE /AUTORUN /KEY:Software\Microsoft\Office\9.0\Common\General\InstallProductID
    ICON=setup.EXE,1
    shell\configure=&Configure
    shell\configure\command=setup.EXE
    shell\install=&Install
    shell\install\command=setup.EXE
    [OfficeFeatures]
    Feature1=ACCESSFiles
    Feature2=OfficeFiles
    Feature3=WORDFiles
    Feature4=EXCELFiles
    Feature5=PPTFiles
    [ProductInformation]
    DisplayName=Microsoft Office 9
    Version=9.0
    ProductCode={product guid}
    [ServicePack]
    MessageText="The operating system does not have a required service pack. Please download and install this from www.microsoft.com."
    SPLevel=3
    
  2. L’application Setup.exe recherche le mutex _MsiPromptForCD. Windows Installer crée ce mutex quand il invite l’utilisateur à insérer le CD-ROM. La présence du mutex indique que Windows Installer exécute une installation qui a demandé le CD-ROM Office 2000. Dans ce cas, l’application Setup.exe se ferme immédiatement et permet à l’installation d’Office 2000 de continuer. Si le mutex est absent, l’application Setup.exe passe à l’étape 3, qui évalue une clé de Registre pour déterminer si Office 2000 est installé.

  3. L’application Setup.exe vérifie la présence de la clé de Registre Office9 :

    HKCU/Software/Microsoft/Office/9.0/Common/General/InstallProductID

    Si cette clé de Registre n’existe pas, l’application Setup.exe passe à l’étape 6, qui vérifie le système d’exploitation pour déterminer s’il est éligible à l’installation d’Office 2000.

  4. Si la clé de Registre Office 2000 existe, l’application Setup.exe vérifie l’état d’installation actuel en appelant MsiQueryProductState. Si l’état renvoyé est InstallState_Default, Office 2000 est déjà installé et l’application Setup.exe passe à l’étape 5, qui vérifie qu’Office 2000 peut s’exécuter à partir de la source.

    Si Office 2000 n’est pas installé, l’application Setup.exe passe à l’étape 6, qui vérifie le système d’exploitation pour déterminer s’il est éligible à l’installation d’Office 2000.

  5. L’application Setup.exe appelle MsiQueryFeatureState pour chacune des fonctionnalités de la section [OfficeFeatures] du fichier Autorun.inf. Si une de ces fonctionnalités renvoie INSTALLSTATE_SOURCE, cela indique que la fonctionnalité est exécutée à partir de la source et l’application Setup.exe se ferme immédiatement.

    Si aucune des fonctionnalités ne renvoie INSTALLSTATE_SOURCE, l’application Setup.exe lance l’application du programme d’installation, Msiexec.exe, et présente le mode de maintenance de Windows Installer avant de quitter.

  6. L’application Setup.exe détermine si le système d’exploitation est éligible à une installation d’Office 2000. Windows XP est nécessaire pour installer Office 2000. Si le système d’exploitation nécessite une mise à jour du Service Pack pour être éligible à Office 2000, l’application Setup.exe affiche le texte spécifié dans le fichier Autorun.inf. Si le système d’exploitation n’est pas éligible à Office 2000 ou à une mise à niveau d’Office 2000, l’application Setup.exe affiche un message qui empêche l’utilisateur de continuer.

    Si le système d’exploitation est éligible à Office 2000, l’application Setup.exe passe à l’étape 7, qui détermine si Windows Installer est installé sur l’ordinateur de l’utilisateur.

  7. Si Windows Installer existe sur la machine de l’utilisateur, l’application Setup.exe lance l’application Msiexec.exe et lui passe le fichier .msi d’Office 2000.

    Si Windows Installer n’est pas installé sur la machine locale, l’application Setup.exe passe à l’étape 8, qui détermine si le système d’exploitation est éligible à l’installation de Windows Installer.

  8. Si l’ordinateur local est éligible à l’installation de Windows Installer, l’application Setup.exe exécute la version de l’application du programme d’installation Instmsi.exe qui correspond à la plateforme. Setup.exe peut passer le commutateur de ligne de commande « /q » pour supprimer l’interface utilisateur et empêcher l’utilisateur de changer les options de configuration d’installation.

  9. L’application Setup.exe charge le fichier Msi.dll nouvellement installé et effectue un appel à la fonction MsiInstallProduct pour installer l’application de l’utilisateur.

Paramètres de ligne de commande de Setup.exe

L’application Setup.exe permet aux administrateurs et aux utilisateurs de passer des options de ligne de commande à l’application Msiexec.exe. Pour plus d’informations, consultez Options de ligne de commande. Le tableau suivant liste les options qui peuvent être utilisées avec Setup.exe.

Option Usage Signification
/autorun setup.exe /autorun Exécute Autorun.inf décrit ci-dessus.
/a setup.exe /a Lance une installation administrative.
/j [u|m]Packageor
[u|m]Package /t Transform List
ou
[u|m]Package /g LanguageID
Publie un produit. Cette option ignore toutes les valeurs de propriété entrées sur la ligne de commande. u Publie pour l’utilisateur actuel.
m Publie pour tous les utilisateurs de la machine.
g Identificateur de langue
t Applique la transformation au package publié.
/I setup.exe /I Office9.msi /t ProgramMgmt.mst Spécifie le fichier .msi que Setup.exe doit installer. Si l’option /I n’est pas incluse, Setup.exe utilise le fichier Office9.msi.
/o<propriété=valeur> setup.exe /o CDKEY=111111-1111 Définit les propriétés dans le fichier .msi. Setup.exe les passe à msiexec telles qu’elles sont écrites.
/q setup.exe /q Définit le niveau d’interface utilisateur de l’installation. /q aucune interface utilisateur (/qn pour msiexec.) /qb interface utilisateur de base
/qr interface utilisateur réduite.
/m# setup.exe /m4 Prend en charge plusieurs licences conformément aux contrats sélectionnés. Cette propriété est utilisée par l’action personnalisée Vérification de licence pour écrire le certificat LV. L’option /m doit être suivie du nombre de déverrouillages autorisés. La valeur spécifiée par l’option /m doit être définie en tant que propriété « M » dans le fichier Office9.msi. Si aucune valeur n’est spécifiée, mais que l’option /m est utilisée avec le programme d’installation, la valeur 0 doit être définie. L’option /m est nécessaire pour prendre en charge la sélection des clients à partir d’un CD ou d’un réseau.
/settings setup.exe /settings mysettings.ini Permet aux administrateurs de spécifier un fichier .ini contenant tous les paramètres personnalisés à passer pendant l’installation d’Office 2000. Consultez la description du fichier .ini ci-dessous.

Utilisation d’un fichier .ini

La création d’un fichier d’initialisation peut être plus facile que celle d’une ligne de commande longue. En utilisant l’option /settings, l’application Setup.exe lit le fichier .ini spécifié et construit une ligne de commande à passer à l’application Msiexec.exe. Seules les propriétés prises en charge sur la ligne de commande sont prises en charge dans le fichier .ini. Si une propriété ou une valeur se trouve à la fois dans le fichier .ini et sur la ligne de commande, les paramètres de ligne de commande remplacent les paramètres du fichier .ini.

Le format du fichier .ini est le suivant :

[msi]

[mst]

[options]

[Display]

La section [msi] du fichier .ini spécifie le chemin du package d’installation. Elle correspond à l’option /I sur la ligne de commande.

La section [mst] du fichier .ini spécifie le chemin des transformations utilisées avec cette installation. Elle correspond à l’option /j sur la ligne de commande. Plusieurs transformations sont indiquées chacune sur une ligne différente, en utilisant MST1 MST(N). Quand elle est analysée dans la ligne de commande, la liste du fichier .ini est tournée de gauche à droite. Notez que le nombre associé au titre MST(N) est présent uniquement pour conserver les identificateurs uniques et n’a aucune signification programmatique.

La section [options] permet aux administrateurs réseau de définir et remplacer les propriétés dans les fichiers .msi ou .mst. Les options définies dans le fichier .ini sont ajoutées à la ligne de commande en utilisant l’option /o. Chaque option de la section des options doit avoir un nom de propriété et une valeur.

La section [Display] est utilisée pour définir le niveau d’interface utilisateur utilisé pendant l’installation. Elle correspond à l’option /q sur la ligne de commande. Les valeurs valides sont none, basic, reduced et full.

Exemple de fichier .ini

[MSI]

MSI=\\sourceshare\Office2000\Office2000.msi

[MST]

MST1=\\sourceshare\Office2000\trns1.mst

MST2=\\sourceshare\Office2000\trns2.mst

[Options]

PUBLICPROPERTY=votre valeur

[Display]

Display=None