Obtention d’informations de contexte pour les actions personnalisées d’exécution différée
Étant donné que le script d’installation peut être exécuté en dehors de la session d’installation dans laquelle il a été écrit, la session peut ne plus exister pendant l’exécution du script d’installation. Dans ce cas, le descripteur et le jeu des propriétés de session d’origine pendant la séquence d’installation ne sont pas disponibles pour une action personnalisée d’exécution différée. Toutes les fonctions qui nécessitent un descripteur de session sont limitées à quelques méthodes qui peuvent récupérer des informations de contexte, sinon, les propriétés nécessaires lors de l’exécution du script doivent être écrites dans le script d’installation. Par exemple, les actions personnalisées différées qui appellent des bibliothèques de liens dynamiques (DLL) passent un descripteur qui ne peut être utilisé que pour obtenir une quantité très limitée d’informations. Les fonctions qui ne nécessitent pas de descripteur de session sont accessibles à partir d’une action personnalisée différée.
Les actions personnalisées d’exécution différée sont limitées à l’appel uniquement des fonctions suivantes nécessitant un descripteur.
Fonction | Description |
---|---|
MsiGetProperty | Prend en charge un ensemble limité de propriétés lorsqu’elles sont utilisées avec des actions personnalisées d’exécution différée : la propriété CustomActionData, la propriété ProductCode et la propriété UserSID. Les actions personnalisées de validation ne peuvent pas utiliser la fonction MsiGetProperty pour obtenir la propriété ProductCode. Les actions personnalisées de validation peuvent utiliser la propriété CustomActionData pour obtenir le code de produit. |
MsiFormatRecord | Prend en charge un ensemble limité de propriétés lorsqu’elles sont utilisées avec des actions personnalisées d’exécution différée : les propriétés CustomActionData et ProductCode. |
MsiGetMode | Lorsqu’il est appelé à partir d’actions personnalisées d’exécution différée, de validation d’actions personnalisées ou de restauration d’actions personnalisées, MsiGetMode retourne True ou False lorsqu’il lui est demandé de vérifier les paramètres de mode MSIRUNMODE_SCHEDULED, MSIRUNMODE_COMMIT ou MSIRUNMODE_ROLLBACK. Les demandes de vérification de tout autre paramètre de mode d’exécution à partir d’une action personnalisée différée, de validation ou de restauration retourne False. |
MsiGetLanguage | ID de langue numérique du produit actuel. Les actions personnalisées de validation ne peuvent pas utiliser la fonction MsiGetLanguage. Les actions personnalisées de validation peuvent utiliser la propriété CustomActionData pour obtenir l’ID de langue numérique. |
MsiProcessMessage | Traite les messages d’erreur ou de progression de l’action personnalisée. |
Une action personnalisée écrite en JScript ou VBScript nécessite l’objet de Session de l’installation. Il est de type Objet de session, et le programme d’installation l’attache au script avec le nom « Session ». Étant donné que l’objet Session n’existe peut-être pas lors d’une restauration d’installation, une action personnalisée différée écrite dans un script doit utiliser l’une des méthodes ou propriétés suivantes de l’objet Session pour récupérer son contexte.
Nom | Description |
---|---|
Mode, propriété | Retourne la valeur True pour MSIRUNMODE_SCHEDULED uniquement. |
Propriété Property (Objet de session) | Renvoie la propriété CustomActionData, la propriété ProductCode ou la propriété UserSID. |
Propriété Language (Objet de session) | Retourne l’ID de langue numérique de la session d’installation. |
Méthode Message | Appelé pour gérer les erreurs et la progression. |
Propriété Installer | Retourne l’objet parent, qui est utilisé pour les fonctions de non session telles que l’accès au Registre et la gestion de la configuration du programme d’installation. |
Les valeurs de propriété qui sont définies au moment où la séquence d’installation est traitée en script peuvent être indisponibles au moment de l’exécution du script. Seul l’ensemble limité de propriétés suivant est toujours accessible aux actions personnalisées pendant l’exécution du script.
Nom de la propriété | Description |
---|---|
CustomActionData | Valeur au moment où l’action personnalisée est traitée dans une table séquentielle. La propriété CustomActionData n’est disponible que pour les actions personnalisées d’exécution différée. Les actions personnalisées immédiates n’ont pas accès à cette propriété. |
ProductCode | Code unique pour le produit, une chaîne GUID. |
UserSID | Défini par le programme d’installation sur l’identificateur de sécurité (SID) de l’utilisateur. |
Si d’autres données de propriété sont requises par l’action personnalisée d’exécution différée, leurs valeurs doivent être stockées dans le script d’installation. Pour ce faire, utilisez une deuxième action personnalisée.
Écrire la valeur d’une propriété dans le script d’installation à utiliser pendant une action personnalisée d’exécution différée
- Insérez une petite action personnalisée dans la séquence d’installation qui définit la propriété d’intérêt sur une propriété portant le même nom que l’action personnalisée d’exécution différée. Par exemple, si la clé primaire de l’action personnalisée d’exécution différée est « MyAction », définissez une propriété nommée « MyAction » sur la propriété X que vous devez récupérer. Vous devez définir la propriété « MyAction » dans la séquence d’installation avant l’action personnalisée « MyAction ». Bien que n’importe quel type d’action personnalisée puisse définir les données de contexte, la méthode la plus simple consiste à utiliser une action personnalisée d’attribution de propriété (par exemple, Type d’action personnalisée 51).
- Au moment où la séquence d’installation est traitée, le programme d’installation écrit la valeur de la propriété X dans le script d’exécution comme valeur de la propriété CustomActionData.
Rubriques connexes