IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Elévation de privilège runas


Sujet :

Langage Delphi

  1. #1
    Membre actif
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 416
    Points : 299
    Points
    299
    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.
    “La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.” Antoine de Saint-Exupéry.

    D1..D7-2005,2006-Xe2 Ent-XE7 archi-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win10,Win7/64-Xp-
    _____________________________________________________

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 677
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 677
    Points : 13 082
    Points
    13 082
    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 actif
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 416
    Points : 299
    Points
    299
    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...
    “La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.” Antoine de Saint-Exupéry.

    D1..D7-2005,2006-Xe2 Ent-XE7 archi-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win10,Win7/64-Xp-
    _____________________________________________________

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 677
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 677
    Points : 13 082
    Points
    13 082
    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 actif
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 416
    Points : 299
    Points
    299
    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
    “La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.” Antoine de Saint-Exupéry.

    D1..D7-2005,2006-Xe2 Ent-XE7 archi-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win10,Win7/64-Xp-
    _____________________________________________________

Discussions similaires

  1. Elévation de privilège VBS
    Par liondu75 dans le forum VBScript
    Réponses: 11
    Dernier message: 16/10/2012, 19h13
  2. [Windows] Compte RunAs du service & privilèges
    Par LeoAnderson dans le forum Administration
    Réponses: 7
    Dernier message: 06/11/2009, 16h49
  3. privilège
    Par onet dans le forum Administration
    Réponses: 5
    Dernier message: 05/07/2004, 00h39
  4. [DBA] Calcul des Statistiques sans privilèges DBA
    Par Krashtest dans le forum Administration
    Réponses: 14
    Dernier message: 06/05/2004, 16h08
  5. Rôles et Privilèges
    Par PhoneKilleR dans le forum Administration
    Réponses: 10
    Dernier message: 28/10/2003, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo