155 votes

Forcer un programme à s'exécuter *sans* privilèges administratifs ou UAC ?

Y a-t-il un moyen de forcer un programme qui nécessite normalement des privilèges administratifs (via UAC) à s'exécuter sans eux ? (c'est-à-dire sans invite UAC et sans accès système étendu.)

Ajouté : Sans modifier l'exécutable lui-même.


Malgré la réponse de James, j'ai trouvé quelques façons de le faire presque :

  1. En modifiant l'exécutable, je peux supprimer l'entrée trustInfo du manifeste (ou le manifeste entièrement, afin que je puisse en utiliser un externe), permettant au programme de démarrer sans UAC. Malheureusement, cela modifie l'exécutable, qui se ferme peu de temps après en raison d'un test de somme de contrôle interne.
  2. En utilisant Process Explorer, je peux le lancer en tant qu'Utilisateur Limité. Cependant, cela semble le limiter significativement plus que je ne le voudrais (il s'exécute comme Internet Explorer en Mode Protégé et peut donc accéder à significativement moins que ce que peut mon utilisateur standard non élevé).

2 votes

Vous spécifiez de ne pas modifier l'exécutable, pourtant la modification du fichier .exe est l'une de vos méthodes tentées?

3 votes

@ekaj J'ai seulement précisé que après avoir découvert que ça ne fonctionnerait pas ;)

0 votes

Pourriez-vous peut-être préciser le programme, même si vous ne l'utilisez plus? Cela pourrait aider les gens à savoir ce qu'il essaie d'accéder qui nécessite des privilèges administratifs

3voto

Aurimas Points 204

Alors qu'Andrew indiquait dans sa question que ce qui suit ne fonctionnait pas tout à fait :

En modifiant l'exécutable, je peux supprimer l'entrée trustInfo du manifeste (ou le manifeste entier, pour utiliser un externe), permettant au programme de démarrer sans UAC. Malheureusement, cela modifie l'exécutable, qui se ferme peu de temps après en raison d'un test de somme de contrôle interne.

J'ai pu modifier un fichier .manifest externe pour le logiciel que j'utilisais et changer

à

Il s'avère que le logiciel que j'utilisais n'avait pas vraiment besoin de droits administratifs, j'ai donc pu l'exécuter avec un compte utilisateur standard sans UAC ni mot de passe administrateur. Merci !

0 votes

Il pourrait être plus facile de modifier l'exécutable lui-même, car le manifeste peut simplement être inclus dans le fichier. Notez que le préfixe d'espace de noms ms_asmv2: peut également être omis. De plus, il est possible que modifier la taille du bloc xml intégré corrompe le binaire, donc "requireAdministrator" devrait être changé en "asInvoker" complété à la même longueur avec des espaces avant uiAccess.

2voto

Kenshin Points 101

J'ai résolu ce problème aujourd'hui en utilisant le MS application customization toolkit.

J'ai suivi les instructions dans un article de Tech Republic.

En gros :

1) vous obtenez le toolkit de MS ici.

2) Cliquez sur Réparer

3) Choisissez l'option RunAsInvoker

4) Cliquez avec le bouton droit sur la réparation et choisissez Installer

0 votes

Votre réponse fait exactement l'effet inverse de ce qui est désiré. La question initiale était de savoir comment forcer une application qui demande des privilèges élevés à s'exécuter sans les élever. Votre réponse utilise toujours UAC mais désactive simplement cette invite. C'est une mauvaise réponse pour cette question.

0 votes

@mxx en fait non. Si l'utilisateur actuel est limité (ou si vous avez activé UAC), le processus se lancera alors avec des privilèges limités.

1 votes

@LogicDaemon Si vous lisez réellement l'article, vous verrez qu'il explique que si vous suivez ces étapes, vous exécuterez une application en tant qu'administrateur sans invite UAC. C'est le contraire de ce que l'OP a demandé.

0voto

Maxence Points 151

Il y a deux façons. Vous pouvez utiliser RunAs avec un nom d'utilisateur standard:

RunAs /user:StandardUser C:\Temp\Foo.exe

Mais vous devrez entrer le mot de passe de l'utilisateur.

Ou vous pouvez utiliser PsExec de SysInternals, où vous pouvez passer le mot de passe comme argument:

PsExec -u StandardUser -p secret C:\Temp\Foo.exe

0 votes

Ne fonctionne pas : retourne 740 : L'opération demandée nécessite une élévation

-3voto

Tim D Points 3

J'ai résolu ce problème en changeant les autorisations sur le dossier contenant le programme.

J'ai ajouté chaque utilisateur qui exécutera ce programme et leur ai donné des privilèges "contrôle total". Cela a résolu le problème et j'ai laissé la case "exécuter en tant qu'admin" décochée.

Je n'ai aucune préoccupation en matière de sécurité pour les utilisateurs qui exécuteront le programme.

-7voto

webworm Points 590

Non, si un programme nécessite le Contrôle de compte d'utilisateur (UAC), c'est qu'il essaie d'accéder à quelque chose en dehors de son bac à sable. Le programme ne fonctionnera pas correctement sans l'accès élevé.

Si vous voulez simplement vous débarrasser de la notification, vous pouvez désactiver l'UAC.

Désactiver l'UAC sur Windows Vista : Démarrer, taper "utilisateur". Cliquez sur "Comptes d'utilisateur". Sur la fenêtre qui s'ouvre, cliquez sur "Paramètres du Contrôle de compte d'utilisateur" puis désactivez l'UAC.

Désactiver l'UAC sur Windows 7 : Démarrer, taper "utilisateur". Cliquez sur "Paramètres du Contrôle de compte d'utilisateur". Faites glisser la barre de choix complètement en bas sur "Ne jamais notifier".

8 votes

Désactiver l'UAC n'est pas ce que je cherche à accomplir. De plus : votre description du fonctionnement de l'UAC est correcte seulement dans un sens général. Il est possible pour un programme de demander l'UAC quand il n'en a pas strictement besoin. Et l'UAC se produit avant qu'un programme démarre - une fois en cours d'exécution, s'il dépasse ses autorisations, il obtiendra simplement des erreurs de permission refusée.

0 votes

Mettons la sémantique de côté : vous ne pouvez pas "désactiver" les notifications UAC pour un programme spécifique tout en limitant toujours leur accès.

0 votes

James: En fait - il semble que vous puissiez - j'ai mis à jour ma question.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X