Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Claude BELLAMY
Le vendredi 26/08/2011 17:39:15, Julien Tartarin a écrit dans le message <news: ce qui suit :
Bonjour
Quelqu'un connait les API qui permettent d'exécuter une appli en mode Admin ?
ATTENTION : ne pas confondre : - l'exécution d'un processus sous un compte donné (ce qui existe depuis W2K avec la fonction "CreateProcessWithLogonW", et que j'utilise dans SUperExec) - l'exécution d'un processus avec un certain niveau de privilèges (apparu avec UAC, donc depuis Vista), pour laquelle il n'existe pas d'API. Par contre, il est possible d'indiquer dans un fichier .manifest dans quel contexte doit être exécutée l'appli.
P.ex., pour qu'un exécutable requière systématiquement des privilèges admin, il faut qu'il ait été doté d'un fichier manifest (ou compilé avec) contenant l'instruction :
Et si l'appli est déjà compilée (sans fichier manifest) , pour obliger son exécution en tant qu'admin, on peut passer par un script qui fait appel au verbe "runas" du shell de Windows :
Fichier "elevate.vbs" ----------- couper ici ----------- Set args = Wscript.Arguments nbargs=args.count If nbargs=0 Then Wscript.quit Appli=args(0) Params="" For i= 1 To nbargs-1 Params=Params+" "+args(i) Next Set Shell=Wscript.CreateObject("Shell.Application") Shell.ShellExecute Appli,Params,"","runas" ----------- couper ici -----------
--
May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP Expert IT Pro] http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Le vendredi 26/08/2011 17:39:15, Julien Tartarin a écrit dans le
message <news:beff57tsej9e2eninh34g1o57r70m12clb@4ax.com> ce qui suit :
Bonjour
Quelqu'un connait les API qui permettent d'exécuter une appli en mode Admin
?
ATTENTION : ne pas confondre :
- l'exécution d'un processus sous un compte donné (ce qui existe depuis
W2K avec la fonction "CreateProcessWithLogonW", et que j'utilise dans
SUperExec)
- l'exécution d'un processus avec un certain niveau de privilèges
(apparu avec UAC, donc depuis Vista), pour laquelle il n'existe pas
d'API.
Par contre, il est possible d'indiquer dans un fichier .manifest dans
quel contexte doit être exécutée l'appli.
P.ex., pour qu'un exécutable requière systématiquement des privilèges
admin, il faut qu'il ait été doté d'un fichier manifest (ou compilé
avec) contenant l'instruction :
Et si l'appli est déjà compilée (sans fichier manifest) , pour obliger
son exécution en tant qu'admin, on peut passer par un script qui fait
appel au verbe "runas" du shell de Windows :
Fichier "elevate.vbs"
----------- couper ici -----------
Set args = Wscript.Arguments
nbargs=args.count
If nbargs=0 Then Wscript.quit
Appli=args(0)
Params=""
For i= 1 To nbargs-1
Params=Params+" "+args(i)
Next
Set Shell=Wscript.CreateObject("Shell.Application")
Shell.ShellExecute Appli,Params,"","runas"
----------- couper ici -----------
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP Expert IT Pro]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Le vendredi 26/08/2011 17:39:15, Julien Tartarin a écrit dans le message <news: ce qui suit :
Bonjour
Quelqu'un connait les API qui permettent d'exécuter une appli en mode Admin ?
ATTENTION : ne pas confondre : - l'exécution d'un processus sous un compte donné (ce qui existe depuis W2K avec la fonction "CreateProcessWithLogonW", et que j'utilise dans SUperExec) - l'exécution d'un processus avec un certain niveau de privilèges (apparu avec UAC, donc depuis Vista), pour laquelle il n'existe pas d'API. Par contre, il est possible d'indiquer dans un fichier .manifest dans quel contexte doit être exécutée l'appli.
P.ex., pour qu'un exécutable requière systématiquement des privilèges admin, il faut qu'il ait été doté d'un fichier manifest (ou compilé avec) contenant l'instruction :
Et si l'appli est déjà compilée (sans fichier manifest) , pour obliger son exécution en tant qu'admin, on peut passer par un script qui fait appel au verbe "runas" du shell de Windows :
Fichier "elevate.vbs" ----------- couper ici ----------- Set args = Wscript.Arguments nbargs=args.count If nbargs=0 Then Wscript.quit Appli=args(0) Params="" For i= 1 To nbargs-1 Params=Params+" "+args(i) Next Set Shell=Wscript.CreateObject("Shell.Application") Shell.ShellExecute Appli,Params,"","runas" ----------- couper ici -----------
--
May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP Expert IT Pro] http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Julien Tartarin
Dans l'article <4e57c8b5$0$30784$, Jean-Claude BELLAMY écrit:
P.ex., pour qu'un exécutable requière systématiquement des privilèges admin, il faut qu'il ait été doté d'un fichier manifest (ou compilé avec) contenant l'instruction :
Je veux bien compiler mon appli avec ce fichier manifest. Comment dois-je l'inclure avec Delphi ?
-- Julien Tartarin 13 rue de l'Hermitage Le Pallet, 44330 0699951234
Dans l'article <4e57c8b5$0$30784$ba4acef3@reader.news.orange.fr>, Jean-Claude
BELLAMY <Jean-Claude.Bellamy@wanadoo.fr> écrit:
P.ex., pour qu'un exécutable requière systématiquement des privilèges
admin, il faut qu'il ait été doté d'un fichier manifest (ou compilé
avec) contenant l'instruction :
Dans l'article <4e57c8b5$0$30784$, Jean-Claude BELLAMY écrit:
P.ex., pour qu'un exécutable requière systématiquement des privilèges admin, il faut qu'il ait été doté d'un fichier manifest (ou compilé avec) contenant l'instruction :
Je veux bien compiler mon appli avec ce fichier manifest. Comment dois-je l'inclure avec Delphi ?
-- Julien Tartarin 13 rue de l'Hermitage Le Pallet, 44330 0699951234
Jean-Claude BELLAMY
Le samedi 27/08/2011 04:10:40, Julien Tartarin a écrit dans le message <news: ce qui suit :
Dans l'article <4e57c8b5$0$30784$, Jean-Claude BELLAMY écrit:
P.ex., pour qu'un exécutable requière systématiquement des privilèges admin, il faut qu'il ait été doté d'un fichier manifest (ou compilé avec) contenant l'instruction :
Je veux bien compiler mon appli avec ce fichier manifest. Comment dois-je l'inclure avec Delphi ?
TU crées (sous NOTEPAD p.ex.) un fichier .manifest comme celui que j'ai donné dans mon message précédent (ici j'ai repris uniquement l'essentiel), en l'appelant (p.ex.) "RequireAdmin.manifest" :
(pour info, 1 est l'ID de la ressource, et 24 son type)
Ensuite, dans une fenêtre de commandes, dans le dossier contenant les 2 fichier .manifest et .rc, tu exécutes la commande suivante :
brcc32 RequireAdmin.rc
Cela va générer un fichier "RequireAdmin.res"
et pour finir, tu insères la ligne suivante dans ton unité principale, p.ex. après la déclaration "Uses" de "implementation", :
{$R 'RequireAdmin.RES'}
et tu compiles !
Tu peux aussi télécharger un tel fichier .RES depuis mon site, à l'adresse :
http://www.bellamyjc.org/download/UAC_Manifest.RES" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.bellamyjc.org/download/UAC_Manifest.RES (876 octets) (si tu optes pour ce fichier, à moins de le renommer, évidemment il faudra changer la ligne $R... en {$R UAC_Manifest.RES'} )
NB: c'est plus long à décrire qu'à faire !!!
--
May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP Expert IT Pro] http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Le samedi 27/08/2011 04:10:40, Julien Tartarin a écrit dans le message
<news:4ekg579anuuvj4lkbhe9pd476he0i4sepm@4ax.com> ce qui suit :
Dans l'article <4e57c8b5$0$30784$ba4acef3@reader.news.orange.fr>, Jean-Claude
BELLAMY <Jean-Claude.Bellamy@wanadoo.fr> écrit:
P.ex., pour qu'un exécutable requière systématiquement des privilèges
admin, il faut qu'il ait été doté d'un fichier manifest (ou compilé
avec) contenant l'instruction :
Je veux bien compiler mon appli avec ce fichier manifest. Comment dois-je
l'inclure avec Delphi ?
TU crées (sous NOTEPAD p.ex.) un fichier .manifest comme celui que j'ai
donné dans mon message précédent (ici j'ai repris uniquement
l'essentiel), en l'appelant (p.ex.) "RequireAdmin.manifest" :
(pour info, 1 est l'ID de la ressource, et 24 son type)
Ensuite, dans une fenêtre de commandes, dans le dossier contenant les 2
fichier .manifest et .rc, tu exécutes la commande suivante :
brcc32 RequireAdmin.rc
Cela va générer un fichier "RequireAdmin.res"
et pour finir, tu insères la ligne suivante dans ton unité principale,
p.ex. après la déclaration "Uses" de "implementation", :
{$R 'RequireAdmin.RES'}
et tu compiles !
Tu peux aussi télécharger un tel fichier .RES depuis mon site, à
l'adresse :
http://www.bellamyjc.org/download/UAC_Manifest.RES
(876 octets)
(si tu optes pour ce fichier, à moins de le renommer, évidemment il
faudra changer la ligne $R... en {$R UAC_Manifest.RES'} )
NB: c'est plus long à décrire qu'à faire !!!
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP Expert IT Pro]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Le samedi 27/08/2011 04:10:40, Julien Tartarin a écrit dans le message <news: ce qui suit :
Dans l'article <4e57c8b5$0$30784$, Jean-Claude BELLAMY écrit:
P.ex., pour qu'un exécutable requière systématiquement des privilèges admin, il faut qu'il ait été doté d'un fichier manifest (ou compilé avec) contenant l'instruction :
Je veux bien compiler mon appli avec ce fichier manifest. Comment dois-je l'inclure avec Delphi ?
TU crées (sous NOTEPAD p.ex.) un fichier .manifest comme celui que j'ai donné dans mon message précédent (ici j'ai repris uniquement l'essentiel), en l'appelant (p.ex.) "RequireAdmin.manifest" :
(pour info, 1 est l'ID de la ressource, et 24 son type)
Ensuite, dans une fenêtre de commandes, dans le dossier contenant les 2 fichier .manifest et .rc, tu exécutes la commande suivante :
brcc32 RequireAdmin.rc
Cela va générer un fichier "RequireAdmin.res"
et pour finir, tu insères la ligne suivante dans ton unité principale, p.ex. après la déclaration "Uses" de "implementation", :
{$R 'RequireAdmin.RES'}
et tu compiles !
Tu peux aussi télécharger un tel fichier .RES depuis mon site, à l'adresse :
http://www.bellamyjc.org/download/UAC_Manifest.RES" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.bellamyjc.org/download/UAC_Manifest.RES (876 octets) (si tu optes pour ce fichier, à moins de le renommer, évidemment il faudra changer la ligne $R... en {$R UAC_Manifest.RES'} )
NB: c'est plus long à décrire qu'à faire !!!
--
May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP Expert IT Pro] http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Julien Tartarin
NB: c'est plus long à décrire qu'à faire !!!
Merci Jean-Claude. Je n'imaginais pas que c'était aussi simple. Il suffisait de connître le type.
Je vais télécharger ton fichier .RES et l'éditer avec XN Resource Editor.
-- Julien Tartarin 13 rue de l'Hermitage Le Pallet, 44330 0699951234
NB: c'est plus long à décrire qu'à faire !!!
Merci Jean-Claude. Je n'imaginais pas que c'était aussi simple. Il suffisait de
connître le type.
Je vais télécharger ton fichier .RES et l'éditer avec XN Resource Editor.
--
Julien Tartarin
13 rue de l'Hermitage
Le Pallet, 44330
0699951234
julien@mailjet.com
ovh@mailjet.com
jt@sdns.fr