7 votes

Déboguer une application sans droits d'administrateur dans Visual Studio

J'ai une application qui est censée fonctionner sans droits d'administrateur, mais elle échoue dans ce scénario. J'ai essayé d'exécuter mon application en tant qu'administrateur, et elle fonctionne. Mais ce n'est pas ce que je veux.

Ce que je veux, c'est un moyen de déboguer mon application sans privilèges d'administrateur, afin de pouvoir déterminer ce qui la fait échouer lorsqu'elle est exécutée en tant qu'utilisateur normal... afin de savoir au moins quelle est la cause, et éventuellement de la faire fonctionner sans droits d'administrateur.

Chaque fois que je lance Visual Studio 2015, il démarre avec des privilèges d'administrateur. Aucun moyen de s'en débarrasser (Administrator) dans la barre de titre :

enter image description here

J'ai essayé runas /netonly /user:User devenv.exe en vain :

enter image description here

Si j'essaie d'exécuter VS2015 sous un autre compte plus restreint, il dit qu'il a besoin de privilèges d'administration et ne s'exécute pas :

enter image description here

En cliquant sur "Cancel the task ad return to Visual Studio", vous ne retournerez pas à VS, mais vous le fermerez.

Le problème est que lorsque je lance mon application sans privilèges d'administrateur, elle ne s'ouvre pas. Aucun message. Aucun message, rien. Mais lorsque j'essaie de la déboguer dans Visual Studio, elle s'exécute... parce que VS lui-même ne s'exécute qu'en tant qu'administrateur.

Existe-t-il un moyen de déboguer sans droits d'administrateur ?

2voto

Chris Bartlett Points 192

Si vous cliquez avec le bouton droit de la souris sur le raccourci et que vous sélectionnez les propriétés, puis l'onglet du raccourci, il y a un bouton avancé. Cliquez dessus et vous pouvez alors sélectionner l'application pour qu'elle ne démarre pas en mode administrateur. Sachez également que si vous utilisez iis, vous aurez besoin que VS soit exécuté en mode administrateur pour déboguer. Shortcut properties

2voto

vidstige Points 4541

Il y a un problème avec votre installation de Visual Studio. Il peut certainement fonctionner sans administrateur. Cependant, vous pouvez contourner ce problème.

  1. Lancez votre application comme vous le souhaitez, mais pas à partir de Visual Studio, mais en naviguant vers le fichier .exe construit et en le double-cliquant, par exemple.
  2. Utilisez le Rattacher au processus dans Visual Studio pour l'attacher au processus.

Si votre application échoue très rapidement, cela ne fonctionnera évidemment pas, et vous devrez plutôt vous pencher sur votre configuration Visual Studio.

1voto

Jack Zhai-MSFT Points 4468

Le problème est donc qu'il ouvre toujours le VS en tant qu'administrateur même si vous ouvrez simplement l'IDE VS vierge de votre côté, ai-je raison ?

Veuillez vous assurer que vous n'activez pas l'option "Le programme nécessite des autorisations supplémentaires" dans la rubrique "Dépannage de la compatibilité" ou dans les paramètres de propriété du raccourci VS IDE ou du fichier devenv.exe :

https://blog.devoworx.net/2016/01/06/this-task-requires-the-application-to-have-elevated-permissions/

https://superuser.com/questions/547810/how-to-turn-off-always-run-as-administrator-Windows-8

0voto

Pistoolirapu Points 11

Pour plus d'informations sur cette affaire.

J'ai des systèmes informatiques assez restreints au travail et normalement mon VS démarrait sans privilèges d'administrateur. Cependant, pour me permettre d'installer des mises à jour, etc. j'ai fait une demande pour mettre mon .exe dans la liste des logiciels démarrant avec des privilèges d'administrateur. Cela s'est produit. Bon pour la mise à jour.

Par conséquent, je suppose qu'il n'y a aucun moyen pour moi de démarrer temporairement mon VS. sans des privilèges d'administrateur.

J'ai rencontré un problème similaire lorsque j'ai essayé d'utiliser Outlook Interop à partir de l'application console avec le code suivant :

        Outlook.Application application = null;

        // Check whether there is an Outlook process running.
        if (Process.GetProcessesByName("OUTLOOK").Count() > 0)
        {
            // If so, use the GetActiveObject method to obtain the process and cast it to an Application object.
            application = Marshal.GetActiveObject("Outlook.Application") as Outlook.Application;
        }
        else
        {

            // If not, create a new instance of Outlook and log on to the default profile.
            application = new Outlook.Application();
        }

        // Return the Outlook Application object.
        return application;

J'ai reçu l'erreur suivante lorsque VS (et donc mon application console) a été lancé avec des privilèges d'administrateur mais pas l'Outlook :

System.Runtime.InteropServices.COMException (0x800401E3): Operation unavailable (Exception from HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))

J'ai ensuite essayé de lancer le même code à partir du dossier de débogage directement en exécutant le fichier .exe et cela a fonctionné correctement.

Merci pour les bons conseils.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X