locked
SymLinks zu .exe NICHT aus Explorer startbar

    Allgemeine Diskussion

  • Es ist wirklich ärgerlich:

    An der Eingabeaufforderung kann man problemlos eine symbolische Verknüpfung zu einer EXE-Datei ausführen (linkname.exe[ENTER]; linkname[ENTER]), aus dem Explorer heraus und auch vom Ausführen-Dialog erhält man aber stets den Fehler:

    %PathToSymLink%\linkname.exe
    Der angegebene Pfad ist nicht vorhanden.
    
    Überprüfen Sie die Pfadangabe, und wiederholen Sie den Vorgang.

    Dies klingt so als wäre das Linkziel o.ä. falsch, dem ist aber nicht so, was sich neben der Ausführbarkeit via Konsole auch am korrekten Icon ablesen lässt. Auch kann man den SymLink über Umwege starten: "cmd /C linkname.exe" oder z.B. mit dem nircmd-Tool ("nircmd exec show linkname.exe").

    Warum dieses? Vista-Bug oder spezieller Fehler meiner Vista-Installation?

    Betriebssytem: VISTA Home Premium SP2 (32-bit)

    Würde mich sehr freuen, wenn jemand eine echte Lösung dafür hätte oder aber wenigstens eine fundierte Erklärung (z.B. ob "explorer.exe" eine andere Win32-API-Funktion als "cmd.exe" benutzt und wenn ja, welche, mit welchen Parametern, mögl. Einflussnahme?).

    Mir ist auch klar, dass dieses Problem mit HardLinks nicht existiert, aber bei meiner Arbeitsweise haben SymLinks ein paar Vorteile, z.B. sind Sie für's UI nicht so transparent, soll heißen, ich sehe leichter, dass es sich um einen Link handelt und muss beim Löschen nicht fürchten, die Datei noch irgendwo zurückzulassen, weil ich den ReferenceCount nicht überprüft habe.

    Hier noch eine kurze Beschreibung zur Rekonstruktion des Problems (Benutzer braucht Admin-Status):

    1. CMD starten (unbedingt priviligiert! - "Als Admin. ausführen"), 
    ggf. nach z.B. %TEMP% oder %USERPROFILE% wechslen (wg. Schreibrechten) 2. Symbolische Verknüpfung (SymLink) anlegen, z.B. auf notepad.exe: MKLINK npsym.exe %SYSTEMROOT%\notepad.exe [ENTER] 3. Per DIR /AL kann man nun prüfen, wohin "npsym.exe" zeigt
    (z.B. auf "C:\Windows\Notepad.exe") und durch die Eingabe von npsym [ENTER] oder npsym.exe [ENTER]
    auch die korrekte Funktionsweise. 4. Und nun der Test im Windows-Explorer: Doppelklick (oder auch "Als Admin. ausführen")
    auf "npsym.exe" (beachte Notepad-Icon) und siehe da (oder auch: Tata.wav *grins*):
    ein Fehler.

    Habe übrigens momentan selbst folgenes (hoffentlich temporäres) Workaround "entwickelt":
    Einführung des Dateityps "SymLinkedExecutable" (z.B. ".SymEXE" o.ä.), der in der Registry im Prinzip eine Kopie von "HKCR\exefile" ist, mit Ausnahme der "open"- und "runas"-commands (und evtl. des "FriendlyName"). Denn zum Ausführen der Datei im Explorer benutzt man nämlich einen der obigen Wege (z.B. NIRCMD EXEC SHOW "%1") und durch [DefaultIcon] @="%1" sieht die ".SymEXE"-Datei dann auch genau wie ein herkömmlicher Link auf die entsprechende ".exe" aus. Schließlich sollte man noch zur Umgebungsvariablen %PATHExt% die Erweiterung ".SymEXE" hinzugefügen, damit man auf der Kommandozeile auf deren Eingabe verzichten und die symbolische Verknüfung auch mit "linkname" [ENTER] (anstatt "linkname.symexe" [ENTER]) starten kann. Alternativ könnte man auch einen zweiten SymLink mit ".exe"-Erweiterung für die Verwendung an der Konsole anlegen.

    Vielen Dank schon mal für's durchlesen und mögliche Lösungen & sorry für alle "typo's".

    MfG, kLik


    Sonntag, 12. Juni 2011 20:51

Alle Antworten

  • Hallo, ich konnte es leider nur unter Win7 testen. Wozu brauchst du das überhaupt?, reicht es nicht einfach "notepad.exe" einzugeben, das klappt schließlich mit allen registrierten Anwendungen. Und Ausführen, bzw. die Eingabeleiste des Explorers haben meines Wissens nach nichts mit der cmd zu tun. Der Explorer scheint es als Protokoll zu sehen und Öffnet den Browser und Ausführen... sucht die Anwendung im Benutzerordner, also kanns ja schonmal nicht gehen, oder?

    Es kann natürlich auch an einem Unterschied zwischen Vista und Win7 sein, aberich denke mal eher nicht, denn das sieh ja alles relativ gleich aus. Hoffe ich konnte dir irgendwie helfen.


    VisualCPlusPlus
    Montag, 1. August 2011 19:40