![]() |
Shellexecute, CMD, Admin, bcdedit.exe
Hallo alle...:P
Ich brauche mal einen Rat. Gegeben: * Windows 10, DX * Programm 1 startet mit Adminrechten (UAC fragt nach) * Programm 1 soll mit ShellExecute die Datei "bdcedit.exe" aus System32 starten Fehler: ResultCode = 2 -> Datei nicht gefunden. (In jeder Variante gleich) Codes: (jede Zeile ist immer alternatives Probieren)
Delphi-Quellcode:
Herausgefunden:
ResultCode:= ShellExecute(0, 'open', PChar('bcdedit.exe'), PChar('/set TESTSIGNING ON'), nil, SW_HIDE);
ResultCode:= ShellExecute(0, 'runas', PChar('bcdedit.exe'), PChar('/set TESTSIGNING ON'), nil, SW_HIDE); ResultCode:= ShellExecute(0, 'open', PChar('cmd.exe'), PChar('/K bcdedit.exe /set TESTSIGNING ON'), nil, SW_HIDE); ResultCode:= ShellExecute(0, 'runas', PChar('cmd.exe'), PChar('/K bcdedit.exe /set TESTSIGNING ON'), nil, SW_HIDE); Wenn man die normale CMD normal startet und man sich im System32 befindet, findet das System die Datei nicht. Mit als Admin gestarteter CMD schon. Deswegen gehe ich mit dem Shellexecute von einem Rechteproblem aus. Da ich das Programm 1 schon als Admin gestartet habe komm beim "runas" auch keine UAC Frage mehr. Frage: Warum findet er die nicht? Wie kriege ich die Datei gestartet? Danke...8-) |
AW: Shellexecute, CMD, Admin, bcdedit.exe
Warum gibst du nicht den vollständigen Pfad an?
|
AW: Shellexecute, CMD, Admin, bcdedit.exe
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo...
Weil System32 in der PATH Variablen steht und der vollständige Pfad (war der erste Versuch) keinen Unterschied macht...:? Das 2. Bild ist der Start über die CMD als Administrator. |
AW: Shellexecute, CMD, Admin, bcdedit.exe
Vielleicht liefert
![]() |
AW: Shellexecute, CMD, Admin, bcdedit.exe
Danke und ob. :thumb:
Ich bin ein Opfer der Virtualisierung. :cry: Wie starte ich nun die (wahrscheinlich) 64bit bcdedit.exe aus der 32Bit Anwendung? ... Heißt suchen nach Alternativen. :roll: |
AW: Shellexecute, CMD, Admin, bcdedit.exe
Leider habe ich hier nur ein 32-bit-System, aber so wie ich das gelesen habe, müsste deine exe schon eine 32-bit-exe sein, nur der Pfad, der dir da vorgegaukelt wird ist nicht der für den du ihn hältst.
|
AW: Shellexecute, CMD, Admin, bcdedit.exe
Genauso sieht es aus. Die bcdedit.exe kann ich starten wenn ich sie in den SYSWOW64 Ordner kopiere.
Sie wird erfolgreich ausgeführt. Wie ich das sehe habe ich 3 Möglichkeiten: * 64bit -> nicht möglich * Datei kopieren wenn nicht vorhanden (vor der Verwendung) .... wie komme ich an den Pfad? * Die Pfadumleitung aufheben... wie? Lösung: Auch als 32bit Prozess kommt man an das System32 mit einer (zusammengesetzten) Pfadangabe 'C:\Windows\Sysnative' :cheer: |
AW: Shellexecute, CMD, Admin, bcdedit.exe
Hier spielt die Redirection rein, nicht die Virtualisierung (die ist wieder etwas anderes).
Zitat:
Zitat:
MfG Dalai |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 Uhr. |
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