Ich habe eine Anwendung in vb.net entwickelt, die Administratorrechte benötigt. Ich habe level = "requireAdministrator" im Anwendungsmanifest gesetzt. Mein Client möchte, dass diese Anwendung aufgrund einiger Einschränkungen in ihrer Organisation von einem lokalen Benutzer ausgeführt wird. Also habe ich eine andere "Launcher" -Anwendung erstellt, die die Anmeldeinformationen eines Administrators in einem verschlüsselten Format speichert und die gespeicherten Anmeldeinformationen verwendet, um die Anwendung "Original" auszuführen.Process.start() werfen Fehler beim Versuch, als Administrator zu laufen
Alles funktioniert gut, wenn ich das Konto "Administrator" (Built-in-Konto) verwende. Aber wenn ich die Anmeldeinformationen des manuell erstellten Administratorkontos verwende - die process.start() - Zeile gibt einen Fehler aus "Die angeforderte Operation erfordert eine Erhöhung" Ich konnte den Unterschied zwischen dem integrierten Administrator und manuell nicht feststellen Administratorkonto erstellt Ich habe bestätigt, dass sowohl die Benutzer (integriert als auch manuell erstellt) Mitglieder von Administratoren und HomeUsers sind. Ich habe alle Möglichkeiten ausprobiert, indem ich verschiedene Benutzer mit verschiedenen Benutzergruppen und sogar mit verschiedenen Betriebssystemen (Windows 7 und Windows 10 - sowohl 32 als auch 64 Bit Versionen) erstellt habe - aber alle funktionieren auf die gleiche Weise wie oben beschrieben. Gibt es irgendetwas, das ich in meinem Code ändern muss?
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)
Zusätzliche Informationen: Hier renne ich diese ‚Launcher‘ Anwendung als Standardbenutzer (nicht Administrator) und die Anwendung funktioniert gut und es hebt wirklich die Privilegien, wenn
TbUser.Text = „Administrator "Und TbPass.Text = 123 (Administratorkennwort).
Aber dies ist nicht erhebend Privilegien wenn
TbUser.Text = „Adminuser“ (der auch ein Administrator ist, gehören zur gleichen ‚Administratoren‘ Gruppe) und TbPass.Text = 321 (Passwort für Adminuser).
Mögliche Duplikat [Elevating Privilegien funktioniert nicht mit UseShellExecute = false] (http://stackoverflow.com/questions/3596259/elevating-privileges-doesnt-work-with-useshellexecute-false) – GSerg