Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre habitué Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : février 2009
    Messages : 278
    Points : 133
    Points
    133

    Par défaut Elévation de privilège runas

    Bonjour,

    J'ai posé un complément de question sur un post résolu:
    http://www.developpez.net/forums/d12...as-faq-delphi/
    comme j'ai un peu avancé, je continue sur un nouveau, car j'ai d'autres questions.

    Résumé:
    Je lance des applications (exe ou encore msi), à partir d'un programme parent. J'ai des problèmes d'élévation de privilège, sous vista et sous Seven.

    J'ai résolu mon premier problème avec le lancement de mon msi sous RUNAS, mais en fait, je ne vois pas trop ce que cela implique.
    En, fait pour lancer un msi avec le verbe runas, je lance msiexec et je passe en paramètre mon msi.
    Là ça passe.

    Sauf, que je ne vois pas trop le changement !

    1) Cas de figure User de base, UAC activé au maximum de sécurité, avec ou sans runas, même résultat, j'ai la boite de dialogue qui s'ouvre pour que l'admin rentre son pass. Le fonctionnement avec l'élévation de privilège est correct, msi installé.

    2) Cas de figure User de base UAC désactivé, avec ou sans runas, aucun effet, l'élévation de privilège n'est pas demandée !
    => que mon msi n'est pas installé, car l'user lambda n'a pas les droits pour écrire dans Program files par exemple.

    J'ai tenté en plaçant un manifeste, mais je ne suis pas certain que cela puisse être fonctionnel avec un msi, lancé par msiexec explicitement.
    Le manifeste est mis à RequireAdministrator, mais aucun changement de comportement, pour le cas 1) ou 2)...

    Où est ce que je me gourre ?
    Dans le fonctionnement de l'élévation de privilège ?

    Avez vous une idée ou pouvez-vous m'éclairer sur le fonctionnement de l'élévation de privilège. Il est bien entendu que j'ai fait pas mal de recherche sur MSDN et ici, ainsi que la lecture du tuto Pascal Fonteneau.

    Y a qq. chose qui m'échappe...
    merci pour votre aide.
    D1..D7-2005,2006-Xe2 Ent-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win7/64-Xp-
    _____________________________________________________

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    septembre 2008
    Messages
    3 357
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 3 357
    Points : 5 399
    Points
    5 399

    Par défaut

    L'élévation de privilèges fait partie de l'UAC. Donc si tu l'as désactivé, pas de demande et c'est a toi de contrôler les droits admin de l'utilisateur courant et le cas échéant de le notifier par un message du type "Requiert des droits administrateurs. Installation interrompue".

    Avec RequireAdministrator et l'UAC activé, c'est au lancement de ton exe que l'élévation sera demandée. RunAs ne devrait plus être utile puisque le msi sera déjà exécuté depuis un contexte de sécurité élevé.

  3. #3
    Membre habitué Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : février 2009
    Messages : 278
    Points : 133
    Points
    133

    Par défaut

    Citation Envoyé par Andnotor Voir le message
    L'élévation de privilèges fait partie de l'UAC. Donc si tu l'as désactivé, pas de demande et c'est a toi de contrôler les droits admin de l'utilisateur courant et le cas échéant de le notifier par un message du type "Requiert des droits administrateurs. Installation interrompue".

    Avec RequireAdministrator et l'UAC activé, c'est au lancement de ton exe que l'élévation sera demandée. RunAs ne devrait plus être utile puisque le msi sera déjà exécuté depuis un contexte de sécurité élevé.
    AndNotOr,

    C'est ce qu'il me semblait, mais avec un UAC désactivé, comment lancer l'élévation de privilège ?
    Avec le manifest, il ne se passe rien, ou alors je le configure mal, (sûrement ça d'ailleurs).

    Pour être clair, je lance le shellexecuteEx avec comme exe MsiExec et comme param le package msi, a ton avis, le manifest je le fait pour msiexec ou pour le msi ?

    Si c'est pour msiexec, comme indiqué par Pascal Fonteneau, le manifest doit être dans le même répertoire que l'exécutable, soit %sytem32%\ hors, l'utilisateur n'a pas les droits d'écriture dans ce dossier pour placer le manifest !!!

    Pour le msi, le manifest ne fait rien...
    D1..D7-2005,2006-Xe2 Ent-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win7/64-Xp-
    _____________________________________________________

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    septembre 2008
    Messages
    3 357
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 3 357
    Points : 5 399
    Points
    5 399

    Par défaut

    Citation Envoyé par castorcharly Voir le message
    ...mais avec un UAC désactivé, comment lancer l'élévation de privilège ?
    Je répète : pas d'élévation si UAC désactivé ! Ne mélange pas élévation de privilèges et droits administrateur. Sans UAC, le comportement est le même que sous XP.
    Le problème avec Seven est que la demande d'authentification est désactivée par défaut (elle est activée dans Win8 CP). Il n'y a donc aucun prompt et ShellExecute échoue.

    Pour l'activer : Outils d'administration -> Stratégie de sécurité locale -> Stratégie locale -> Options de sécurité -> Contrôle de compte utilisateur : Exécuter le comptes d'administrateurs en mode d'approbation d'administrateur.

    Mais je sais, ça ne résoudra pas l'installation chez un client... Dans ce cas, pas d'autres choix que de faire click-droit et "Exécuter en tant qu'administrateur"

  5. #5
    Membre habitué Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : février 2009
    Messages : 278
    Points : 133
    Points
    133

    Par défaut

    Citation Envoyé par Andnotor Voir le message
    Je répète : pas d'élévation si UAC désactivé ! Ne mélange pas élévation de privilèges et droits administrateur. Sans UAC, le comportement est le même que sous XP.
    Le problème avec Seven est que la demande d'authentification est désactivée par défaut (elle est activée dans Win8 CP). Il n'y a donc aucun prompt et ShellExecute échoue.

    Pour l'activer : Outils d'administration -> Stratégie de sécurité locale -> Stratégie locale -> Options de sécurité -> Contrôle de compte utilisateur : Exécuter le comptes d'administrateurs en mode d'approbation d'administrateur.

    Mais je sais, ça ne résoudra pas l'installation chez un client... Dans ce cas, pas d'autres choix que de faire click-droit et "Exécuter en tant qu'administrateur"
    D'abord, merci de t'interresser à mon problème.
    Effectivement, je n'ai pas tout compris de l'utilité et du fonctionnement de l'UAC.
    Tes infos sont précieuses.

    Il est dommage qu'on ne puisse faire en sorte, qu'une application soit exécutée sous tel ou tel compte, (sans pour autant connaître le pass).
    Le principe d'ouverture du dialog de connexion de l'admin de base me parraissait bien pratique...

    L'absence d'une API permettant de lancer un fichier (exe ou msi), comme un clic droit/Démarrer en tant qu'administrateur me fait cruellement défaut. J'avais pourtant compris que le Runas était cette "API", sous forme de paramètres pour ShellExecuteEx.
    Je ne vois donc pas à quoi sert ce verbe
    D1..D7-2005,2006-Xe2 Ent-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win7/64-Xp-
    _____________________________________________________

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •