AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi aus Dienst herraus Anwendung starten
Thema durchsuchen
Ansicht
Themen-Optionen

aus Dienst herraus Anwendung starten

Ein Thema von mexx81 · begonnen am 26. Nov 2007 · letzter Beitrag vom 26. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
mexx81

Registriert seit: 26. Nov 2007
Ort: Gera
2 Beiträge
 
#1

aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 10:40
Hallo,

ich bin neu hier, aber in einen anderen Delphi-Forum kein unbeschriebenes Blatt. Da ich aber bzgl. meines Problems hier ein paar nützliche Hinweise entdeckt habe, versuche ich hier mal mein Glück.

Mein Problem in der langen Version(ganz unten): http://www.delphi-forum.de/topic_aus...ten_78491.html

Mein Problem kurz:
Ich habe einen Dienst, der eine Anwendung starten soll. Mit ShellExecute und WinExec geht das nicht. Aber mit CreateProzess konnte ich die Anwendung starten, aber ich sehe keine Oberfläche, weil die Anwendung vom Dienst das SYSTEM als Benutzer erbt, was auch der Grund sein wird, weshalb die beiden anderen Funktionen nicht greifen. In diesen Forum habe ich viel über CreateProzessAsUser und CreateProcessWithLogonW gelesen. Beide Funktionen versprechen Erfolg, jedoch muss bei beiden der Benutzername und das Passwort eingegeben werden. Genau das kenne ich jedoch nicht!
  • in Bezug auf die lange Version: Nicht jeder Laptop wurde von uns zur Verfügung gestellt und wenn doch, wir haben das lokale Passwort ändern müssen, weil es bekannt wurde. Somit haben wir zwei verschiedene lokale Adminpasswörter im Einsatz und
  • unbekannte Passwörter von Laptop, welche nicht von uns kommen.

Die hier im Forum gefunden Theman bzgl. dieser Funktion haben aber aus meiner Sicht den Nachteil, dass ich Benutzername und Passwort kennen muss. Ich müsste also sowas wie CreateProzessAsAktiveUser haben, um einen Prozess zu erzeugen, welcher unter den aktiven Benutzer läuft. Nur wie geht das?

Danke, mexx81
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 11:49
Zitat von mexx81:
Die hier im Forum gefunden Theman bzgl. dieser Funktion haben aber aus meiner Sicht den Nachteil, dass ich Benutzername und Passwort kennen muss. Ich müsste also sowas wie CreateProzessAsAktiveUser haben, um einen Prozess zu erzeugen, welcher unter den aktiven Benutzer läuft. Nur wie geht das?
Gar nicht! Wäre eine 1A Sicherheitslücke. Unter Vista doppelt nicht.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 11:50
Soll ein Dienst mit dem Benutzer interagieren können, muss es ein interaktiver diesnt sein. Dies wird von Microsft allerdings nicht empfohlen, das dieses Vorgehen eine sicherheitslücke darstellt. Unter Vista hat Microsoft auch die interaktiven Dienste abgeschafft.
Um mit einem dienst zu kommunizieren nimmt man deswegen ein Programm im User-Mode, welches über Mailslots, named Pipes etc, mit dem Dienst kommuniziert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 12:19
verständnisfrage:

warum/wie/weshalb gibt es z.b. bei einigen (antiviren-)programmen einen zusätzlichen prozess welcher als eine art watchdog fungiert? programm wird gekillt - prozess sieht das und startet das ganze neu. wie wird das denn gemacht?

gruß
reli
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 12:22
Wenn der Watchdog unter dem gleichen Konto wie das zu überwachende Programm/Dienst läuft sollte es kein Problem darstellen.
Bzw. bei der Installation des Programms werden entsprechende Konten eingerichtet welche die entsprechenden Rechte haben.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 12:31
ah okay... wieder was dazu gelernt..

gruß
reli
  Mit Zitat antworten Zitat
madas

Registriert seit: 9. Aug 2007
207 Beiträge
 
#7

Re: aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 12:38
Zitat von mexx81:
Mein Problem kurz:
Ich habe einen Dienst, der eine Anwendung starten soll. Mit ShellExecute und WinExec geht das nicht. Aber mit CreateProzess konnte ich die Anwendung starten, aber ich sehe keine Oberfläche, weil die Anwendung vom Dienst das SYSTEM als Benutzer erbt, was auch der Grund sein wird, weshalb die beiden anderen Funktionen nicht greifen. In diesen Forum habe ich viel über CreateProzessAsUser und CreateProcessWithLogonW gelesen. Beide Funktionen versprechen Erfolg, jedoch muss bei beiden der Benutzername und das Passwort eingegeben werden. Genau das kenne ich jedoch nicht!
Versuchs mal damit (naja das funzt schon, auch unter Vista):

Delphi-Quellcode:
var
  hToken : THandle;
  si: TStartupInfo;
  pi: TProcessInformation;

...

  if WTSQueryUserToken(WtsGetActiveConsoleSessionID, hToken) then
  begin
    FillChar(si, SizeOf(si), 0);
    with si do
    begin
      cb := SizeOf(si);
      dwFlags := STARTF_USESHOWWINDOW;
      wShowWindow := SW_NORMAL;
    end;

    if not CreateProcessAsUser(hToken, PChar(strMonitorPath), nil, nil, nil, False,
                               NORMAL_PRIORITY_CLASS or CREATE_NEW_PROCESS_GROUP,
                               nil, nil, si, pi) then
    begin
      OutCount := 0;
      MessageBox(0,PChar(SysErrorMessage(GetLastError)),'',MB_SERVICE_NOTIFICATION or MB_OK);
    end
    else
    begin
      Self.SendToMonitorPipe('RESETMONITOR' + #0);
      Self.SendToMonitorPipe('SHOWMONITOR' + #0);
      OutCount := 1;
    end;
  end
  else
  begin
    OutCount := 0;
    MessageBox(0,PChar(SysErrorMessage(GetLastError)),'',MB_SERVICE_NOTIFICATION or MB_OK);
  end;
  CloseHandle(hToken);
Units zum Einbinden sind: JwaWtsApi32, JWAWinBase
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 12:42
http://www.delphi-forum.de/viewtopic...c3a6f3a#473785
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
mexx81

Registriert seit: 26. Nov 2007
Ort: Gera
2 Beiträge
 
#9

Re: aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 13:06
Die Lösung von madas werde ich mir wohl mal in Ruhe ansehen müssen. Der Link von Luckie ist mein Beitrag, den ich ganz oben schon verlinkt habe! Da habe ich eine, naja, "Ganz-okay-Lösung" gefunden, die ich zunächst verwenden werde. Vista, Vista, Vista!!! Warum glauben alle nur, dass Vista ein Thema ist. Ich bin Admin einer Firmengruppe und sowohl meine Kollegen, als auch die Admins anderen Firmen sagen alle definitiv: Kein Vista vor 2009, wenn überhaupt! Für Firman hat Vista absolut keine Vorteile, nicht einen!!!! Nur Nachteile!!!! Vista kann nichts, was XP nicht auch schon kann. Alle andere zusätzlichen Funktionen von Vista sind für Firmen völlig unrelevant und fressen nur Performance.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 13:13
Zitat von mexx81:
Warum glauben alle nur, dass Vista ein Thema ist.
Wer sagt denn das nicht u.U. im Untergrund einige Vista-Sicherheitserweiterungen auch im XP SP3 Einzug halten? Hier Vista zu ignorieren ist fahrlässig. Übrigens unser Admin hat die letzten neuen PC auch wieder mit XP ausgestatet.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz