Welcher API-Aufruf ist der richtige

21/08/2009 - 10:00 von Michael Kolowicz | Report spam
Hallo,

ich bin auf der Suche, nach dem richtigen API-Aufruf für mein Problem:

Ich habe eine Anwendung, die làuft im Benutzerkontext. Diese soll einen
anderen und alle die davon erzeugenten Processe im Kontext des Admin
installieren.

Ich bin fündig geworden, dass es mindestens 4 Möglichkeiten gibt:
CreateProcess, CreateProcessWithLogonW, CreateProcessAsUser, und
CreateProcessWithTokenW.

Leider schietert es daran, dass zwar der Aufruf korrekt ist, aber ein
erzeugen eines Prozesses daraus, wieder zu dem Benutzerkontext führt.

Wie sieht das also aus?

UserApp --> startet --> CMD.EXE --> startet --> AutoIt-Script
(User) (Admin) (User)

Es geht darum, dass eine Anwendung für einen Benutzer instaliert werden
soll, der nicht die ausreichenden recht hat.

Also muss es der Benutzer bleiben, nur muss er vorrübergehend Admin-
Rechte bekommen.

Geht so was?

Mfg
Michael
 

Lesen sie die antworten

#1 Peter Götz
21/08/2009 - 17:34 | Warnen spam
Hallo Michael,

ich bin nicht sicher, ob ich Dein Anliegen wirklich
verstanden habe.
Wenn Du ein Programm unter einer bestimmten
Benutzerkennung, in Deinem Fall als Adminstrator,
starten willst, dann kannst Du das mit Process.Start()
machen.

Imports System.Security
.
Private Sub AnySub()
Dim P As Process
Dim SS As New SecureString
Dim i As Integer
Dim Pwd As String = "Passwort"
Dim C As Char

For i = 0 To Pwd.Length - 1
C = CType(Pwd.Substring(i, 1), Char)
SS.AppendChar(C)
Next

P = Process.Start _
("C:\Verzeichnis\Programm.exe", _
"Administrator", _
SS, _
"DomainName")
End Sub

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen