Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Starten einer Anwendung die Admin-Rechte benötigt (Vista) (https://www.delphipraxis.net/82194-starten-einer-anwendung-die-admin-rechte-benoetigt-vista.html)

Bernhard Geyer 8. Dez 2006 13:00


Starten einer Anwendung die Admin-Rechte benötigt (Vista)
 
Hi,

Ich habe eine Anwendung welche ohne Admin-Rechte läuft und mittels CreateProcess eine andere Anwendung startet:
Delphi-Quellcode:
FUNCTION ExecConsole(const sApp, sParams, sTitle: String;
                               wShow: Word): DWord;
var
  aSI    : TStartupInfo;
  aPI    : TProcessInformation;
  aProc  : THandle;
begin
  Result := 1;
  FillChar(aSI, SizeOf(aSI), 0);
  aSI.cb := SizeOf(aSI);
  // Text für die Fensterzeile zuweisen
  aSI.lpTitle := PChar(sTitle);
  aSI.wShowWindow := wShow;
  if not CreateProcess(nil, PChar(sapp+sParams), nil, nil, False,
                       CREATE_NEW_CONSOLE OR NORMAL_PRIORITY_CLASS,
                       nil, nil, aSI, aPI) then
  begin
    Result := 0;
  end;
  aProc := aPI.hProcess;
  CloseHandle(aPI.hThread);
  CloseHandle(aProc);
end;
Diese andere Anwendung benötigt jedoch Administratorrechte und beim direkten Start dieser Anwendung über den Explorer kommt auch dieser beliebte Dialog ("Ein nicht identifiziertes Programm mächte auf den Computer zugreifen ...") unter Vista direkt hoch.

Was müsste ich anpasssen bzw. ergänzen das schon bei meiner ersten Anwendung diese Bestätigung kommt?
Wenn ich über das Kontextmenü des Explorers "Als Administator ausführen" geht es nämlich.

uwewo 8. Dez 2006 13:26

Re: Starten einer Anwendung die Admin-Rechte benötigt (Vist
 
Hallo Bernhard,

ich weiß nicht ob Dir das hilft, aber kannst Du beim starten deines Programms nicht die Adminrechte abfragen und diese Daten, an das externe Programm übergeben. Bzw. es könnte ja unetrdem gleichen Prozess laufen.

Uwe

Luckie 8. Dez 2006 13:28

Re: Starten einer Anwendung die Admin-Rechte benötigt (Vist
 
Starte den zwieten Prozess mit CreateProcesWithLogonW (http://www.michael-puff.de/Developer...thLogonW.shtml) und frag die Logindaten schon beim start des ersten Prozesses ab.

Bernhard Geyer 8. Dez 2006 13:55

Re: Starten einer Anwendung die Admin-Rechte benötigt (Vist
 
Zitat:

Zitat von Luckie
Starte den zwieten Prozess mit CreateProcesWithLogonW (http://www.michael-puff.de/Developer...thLogonW.shtml) und frag die Logindaten schon beim start des ersten Prozesses ab.

Nicht 100%ig das was ich suche. Der User ist ja (lokaler) Admin unter Vista, aber beim Start dieser ersten Anwendung bekommt der Prozess ja nur eingeschränkte Rechte. Ich will nun dieser Anwendung jetzt diese ander Anwendung starten kann ohne das Username + Passwort eingegeben werden muss. Diese Warnmeldung von Windows stört mich auch nicht, sondern nur das ich die anderer Anwendung nicht starten kann. Notfalls würde ich auch u.U. als Trick versuchen unter HKLM einen Schlüssel zu öffnen. Ist halt nicht die "Feine Art"

Bernhard Geyer 8. Dez 2006 14:16

Re: Starten einer Anwendung die Admin-Rechte benötigt (Vist
 
Denkste! :evil:

Man sollte doch nicht unter HKEY_LOCAL_MACHINE schreiben können mit diesen "Nicht-Admin-Rechten". Geht aber und man kann es auch schön wieder auslesen. Öffnet man aber regedit ist der Eintrag aber nicht vorhanden!! :gruebel:

Was für eine "Alles wird einfacher"-Lösung fährt MS hier mal wieder?

Muetze1 8. Dez 2006 14:26

Re: Starten einer Anwendung die Admin-Rechte benötigt (Vist
 
Zitat:

Zitat von Bernhard Geyer
Man sollte doch nicht unter HKEY_LOCAL_MACHINE schreiben können mit diesen "Nicht-Admin-Rechten". Geht aber und man kann es auch schön wieder auslesen. Öffnet man aber regedit ist der Eintrag aber nicht vorhanden!! :gruebel:

Soweit ich das gehört habe, gibt Windows keine Fehlermeldung mehr zurück, schreibt die Daten aber direkt in den HKU Zweig um oder - bei besonderen Keys - in einer gesonderten Abteilung, die dann nur das Programm entsprechend wieder auslesen kann und bearbeiten, welches diese Schlüssel eingestellt hat. Damit will man eine höhere Sicherheit erreichen - auch mit solchen Programmen, welche partout nicht darauf ausgelegt wurden in eingeschränkten Konten zu laufen.

Bernhard Geyer 8. Dez 2006 14:35

Re: Starten einer Anwendung die Admin-Rechte benötigt (Vist
 
Zitat:

Zitat von Muetze1
Zitat:

Zitat von Bernhard Geyer
Man sollte doch nicht unter HKEY_LOCAL_MACHINE schreiben können mit diesen "Nicht-Admin-Rechten". Geht aber und man kann es auch schön wieder auslesen. Öffnet man aber regedit ist der Eintrag aber nicht vorhanden!! :gruebel:

Soweit ich das gehört habe, gibt Windows keine Fehlermeldung mehr zurück, schreibt die Daten aber direkt in den HKU Zweig um oder - bei besonderen Keys - in einer gesonderten Abteilung, die dann nur das Programm entsprechend wieder auslesen kann und bearbeiten, welches diese Schlüssel eingestellt hat. Damit will man eine höhere Sicherheit erreichen - auch mit solchen Programmen, welche partout nicht darauf ausgelegt wurden in eingeschränkten Konten zu laufen.

:evil: Grrrrrr. Wieder so eine genial MS-Idee.

Und wie bekomm ich jetzt hin das Vista den User diesen Dialog unter die Nase reibt bzw. das beim CreateProcess beim neuen Prozess dies abgefragt wird?

Bernhard Geyer 8. Dez 2006 14:38

Re: Starten einer Anwendung die Admin-Rechte benötigt (Vist
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von Muetze1
Zitat:

Zitat von Bernhard Geyer
Man sollte doch nicht unter HKEY_LOCAL_MACHINE schreiben können mit diesen "Nicht-Admin-Rechten". Geht aber und man kann es auch schön wieder auslesen. Öffnet man aber regedit ist der Eintrag aber nicht vorhanden!! :gruebel:

Soweit ich das gehört habe, gibt Windows keine Fehlermeldung mehr zurück, schreibt die Daten aber direkt in den HKU Zweig um oder - bei besonderen Keys - in einer gesonderten Abteilung, die dann nur das Programm entsprechend wieder auslesen kann und bearbeiten, welches diese Schlüssel eingestellt hat. Damit will man eine höhere Sicherheit erreichen - auch mit solchen Programmen, welche partout nicht darauf ausgelegt wurden in eingeschränkten Konten zu laufen.

:evil: Grrrrrr. Wieder so eine genial MS-Idee.

Und wie bekomm ich jetzt hin das Vista den User diesen Dialog unter die Nase reibt bzw. das beim CreateProcess beim neuen Prozess dies abgefragt wird?

Gerade entdeckt. Es gibt einen VirtualStore-Zweig indem solche Infos geschrieben werden.

Luckie 8. Dez 2006 14:58

Re: Starten einer Anwendung die Admin-Rechte benötigt (Vist
 
Zitat:

Zitat von Bernhard Geyer
:evil: Grrrrrr. Wieder so eine genial MS-Idee.

Richtig. Wohl der einzig mögliche Kompromiss zwischen der neuen Sicherheit und der Kompatibilität zu alten Programmen. Bitte immer erst mal etwas nachdenken bevor man los meckert. Microsoft wird sich das schon gründlich überlegt haben und ihre Lösung auch begründen können. Microsoft macht selten etwas, um ihre Kunden in dieser Hinsicht zu ärgern.

MagicAndre1981 8. Dez 2006 15:20

Re: Starten einer Anwendung die Admin-Rechte benötigt (Vist
 
du musst in deinem Programm noch eine Manifest-datei einbinden. Unter Vista muss man da noch eintragen mit welchen Rechten das programm laufen soll. In der MSDN findest du alles dazu.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz