2017-07-21 3 views
0

EDIT: Tried this: C:\WINDOWS\system32>runas /user:gabs-pc\gabs-pc "J:\TI\...\Editor_PDF\editor_pdf.exe"Datei kann nicht als Admin laufen, aber OK, wenn ich als normaler Benutzer laufen

Got this error: "The system could not fin the specified file."

Ziemlich schwer mein Problem zum Thema Titel zu entlarven ...

Nun ... Ich habe eine .exe Datei, die ich ausführen möchte, ist diese Datei in einer freigegebenen Festplatte über ein lokales Netzwerk namens J: \.

Wenn ich öffne meine cmd prompt als normaler Benutzer in einem bestimmten Pfad und ich versuche, die EXE-Datei, beispielsweise auszuführen:

"J:\TI\Estágio\gabriel\Editor de PDF\Editor PDF\editor_pdf.exe" param1 param2 param3 

es gut funktioniert. Aber wenn ich versuche, die genau die gleiche Datei, von demselben Computer ausführen, um die cmd Aufforderung als Administrator zu öffnen ich die folgende Fehlermeldung erhalten:

'"J:\TI...\Editor PDF\editor_pdf.exe"' is not recognized as an internal or external command, an operable program or a batch file.

Ich würde gerne wissen, wie diese Datei als Administrator auszuführen oder eine Ein-Zeilen-Problemumgehung, um diese Datei als aktueller/normaler Benutzer auszuführen.

Kommentare .: Wenn einige von euch sich fragen "Warum öffnest du nicht einfach cmd als normaler Benutzer?". Ich versuche, dieses Programm von einem anderen Programm aufzurufen, das nur cmd als Administrator ausführen kann, deshalb.

+2

'diese Datei in einem gemeinsam genutzten Fest drive' ist - Laufwerke geteilt ist pro Benutzer - Admin-Benutzer nicht normale Benutzer freigegebene Laufwerke anzeigen und umgekehrt – RbMm

+0

Der lokale Administrator hat keine Administratorrechte für Netzwerkdateien, wenn es sich um eine Windows-Domäne handelt, für die Sie Domänenadministratorrechte benötigen –

Antwort

1

Sie müssen den Netzwerklaufwerkspfad zuerst in seinen echten UNC-Pfad konvertieren. Wie @RbMm sagt, Netzwerklaufwerk ist eine pro-Verwendung Konfiguration. Wenn Sie sich an cmd halten, können Sie wmic path win32_mappedlogicaldisk get DeviceID, ProviderName verwenden, um den tatsächlichen Zielpfad abzurufen.

Sie können auch WinapiWNetGetConnection verwenden, um den Pfad des Laufwerks abzurufen.

Der Prozess NICHT in Administrator Kontext getan werden sollte. Wenn dies nicht möglich ist, müssen Sie CreateProcessAsUser verwenden, um Informationen aus der Perspektive eines anderen Benutzers abzurufen.

Pseudo-Code:

char path[260] = {0}; 
WNetGetConncetion ("J:", path, 260); 
WinExec ("\"" + path + "\\TI\\Estágio\\gabriel\\Editor de PDF\\Editor PDF\\editor_pdf.exe" 
     + "\" " + param1 + " " + param2 + " " + param3, SW_HIDE); 

Zusätzliche Informationen:

Verwandte Themen