-
16. 01. 2012, 09:58 #1Mitglied
- Registriert seit
- Jun 2008
- Beiträge
- 70
[C#] Anderen Prozess "elevated" mit Administratorrechten starten.
Hallo,
ich schreibe gerade an einem Programm, welches die devcon.exe (von Microsoft) aufrufen muss, um einstellungen im Gerätemanager zu ändern. Unter WindowsXP funktioniert dies Problemlos, unter Windows 7 hingegen leider nicht.
Das Problem liegt daran, das "meine.exe" zwar als Administrator ausgeführt wird, dieser aber die "devcon.exe" nicht als Administrator ausführen kann.
Ich habe schon viele Tipps gefunden, wie man einen Child-Prozess als Administrator ausführen kann.
Habe ich auch schon versucht, dies nützt leider nichts.Code:myprocess.StartInfo.Verb = "runas";
Die Einstellungen im Manifest der Datei habe ich auch bereits verändert, ohne Erfolg.
Wichtig hierbei ist, das beim Starten des Programms keine Passwort-Abfrage erfolgen darf.
Viele Grüße
DaRieder
-
16. 01. 2012, 12:05 #2
Re: [C#] Anderen Prozess "elevated" mit Administratorrechten starten.
Das wird meines Wissens nach von der UAC eingeschränkt, dass dies eben nicht möglich ist.
-
16. 01. 2012, 12:18 #3Mitglied
(Threadstarter)
- Registriert seit
- Jun 2008
- Beiträge
- 70
Re: [C#] Anderen Prozess "elevated" mit Administratorrechten starten.
Hallo,
auf den Rechnern auf denen das Programm ausgeführt werden soll, ist die UAC Standardmäßig deaktiviert, trotzdem funktioniert es nicht, da die devcon.exe keine Administratorrechte bekommt.
Der Parent-Prozess wird ja auch explizit als Administrator gestartet, nur gibt dieser diese Rechte leider nicht an die Devcon.exe weiter.
Gibt es denn keine Möglichkeit den Child-Prozess auch mit Administrativen Berechtigungen laufen zu lassen?
-
16. 01. 2012, 13:36 #4Mitglied
- Registriert seit
- Oct 2004
- Beiträge
- 560
Re: [C#] Anderen Prozess "elevated" mit Administratorrechten starten.
Probier mal folgendes:
Code:var pass = new SecureString(); pass.AppendChar('p'); pass.AppendChar('a'); pass.AppendChar('s'); pass.AppendChar('s'); Process.Start("notepad", "admin", pass, "");
-
24. 01. 2012, 01:30 #5Mitglied
- Registriert seit
- Feb 2009
- Ort
- Köln
- Beiträge
- 125
Re: [C#] Anderen Prozess "elevated" mit Administratorrechten starten.
Hast du ein 32 oder 64 Bit Bertiebssystem?
Ich hatte auch mal probleme damit ist aber VB
http://board.gulli.com/thread/141028...n-ausschalten/
ich hatte die Falsche Version erwischt. Im WinDDK gibt es alle 3 Versionen die 32Bit Version läuft unter Win64 nicht richtig.
Unter 64 Bit brauchst du die AMD64 version und 32 Bit die i386
Ich dachte damals das Devcon nicht im Adminmodus startet und habe auch eine ganze weile damit verbracht zu versuchen Devcon im Adminmodus zu starten. Es lag nur an der Falschen version. Vieleicht ist es das ja schon.
Viel glück
Devcon startet standarmäßig im Adminmodus deshalb ist keine einstellung diesbezüglich nötig.
Es gibt aber auch noch andere Möglichkeiten die Konfiguration zu bearbeiten.
Ohne Devcon
Stichwort DLL import und setupapi.
Wenn du interess daran hast Google mal HardwareHelper Libery Vb.net/c#.
Da gibt es ech gute beispiele im Netz.
Der vorteil ist, das du alles von dem Programm aus machen kannst und nicht auf Devcon angewiesen bist.
Wenn du mal den Sourcode in der WinDDK im Verzeichniss
WinDDK\7600.16385.1\scr\setup\devcon
öffnest siehst du das Devcon auch nur mit den Setupapi funktionen arbeitet.
Die Funktionen kannst du alle Importieren. Man könnte Devcon 1 zu 1 in VB.Net oder C# übersetzen wenn es sein muss.
Also viel Glück nochmal.
Geändert von Mikeatweb (24. 01. 2012 um 02:10 Uhr)
-


Zitieren
mehr lesen...







Resident Evil 6 erscheint in...
Heute, 15:21 in gulli:news