Élever un processus pour s'exécuter en tant qu'administrateur ne fonctionne pas
-
05-07-2019 - |
Question
Élever un processus pour qu'il s'exécute en tant qu'administrateur ne fonctionne pas. Si j'exécute cette application à partir d'une invite de commande avec privilèges élevés, tout se passe bien. Mais mon code ci-dessous ne fonctionne pas.
Process setupws = new Process();
setupws.StartInfo.FileName = @"setupws.exe";
setupws.StartInfo.Verb = "runas";
setupws.StartInfo.UseShellExecute = true;
setupws.Start();
setupws.WaitForExit();
Le fichier setupws.exe fonctionne correctement, mais pas en tant qu'administrateur.
Qu'est-ce que je fais mal?
Merci
PS. J'ai également utilisé mostAvailable et requireAdministrator dans mon fichier app.manifest
La solution
Dans le manifeste, vous devez marquer votre programme d’installation de la manière suivante: «requiredExecutionLevel level = requireAdministrator», voir Créer et incorporer un manifeste d'application (UAC) .
PS. RequireAdministrator doit figurer dans le manifeste de setupws.exe.
Autres conseils
Avez-vous exécuté votre application en tant qu'administrateur et l'avez-vous essayé? Vous pouvez faire quelque chose comme:
using System.Security.Permissions;
var mine = new EnvironmentPermission(PermissionState.Unrestricted);
mine.AddPathList(EnvironmentPermissionAccess.AllAccess, Environment.CurrentDirectory);