Als Administrator ausführen

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von Derfuhr.

    Als Administrator ausführen

    Hi zusammen,

    leider hänge ich wieder seit Tagen an einem Problem, bei welchem ich nicht weiter komme.

    Meine Anwendung wird als "normaler Benutzer" ausgeführt, diese soll dann eine externe Anwendung als Administrator starten.
    Das funktioniert auch soweit, im Taskmanager steht der Administratoraccount, nur dieser hat nicht die Lese- und Schreibrechte, welche er haben sollte!!!
    Meine Vermutung ist das nicht explizit gesagt wird "AUSFÜHREN ALS"!!!

    Google konnte mir bisher auch nicht wirklich helfen außer der Befehl pProzess.Verb = "runas" <- funktioniert aber bei mir nicht!

    Hier ein Auszug vom Quellcode:

    VB.NET-Quellcode

    1. 'Dateiprüfung
    2. If Not IO.File.Exists(varDatei) Then
    3. Fehlermeldung("Die Datei kann nicht gefunden werden.", True, True, False)
    4. Return (0)
    5. Exit Function
    6. End If
    7. 'Deklarierungen
    8. Dim pProzess As New ProcessStartInfo
    9. pProzess.FileName = varDatei
    10. pProzess.UserName = varBenutzername
    11. pProzess.WorkingDirectory = varDatei.Substring(0, varDatei.LastIndexOf("")) 'Ohne Angabe ist das der system32 Ordner
    12. Dim varPasswort2 As New System.Security.SecureString()
    13. 'Domäne
    14. If varDomaene <> "" Then
    15. pProzess.Domain = varDomaene
    16. End If
    17. 'Runas
    18. pProzess.Verb = "runas"
    19. 'Passwort
    20. Dim i As Integer = 0
    21. For i = 0 To varPasswort.Length - 1 Step +1
    22. varPasswort2.AppendChar(varPasswort.Substring(i, 1))
    23. Next
    24. pProzess.Password = varPasswort2
    25. pProzess.UseShellExecute = False
    26. 'Parameter
    27. pProzess.Arguments = varParameter
    28. ' Prozess starten
    29. Process.Start(pProzess)
    Hab damit noch keine Erfahrungen gesammelt, aber auf den ersten Blick würde ich vorschlagen, dass du LoadUserProfile deines ProcessStartInfo-Objekts vor dem Prozessstart auf True setzt.
    Hintergrund: Ich vermute, dass er bei der bloßen Angabe von Username und Passwort lediglich eine Art Prüfung auf Korrektheit der Anmeldeinformation durchführt, bei LoadUserProfile = True aber auch die Berechtigungen (und nicht nur die) aus dem zugehörigen Profil ermittelt und anwendet.
    Ausprobieren schadet nicht...
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.
    Ja ist richtig, wird ja auch wie bereits erwähnt unter dem Benutzernamen vom ADMINISTRATOR ausgeführt! Nur der Zugriff wird verweigert. Wenn ich die Datei von Hand als Admin starte nicht!

    (Der ähnliche Code befindet sich auch oben in meinem Beispiel und ist bereits verbaut... siehe "runas")
    Nein, es ist der richtige, dieser wurde extra für diese Software angelegt.

    (Wird im Taskmgr angezeigt)




    <---------------------------------------------------------------------------------------------------------------------------------------->



    Hi Leute,

    jetzt bin ich weiter im Text... Problem liegt an Windows 7!!!! Unter Windows XP hat alles ohne Probleme beim ersten versuch funktioniert, warum Windows 7 das nicht zulässt muss ich jetzt noch rausfinden.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Chris“ ()

    hi sonne75,

    da gebe ich dir recht, nur leider habe ich von den MODS schon einen auf den sack bekommen weil ich nach paar tagen einen 2 Post verschickt habe ohne das jemand geantwortet hat.


    Auf die Registry greife ich in diesem Fall nicht zu, oder was meinst Du?
    Ja, aber es sind ja jetzt neue Informationen vorhanden, die das Problem anders aussehen lassen, deswegen finde ich es schon (bin aber kein Mod), dass es hier sinnvoll wäre. Nur sinnloses "Pushen" wird geahndet.

    Ich kenne mich mit Registry nicht aus, ich dachte nur, ob es vielleicht damit zu tun haben könnte, welche Rechte man für welche Programme hat.

    Mir fällt leider nichts ein, was man als Erklärung, warum manuelles Starten und programmatisches Starten mit WinXP funktioniert und das andere nicht.
    Ich habe keine Ahnung, aber ich habe gerade nach "administrator rechte probleme" gegoogelt und bin auf einige Threads gestossen, vielleicht bringt dir da was (da sind auch weiterführende Links dabei):

    gameone.de/interactive/forums/38/topics/1113059

    forum.computerbild.de/windows/…tratorrechten_106865.html
    pcwelt.de/forum/showthread.php…-nicht-ganz-Administrator

    Hier habe ich nach "adminstrator rechte probleme programm ausführen code" gegoogelt:
    dotnet-forum.de/forums/t/2272.aspx

    Vielleicht liegt es bei dir an "runas", du sagtest ja, dass du damit Probleme hättest. Vielleicht kannst du nach "probleme runas Win7" oder so googeln.

    Melde dich bitte dann, würde mich auch interessieren. :)
    hi sonne,

    leider konnten mir die Links auch nicht weiterhelfen.

    Auch der untere Link bringt mich nicht weiter, da die Benutzer selber ja keine Adminrechte haben und auch nicht bekommen, es wird lediglich das Programm mit einem Parameter als ADMIN neu gestartet um eine bestimmte Funktion auszuführen und schließt sich anschließend wieder. (soweit funktioniert es ja jetzt auch bei XP)
    Wäre dem nicht so, könnte ich einfach requireAdministrator auf true setzen und alles würde laufen.

    Also Problem besteht weiterhin :(