Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Selbstgemachtes Setup und Admin-Eingabe erzwingen.. (https://www.delphipraxis.net/155220-selbstgemachtes-setup-und-admin-eingabe-erzwingen.html)

erich.wanker 13. Okt 2010 13:39

Selbstgemachtes Setup und Admin-Eingabe erzwingen..
 
Hallo Leute,

hab eine kleine Frage..

Ich hab ein kleines Programm geschrieben (Setup.exe), das 3 weitere Setups (Inno-Setups) als Recource eingebunden hat (FirebirdSQL Server-Setup / MeinProgramm-Setup / Hilfesystem-Setup) - die beim starten in den Temp-Ordner extrahiert und via LMDStarter hintereinander (falls nötig) gestartet werden (wenn Firebird bereits installiert ist, wird dieses Setup übergangen)...

Es ist für mich wichtig, das die installierten Programmteile meiner Software "Adminrechte" besitzen, da sie übers Netzwerk Datein austauschen und sich gegenseitig beenden und/oder starten ..

Wenn Das Programm, das die Dateien installiert, Adminrechte besitzt, hat dann die installierte Datei selber auch Adminrechte ?

Wie kann ich meinem Setup.exe beibringen, das unter einem "normalen Benutzer" die Eingabe: Adminname und Kennwort - erscheint ?

Hilf hierbei ein Manifest ?

Wenn ich XP Manifest oder Vista Manifest hier suche - find ich einiges. Wie würde ein Manifest aussehen, das unter XP, Vista, Win7, Win2003 Server, Win2008 R2 die Adminkontoabfrage startet ?

P.S.: Im Inno Setup hab ich "PrivilegesRequired=admin" drinnen - Dadurch wird aber auf einem deutschen 64bit "Win7 Home Premium" unter einem "Benutzer" nicht die Adminkennworteingabe-Maske gestartet, sondern nur ein englischer Text: Sie sind kein Admin - melden sie sich als Admin an..

P.S.S.: Ich biete im Inno-Setup für mein Programm "nur" Laufwerksbuchstaben inkl. vorgegebenen Ordner als Ziel an, damit ich nicht in den speziell abgesicherten "Programme-Ordner" reininstallieren muß (wegen der Hin-und Herkopiererei von exe-Datein und der ewigen Starten/Beenden Geschichte)

Vielen Dank für Hinweise

Erich

Bummi 13. Okt 2010 13:55

AW: Selbstgemachtes Setup und Admin-Eingabe erzwingen..
 
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
{$R *.res}
{$IFNDEF DEBUG1}    // Start in Entwicklungsumgebung
  {$R administrator.res}
{$ENDIF}

Eine Datei administrator.rc mit folgenden Inhalt
1 24 "administrator.manifest"



aufrufen von
brcc32 administrator.rc

Inhalt von administrator.manifest
<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>



oder kopiere die Anhänge in einer Ordern und rufe Compile.bat auf

himitsu 13. Okt 2010 14:09

AW: Selbstgemachtes Setup und Admin-Eingabe erzwingen..
 
http://www.delphipraxis.net/139658-m...t-creator.html

Also einfach gesagt, du mußt nur irgendein Manifest einbinden, welches beim UAC Adminrechte (requestedExecutionLevel) quasi beantragt.

Es darf/kann immer nur ein Manifest eingebunden sein, also wenn du z.B. TXPManifest, bzw. die XPMan-Unit eingebunden hast, dann muß diese entfernt werden.
Als Ausgleich dazu kannst du dann in deinem neuen Manifest auch noch den XP-Style (das Design, assemblyIdentity Microsoft.Windows.Common-Controls) aktivieren.


CreateProcess und ShellExecute geben standardmäßig die Rechte des aufrufenden Prozesses weiter, an den neuen Prozess.

erich.wanker 13. Okt 2010 14:14

AW: Selbstgemachtes Setup und Admin-Eingabe erzwingen..
 
Hallo Bummi,

danke für deine Anwort. Hab dein Manifest eingebaut. Wenn ich nun mein Setup.exe (inkl. Manifest) auf einem Win7 unter einem "Standarduser" ausführe - kommt aber leider keine Adminabfrage...

Danke

Erich

erich.wanker 13. Okt 2010 14:30

AW: Selbstgemachtes Setup und Admin-Eingabe erzwingen..
 
Hallo himitsu,

dank für die Infos. Ich habe grad folgendes Manifest eingebaut:

Delphi-Quellcode:
<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
..und es funktioniert ! ..
(Genau der eine Win7 Standarduser [wo ichs grad probiert hab] hat in der Zwischenzeit die UAC abgedreht :evil: - deswegen ist bei Admin-Abfrage nicht gekommen) :thumb:

Die Info, das die Rechte bei CreateProcess und ShellExecute "weitergegeben" werde, hilft mir sehr.

Vielen Dank

Erich

alexender 16. Dez 2014 10:34

AW: Selbstgemachtes Setup und Admin-Eingabe erzwingen..
 
Wenn Das Programm, das die Dateien installiert, Adminrechte besitzt, hat dann die installierte Datei selber auch Adminrechte..........!!!!!!!!!!!!!!!!!

DeddyH 16. Dez 2014 10:38

AW: Selbstgemachtes Setup und Admin-Eingabe erzwingen..
 
Wie kann denn eine Datei, die irgendwo auf den Rechner kopiert wird, Rechte besitzen? Das kommt doch erst zum Tragen, wenn diese Datei ausgeführt wird, und das geschieht dann in einem bestimmten Benutzerkontext.

Sherlock 16. Dez 2014 10:39

AW: Selbstgemachtes Setup und Admin-Eingabe erzwingen..
 
Grundsätzlich ist es aber so, daß Windows selbständig die Admin-Rechte anfordert, wenn ein Programm mit Namen Setup oder Install gestartet wird. ein Manifest ist in genau diesem Fall nicht nötig.
Quelle: http://msdn.microsoft.com/de-de/maga...63486.aspx#S14

Sherlock

DeddyH 16. Dez 2014 10:41

AW: Selbstgemachtes Setup und Admin-Eingabe erzwingen..
 
Das stimmt zwar, aber diesen Automatismus kann man durch einfaches Umbenennen aushebeln. Dann darf man sich allerdings nicht wundern, wenn das Setup im Anschluss nicht richtig funktioniert (es sei denn, es verfügt trotzdem über ein entsprechendes Manifest).

himitsu 16. Dez 2014 11:07

AW: Selbstgemachtes Setup und Admin-Eingabe erzwingen..
 
Zitat:

Zitat von Sherlock (Beitrag 1283595)
Grundsätzlich ist es aber so, daß Windows selbständig die Admin-Rechte anfordert,

Was aber auch deaktiviert werden kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:29 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