none
Lancer en mode utilisateur un meta installeur qui a son tour lance plusieurs installeurs RRS feed

  • Question

  • Bonjour

    Je suis tombé sur un problème plutôt bizarre: à partir de mon meta installeur, lancé en mode utilisateur limité, je crée dans le dossier %Temp%/monDossier du système (Windows XP) plusieurs fichiers et je lance un autre installeur (fait par quelqu'un d'autre) à partir de ces fichiers dans un processus indépendant (CreateProcess). Le deuxième installeur essaye à son tour de créer dans le même dossier %Temp/{etc}% d'autres fichiers, mais cette fois la création des fichiers échoue. Je ne comprends pas pourquoi mon installeur peut créer des fichiers dans le dossier %Temp%, alors que le deuxième installeur ne peut pas. Voici le code de lancement du deuxième installeur:

    		CreateProcess(_szFullFileName, /* app. name */
    
    			_szParams,  /* app. parametres */
    			NULL,  /* process attributes */
    			NULL,  /* thread attributes */
    			FALSE, /* inherit handles */
    			0,   /* creation flags */
    			NULL,  /* Use parent's environment block */
    			_szTempPath,  /* Starting directory */
    			&_si,  
    			&_pi);
    


    bogdan
    jeudi 9 juin 2011 16:42

Réponses

  • Vous vous compliquez la vie pour rien.

    La gestion de la sécurité pour un installeur, ce n'est pas à vous de vous en charger mais à Windows Installer.

    Il n'y aura aucun problème autre que de la configuration de GPO lors de l'installation d'un msi.

    Pour faire une installation modulaire, demandez à vos interlocuteurs des MSM et non des EXE.

    Si vous voulez vraiment vous enquiquinez avec votre bricolage :

    - vérifiez les paramètres passés à CreateProcess, et ils sont fort nombreux et complexes (http://msdn.microsoft.com/en-us/library/ms682425(v=vs.85).aspx) , en particulier sur l'impersonation et l'héritage des tokens de sécurités

    - vérifiez le code d'erreur retourné pour l'appel système en échec.

    Comme les cas d'erreurs sont légion, il faut le code d'erreur précis pour connaître la source du problème.

    MAIS le plus simple, c'est de faire simple, un MSI avec des MSM.


    Paul Bacelar, Ex - MVP VC++
    lundi 13 juin 2011 17:01
    Modérateur

Toutes les réponses

  • En fait est-ce que le deuxième installateur lancé séparément à partir de Windows créé les fichiers normalement sur ce compte limité ou est-ce qu'il échoue aussi lors de la création des fichiers ?

    Quel version de compilateur utilisez-vous ?

    Pourquoi ne pas utiliser la commande plus simple: _spawnv


    Delphine GARRO
    vendredi 10 juin 2011 14:05
  • Bonjour

    Le deuxième installeur, lancé séparement, échoue lors de la création des fichiers sous un compte limité. 

    Est-il possible d'acquerir temporairement les droits d'administrateur sous WinXP en utilisant un dialogue standard ?

    Je travaillle sous Visual Studio 2005

    merci


    bogdan
    vendredi 10 juin 2011 19:50
  • Vous vous compliquez la vie pour rien.

    La gestion de la sécurité pour un installeur, ce n'est pas à vous de vous en charger mais à Windows Installer.

    Il n'y aura aucun problème autre que de la configuration de GPO lors de l'installation d'un msi.

    Pour faire une installation modulaire, demandez à vos interlocuteurs des MSM et non des EXE.

    Si vous voulez vraiment vous enquiquinez avec votre bricolage :

    - vérifiez les paramètres passés à CreateProcess, et ils sont fort nombreux et complexes (http://msdn.microsoft.com/en-us/library/ms682425(v=vs.85).aspx) , en particulier sur l'impersonation et l'héritage des tokens de sécurités

    - vérifiez le code d'erreur retourné pour l'appel système en échec.

    Comme les cas d'erreurs sont légion, il faut le code d'erreur précis pour connaître la source du problème.

    MAIS le plus simple, c'est de faire simple, un MSI avec des MSM.


    Paul Bacelar, Ex - MVP VC++
    lundi 13 juin 2011 17:01
    Modérateur