begin process at 2012 05 29 16:36:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

System

 > 

Privilèges administrateur sous Windows 7


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Privilèges administrateur sous Windows 7

dimanche 26 juin 2011 à 16:31:36 | Privilèges administrateur sous Windows 7

ArthurAuguste

Membre Club
Bonjour,
Je suis sous Windows XP, mais je voudrais qu'en exportant mon appli sur un ordi sous Windows 7, elle y fonctionne avec les privilèges administrateur (sans la lancer par clic droit puis sélection mode administrateur) en la lançant par simple double clic. Je suis allé voir le site de msn ainsi que quelques discussions sur Internet et voila ci-dessous ce que j'ai fait:
Création du fichier manifest.xml ci-dessous:
//*******************************************************
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.1.1.1" processorArchitecture="X86"
name="mxj.exe" type="win32" />
<description>elevate execution level</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
//********************************************************
Création d'un fichier manifest.rc ci-dessous:
//********************************************************
#include <windows.h>
#ifndef CREATEPROCESS_MANIFEST_RESOURCE_ID
#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
#endif
#ifndef RT_MANIFEST
#define RT_MANIFEST 24
#endif
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "manifest.xml"
//**********************************************************
Compilé mon appli mxj.cpp avec Borland bcc32.exe
Compilé mon appli manifest.rc avec Borland brc32.exe
Linké mxj.obj et manifest.res avec Borland ilink32.exe
Aucune erreur de compile, aucune erreur de linkage.
J'ai ensuite lancé mon appli mxj.exe, elle s'exécute normalement sans aucune différence avec avant, j'ai déjà dit que j'étais sous Windows XP version familiale et que je n'ai pas besoin de privilèges car je n'ai pas de virtualisation et j'avais déjà accès sans protection particulière aux registres. Je vérifiais seulement que mon appli avec maintenant le fichier manifest intégré marchait toujours.
Maintenant deux questions:
1.- Mon fichier manifest est-il correct, car comme je n'ai fait que recopier à droite à gauche je n'ai aucune idée si ma syntaxe est correcte et si elle sera efficace ? (je n'ai par exemple aucune idée de la validité des références placées derrière les deux paramètres xmlns ou version)
2.- Si j'exporte mon mxj.exe sur un ordi en windows 7 est-ce qu'il fonctionnera avec le privilège administrateur par simple lancement par double-clic (pas de clic droit) et sans avoir besoin de le recompiler sur cet ordi en windows 7 ? (pour info mon appli mxj.exe fonctionnait déjà sous windows 7 avant d'intégrer le fichier manifest mais à condition de le lancer par clic droit et privilèges administrateur).
Merci
mardi 28 juin 2011 à 02:13:31 | Re : Privilèges administrateur sous Windows 7

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

Si il était si simple d'acquerir les privilèges admin sous un S.E., il serait inutile de les avoir. C'est le login qui determine les privilèges. De plus, un mot de passe pourrait être nécessaire. Obtenir moins de droits est par contre possible.

@++
mardi 5 juillet 2011 à 05:23:45 | Re : Privilèges administrateur sous Windows 7

racpp

Administrateur CodeS-SourceS
Salut,
1- Le contenu de ton fichier manifest semble bon. J'utilise une autre variante pour éviter le plantage (reboot) du système à cause d'un bug sous XP SP2.
2- Sous Windows 7, seul l'administrateur racine, désactivé par défaut, a tous les privilèges. Les autres membres du groupe "Administrateurs" ont besoin d'élever les privilèges pour effectuer certaines tâches. Grâce à la présence du manifest inclus comme ressource dans l'exécutable et en lançant ce dernier (par double-clic par exemple), Windows affiche la boite UAC et attend que l'utilisateur accepte ou refuse l'élevation des privilèges. Le lancer depuis un compte du groupe "Utilisateurs" fera apparaitre la boite login + mot de passe d'un administrateur. Pas besoin de recompiler pour Windows 7. Je vais chercher parmi les codes source de mes installateurs et en adapter un pour le déposer sur le site dès que j'ai un peu de temps libre.
mardi 5 juillet 2011 à 22:33:15 | Re : Privilèges administrateur sous Windows 7

ArthurAuguste

Membre Club
Bonjour,
Merci pour vos réponses, je viens d'avoir le retour des essais que la personne qui a le micro sous Windows7 a fait avec le .exe compilé chez moi sous XP avec inclusion du fichier manifest.
Résultat: Presque tout marche: pas de question posée à l'utilisateur lorsqu'il lance le .exe par simple double clic, pourtant le .exe va modifier les registres de windows en particulier pour s'y mettre lui dans les registres afin d'être automatiquement lancé à chaque redémarrage du micro.
Pas de question non plus posée à l'utilisateur quand le programme est ensuite lancé automatiquement par windows à la relance du micro.
Si on s'arrêtait là tout serait parfait.
Seul petit hic, après une relance auto par windows, il y a un moment où le .exe va modifier un fichier qui se trouve sous c:/program files (x86)/ (adresse réelle, pas virtuelle) et là windows sort le message: "Voulez-vous autoriser le programme provenant d'un éditeur inconnu à apporter des modifications à cet ordinateur" en donnant le nom du programme ainsi que le nom du fichier. Avant la relance du micro le .exe avait aussi modifié ce même fichier et là windows n'avait pas posé de question !
Je ne sais pas si on peut contourner ce message tout en laissant le fichier modifié au même endroit, sinon, je pense qu'on doit pouvoir l'éviter en mettant le fichier sous c:/utilisateurs/....
mercredi 6 juillet 2011 à 01:18:09 | Re : Privilèges administrateur sous Windows 7

racpp

Administrateur CodeS-SourceS
Ce message "Voulez-vous autoriser ..." est affiché par la boite UAC qui permet justement d'élever les privilèges de l'exécutable en cliquant sur "Oui". Normalement, seule la présence du manifest provoquera l'apparition de cette boite sous Vista/7 au lancement de l'exe. Je trouve étrange qu'elle ne soit pas affichée lors du lancement par double clic.
mercredi 6 juillet 2011 à 08:03:24 | Re : Privilèges administrateur sous Windows 7

ArthurAuguste

Membre Club
Oui, mais j'ai besoin du manifest, sinon lorsque le .exe est lancé automatiquement au démarrage de windows il va chercher le fichier à modifier dans l'adresse virtuelle au lieu d'aller le chercher là où il faut (à l'adresse réelle sous program files\)! Si la question n'est pas posée lors du lancement manuel par double clic c'est peut-être parce que c'est à ce moment là que le .exe crée le fichier qu'il modifie ensuite.
A+
mercredi 6 juillet 2011 à 13:32:44 | Re : Privilèges administrateur sous Windows 7

racpp

Administrateur CodeS-SourceS
Bien sûr le manifest est obligatoire pour élever les privilèges. Je veux dire que même si ton exécutable ne fait rien, la boite UAC devra être affichée juste à cause de la présence du manifest.
Non, normalement, pour la création et la modification de ton fichier, ton exécutable aura besoin des privilèges requis.


Cette discussion est classée dans : exe, appli, windows, administrateur, manifest


Répondre à ce message

Sujets en rapport avec ce message

la question qui tue ! [ par cedcrow ] Salut,je lance une application windows fille(B) à partir d'une dll d'une appli windows mère(A). Pour cela je fait un spawn avec le paramètre _P_WAIT p Lancer un exe depuis mon appli [ par crocejf2000 ] Salut tout lmonde,Je sais qu'il est possible de lancer un exe et créant un nouveau thread, mais il me semble qu'il y a une autre methode, et le proble Probleme: copie d'un fichier dans le repertoire de Windows [ par PinkRabbit84 ] Bon voila... je suis en train d'apprendre le C++ et je veux copier le EXE dans le repertoire de Windows mais ca marche pas:if(GetWindowsDirectory(lpsz Comment lancer son appli (VC++6) en tant que service windows? [ par tad20 ] Tout est ds le titremon appli est serveur développer en VC6 mais je ne sais pas comment le déclarer en tant que service windows! Merci MFC RichEdit [ par mfrai02 ] Salut , j'utilise visual studio .net 2003 et j'ai un projet C++ mfc . Dans mon application j'ai ajouté une CRichEdit (Rich Edit 2.0) . Je fais rien Ca fonctionne qu'à partir de Visual C, pas avec l'exe ! [ par schn ] Bonjour,J'ai une appli qui tourne sous Visual C++. net (appli MFC)J'utilise une bdd ACCESS.Tout fonctionne bien lorsque j'execute mon code à partir de Fichier d'installation [ par gagah1 ] Salut à tous.Je voudrais créer un fichier d'installation (SETUP.EXE), sur lequel je voudrais savoir comment on fait pour donner l'ordre à WINDOWS qu'u [C++] des erreurs lors du run d'exe [ par tarikbenn ] Bonjour tout le monde. Je dois compiler et utiliser Darwin streaming server d'apple. Tout cela s'inscrit das le cadre de quelque chose de plus grand q trouver l'exe [ par lektrosonic ] Bonsoir, en C et en API windows, comment trouver le hwnd d'un processus (il n'a que un hwnd) en connaissant le nom de l'executable, exemple "main.exe" windows/svchost.exe [ par katalote ] Bonjour,je souhaiterai de l'aide car je debute quand mon pc demarre il m'affiche un message me disant qu'il ne trouve pas le fichier windows/svchost.e


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,373 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales