J'ai une application développée dans vb.net qui nécessite des privilèges d'administrateur. J'ai mis level = "requireAdministrator" dans le manifeste de l'application. Mon client souhaite que cette application soit exécutée par un utilisateur local en raison de certaines restrictions dans son organisation. J'ai donc créé une autre application "Lanceur" qui enregistre réellement les informations d'identification de l'administrateur dans un format crypté et utilise les informations d'identification enregistrées pour exécuter l'application "Original".Erreur de lancement Process.start() lors de la tentative d'exécution en tant qu'administrateur
Tout fonctionne correctement si j'utilise le compte 'Administrateur' (compte intégré). Mais si j'utilise les informations d'identification du compte d'administrateur créé manuellement - la ligne process.start() renvoie une erreur "L'opération demandée nécessite une élévation" Je n'ai vraiment pas pu identifier la différence entre l'administrateur intégré et manuellement compte d'administrateur créé. J'ai confirmé que les utilisateurs (intégrés et créés manuellement) sont membres des administrateurs et des utilisateurs résidentiels. J'ai essayé toutes les possibilités en créant différents utilisateurs avec différents groupes d'utilisateurs et même avec différents systèmes d'exploitation (Windows 7 et Windows 10 - versions 32 et 64 bits) - mais, tous fonctionnent de la même manière qu'expliqué ci-dessus. Y a-t-il quelque chose que je dois changer dans mon code?
Dim psi As New System.Diagnostics.ProcessStartInfo()
psi.FileName = (AppToStart)
psi.RedirectStandardError = True
psi.RedirectStandardOutput = True
psi.CreateNoWindow = True
psi.UseShellExecute = False
psi.UserName = TbUser.Text
psi.Password = ConvertToSecureString(TbPass.Text)
psi.Domain = ""
Dim p As Process = Process.Start(psi)
Informations additionnelles: Ici, je suis en cours d'exécution cette application « Launcher » en tant qu'utilisateur standard (non administrateur) et l'application fonctionne bien et il élève vraiment les privilèges si
TbUser.Text = « Administrateur "Et TbPass.Text = 123 (mot de passe administrateur).
Mais cela n'ÉLÉVATEURS privilèges si
TbUser.Text = « AdminUser » (qui est aussi un administrateur appartient au même groupe « Administrateurs ») et TbPass.Text = 321 (mot de passe pour AdminUser).
double possible de [privilèges élévatrices ne fonctionne pas avec UseShellExecute = false] (http://stackoverflow.com/questions/3596259/elevating-privileges-doesnt-travail-avec-useshellexecute-false) – GSerg