Was macht Internet Shortcut-Dateien so besonders?

7

Wenn ich eine Verknüpfung von Firefox auf der Festplatte speichere, ist dies der Inhalt, wenn er in einem Text- oder Hex-Editor angezeigt wird.

[InternetShortcut]
URL=http://superuser.com/
IDList=
HotKey=0
IconFile=C:\Users\Jerry\AppData\Local\Mozilla\Firefox\Profiles\e8oe2h15.default\shortcutCache\ndPGaHoK9RbB9Xs6pYDwiA==.ico
IconIndex=0

Es erscheint sehr einfach: Klartext mit einigen Markups in einer Datei.

Angenommen, ich möchte diese Datei manuell neu erstellen.

  1. Ich erstelle eine leere Textdatei.
  2. Ich füge den Inhalt oben ein.
  3. .. Speichern Sie die Datei und beenden Sie das Programm.
  4. .. Ändern Sie die Dateierweiterung von txt in url.
  5. .. akzeptieren Sie das Risiko, die Dateitypzuordnung zu verlieren, indem Sie auf JA klicken, wenn Sie dazu aufgefordert werden.

1

Jetzt würde ich erwarten, dass ich diese Datei in meinem Standard-Webbrowser öffnen kann, indem ich auf das Dateisymbol doppelklicke. Aber nein, so funktioniert es nicht. Stattdessen erhalte ich eine Fehlermeldung.

2

Das Ziel "" dieser Internetverknüpfung ist ungültig. Wechseln Sie zum Eigenschaftenfenster "Internetverknüpfung" und stellen Sie sicher, dass das Ziel korrekt ist.

Was genau ist damit gemeint target ""?

Wenn ich hier auf der Website suche, kann ich feststellen, dass mehrere andere Benutzer auf diese oder ähnliche Schwierigkeiten mit Internet-Verknüpfungsdateien gestoßen sind und einige sogar versucht haben, plattformübergreifende Internet-Verknüpfungsdateien zu erstellen. Was ich nicht sehe, ist, warum dies überhaupt so ein Schmerz ist.

Es soll nur eine einfache Datei mit einer URL-Adresse sein, die in einem Webbrowser geöffnet wird. Was macht diese "Internet Shortcut" -Dateien so besonders? Was bringt sie zum Ticken? Wenn ich meine Datei mit dem Original vergleiche, scheinen sie identisch zu sein. Wo genau liegt dann das Problem?

Aktualisieren


Hier sind einige interessante Ergebnisse. Das Wort "Ziel" bedeutet wahrscheinlich URL, und "Eigenschaftenblatt für Internetverknüpfungen" bezieht sich höchstwahrscheinlich auf die Registerkarte "Webdokument" im Dialogfeld "Dateieigenschaften". Wenn ich mich richtig erinnere, wurde es in früheren Windows-Versionen (zumindest in Windows 98) als "Internet-Verknüpfung" bezeichnet. Es scheint seitdem in Web Document umbenannt worden zu sein.

Da steckt noch mehr dahinter! Wie aus den folgenden Screenshots hervorgeht, hat meine Datei denselben SHA1-Digest wie das Original. Es hat jedoch weder dasselbe Dateisymbol noch die Registerkarte "Webdokument".

ursprüngliche Dateieigenschaften neue Dateieigenschaften Originaldatei sha1 neue Datei sha1

Wenn ich meine neue Datei so umbenenne, dass sie mit einem Großbuchstaben beginnt, wird sie zu einer funktionierenden Internet-Verknüpfungsdatei. Genau so! Es fängt einfach an zu arbeiten. Wenn ich es erneut umbenenne, so dass es mit einem Kleinbuchstaben beginnt, funktioniert es nicht mehr ... wieder. Nehmen Sie nicht mein Wort dafür, schauen Sie sich den Screenshot unten an.

neue Dateieigenschaften mit neuem Namen

Es hilft auch, den Dateinamen mit einem Unterstrich, einem Bindestrich, einem Punkt, einer Klammer, einer geschweiften Klammer, einer eckigen Klammer, einem Gleichheitszeichen, einem Zahlenzeichen, einem Ausrufezeichen usw. zu beginnen. Es ersetzt sogar das Globussymbol ordnungsgemäß durch ein leeres Papierblattsymbol. Wenn Sie es in etwas anderes umbenennen testoder Testdas Symbol wirklich ändern.

Aber was bewirkt, dass es sich so verhält oder schlecht benimmt? Warum ist es beispielsweise wichtig, wenn der Dateiname mit einem Großbuchstaben beginnt? Es gibt keine solche Einschränkung für reguläre Dateien ...

Update 2


Wenn der Name der neuen Datei vor dem Ändern der Namenserweiterung mit einem Großbuchstaben beginnt und dann umbenannt wird, sodass er mit einem Kleinbuchstaben beginnt ... dann funktioniert es immer noch!

Wenn Sie also so vorgehen, wird es funktionieren:

newfile Lancelot.txt
pastein Lancelot.txt
rename Lancelot.txt Lancelot.url
rename Lancelot.url lancelot.url

ein b

Update 3


Es ist wahrscheinlich, dass das ursprüngliche Problem mit der Datei test.url in Schritt 4 oben aufgetreten ist. Ich hatte ursprünglich eine Datei mit dem Namen test.txt auf einer anderen Festplatte erstellt und sie in test.url umbenannt. Dies war, bevor ich eine zweite Datei mit demselben Namen auf der Systemfestplatte im Desktop-Ordner (wie oben dargestellt) erstellt habe. Ich erinnere mich nicht, aber es ist wahrscheinlich, dass ich zuerst eine Datei erstellt, die Namenserweiterung geändert und dann in die Ziel-URL eingefügt und sie gespeichert habe und gehofft habe, dass sie durch einen einfachen Doppelklick funktioniert. Im Gegensatz zum Erstellen der Datei wird die Ziel-URL eingefügt und anschließend die Namenserweiterung geändert.

Samir
quelle
Ich kann nichts falsches an Ihrer Methode sehen. Es funktioniert hier mit Ihrem Kopieren / Einfügen [abgesehen von einem fehlenden Symbol natürlich] - Ziel "" sollte URL: im Webdokument aufgeführt sein, wenn Sie das Eigenschaftenblatt öffnen ... hier wird dies korrekt angezeigt http://superuser.com. Ich teste auf WIn7, habe aber nicht 8.1 zum Ausprobieren.
Tetsujin
@Tetsujin Überprüfen Sie Ihren Dateinamen. Beginnt es mit einem Groß- oder Kleinbuchstaben? Wenn Großbuchstaben, versuchen Sie es mit Kleinbuchstaben. Sonst ... dann ist das wirklich seltsam.
Samir
Ich habe eine mit dem Namen 'net shortcut.url' und eine andere mit dem Namen 'New Text Document' - Windows verbirgt anscheinend die .url, obwohl ich sie im Allgemeinen nicht eingestellt habe. Ich habe anfangs .txt in .url geändert
Tetsujin
Keine Ursache. Ich habe den Überblick verloren. Ich habe jetzt mit einer baby boy.txtDatei angefangen und sie in umbenannt baby boy.urlund es hat funktioniert. Ich habe es erneut umbenannt, um zu sagen baby.url(Erweiterung versteckt), und es hat immer noch funktioniert, genauso wie Baby.url. Ich dachte, es könnte damit zu tun haben, mehr als ein Wort für den Namen zu verwenden. Jetzt war ich plötzlich in der Lage, ein Leerzeichen test.txtund eine Vergangenheit darin zu erstellen und es umzubenennen, test.urlund es funktionierte. Huh?! Ich habe keine Ahnung mehr, was hier los ist. Das Verhalten scheint je nach Wetterlage zu variieren. Früher war es sonnig, aber jetzt bilden sich Wolken und es könnte anfangen zu regnen.
Samir
1
Nur um zu überprüfen, ob ich einen Neustart durchgeführt habe und ja, ich kann es jetzt erstellen test.txtund umbenennen test.urlund es wird funktionieren. Stelle dir das vor! Es scheint, dass der vorherige "Baby Boy" in einem Dateinamen es irgendwie klargestellt hat. Windows wurde beleidigt?
Samir

Antworten:

8

Ich glaube ich habe etwas. Wie ich vermutet habe, verinnerlicht Windows die Namen, die Sie zuvor für Internet-Verknüpfungsdateien verwendet haben, irgendwie (merkt sich diese). Ich habe einige Experimente mit Windows 10 TP durchgeführt. Ich werde versuchen zusammenzufassen, was ich bisher gelernt habe. Der Screenshot unten zeigt die Symbole und Namen der Dateien, mit denen ich experimentiert habe.

Symbole

Ich werde sie nach Nummer, von links nach rechts oder nach Namen bezeichnen.

  • Nummer 1 wurde aus Firefox durch Ziehen und Ablegen des Favicons auf den Desktop erstellt. Ich habe diesen als Referenz verwendet. Es funktioniert.
  • Nummer 2, 3 und 6 wurden manuell als leere Textdateien erstellt. Sie wurden leer gelassen und ihre Namenserweiterungen von txt in url geändert. Diese funktionieren nicht : Sie führen dazu, dass der Fehler auftritt.

    Error

  • Nummer 4 wurde manuell als leere Textdatei erstellt. Der Inhalt von Nummer 1 wurde dann eingefügt und seine Namenserweiterung von txt in url geändert. Es funktioniert.
  • Nummer 5 wurde manuell als leere Textdatei erstellt. Der Dateitypname und die Ziel-URL wurden manuell eingegeben. Es funktioniert.
  • Das Ändern des Dateinamens (Erweiterung ausgeschlossen) wirkt sich auf zwei Arten auf die Funktion der Datei aus (unabhängig davon, ob sie tatsächlich funktioniert oder nicht).

1: Wenn der Inhalt der Datei vor dem Aktivieren ordnungsgemäß definiert wurde (durch Festlegen der URL-Erweiterung), ist eine Namensänderung nicht davon betroffen. Es hat vor der Änderung funktioniert, und es wird nach der Änderung funktionieren.

2: Wenn der Inhalt der Datei vor dem Aktivieren nicht definiert wurde (z. B. eine leere Datei), ist dies nicht von einer Namensänderung betroffen. Das Ändern des Namens allein hilft nicht. Es hat vorher nicht funktioniert und es wird nach der Änderung nicht funktionieren. Zusätzlich! Der neue Dateiname wird später unbrauchbar, falls Sie sich entscheiden, den Dateinamen trotzdem zu ändern, ohne den Inhalt richtig zu definieren (oder leer zu lassen), und später zurückkehren, um die richtige URL-Definition hinzuzufügen (lesen Sie weiter, um eine Erklärung zu erhalten).

  • Das Ändern des Dateiinhalts wirkt sich auf zwei Arten auf die Funktion der Datei aus.

1: Wenn der Inhalt der Datei zuvor richtig definiert wurde, funktioniert die Datei weiterhin wie zuvor. Alle an der Datei vorgenommenen Änderungen werden jedoch ignoriert. Tatsächlich kann der gesamte Inhalt entfernt werden und die Datei funktioniert weiterhin. Um Änderungen zu übernehmen, muss die Datei unter einem neuen Dateinamen gespeichert werden, der noch nie zuvor verwendet wurde. Das Buchstabengehäuse zählt, daher werden Änderungen an test.url und das Speichern als Test.url (falls zuvor nicht verwendet) als neue Datei betrachtet, unabhängig von der Datei test.url. Alle zusätzlichen Änderungen müssen unter einem weiteren Dateinamen gespeichert werden, der noch nie zuvor verwendet wurde. Und so weiter und so fort.

2: Wenn der Inhalt der Datei zuvor nicht definiert wurde (z. B. eine leere Datei), hilft es nicht, ihn jetzt zu definieren, indem Sie Änderungen am Inhalt vornehmen und diese Änderungen speichern. Alle Änderungen werden ignoriert. Wenn es vorher nicht funktioniert hat, wird es nach den Änderungen nicht funktionieren. Um Änderungen zu übernehmen, muss die Datei unter einem neuen Dateinamen gespeichert werden, der noch nie zuvor verwendet wurde (eine neue Datei mit einem eindeutigen neuen Namen).

Dateiinhalt

Inhalt der Nummern 1, 2, 6:

[InternetShortcut]
URL=http://superuser.com/
IDList=
HotKey=0
IconFile=C:\Users\Jerry\AppData\Local\Mozilla\Firefox\Profiles\bcf6rzuf.default\shortcutCache\ndPGaHoK9RbB9Xs6pYDwiA==.ico
IconIndex=0

Inhalt von Nummer 3 und 4: Sie sind leer!

Inhalt von Nummer 5:

[InternetShortcut]
URL=http://microsoft.com/

Fazit

Hier gibt es zwei wichtige Fakten zu lernen.

  1. Die Datei muss ein gültiges "Ziel" (dh eine URL-Adresse) und einen Dateitypnamen (Internetverknüpfung) enthalten, bevor die Namenserweiterung geändert (oder hinzugefügt) wird.
  2. Verwendete Namen können nicht für eine andere Ziel-URL wiederverwendet werden. Nicht einmal nach dem dauerhaften Löschen der Originaldatei.

Aktualisierung


Es scheint, dass das einmalige Öffnen der Datei in Internet Explorer (falls Sie Firefox oder einen anderen Browser eines Drittanbieters verwenden) dazu führen kann, dass die beschädigte URL-Datei repariert wird. Ich habe gesehen, dass dies hier unter Windows 8.1 mit IE Version 11 passiert. Wie bereits erläutert, muss der Inhalt der URL-Datei jedoch ordnungsgemäß definiert werden, bevor er im IE geöffnet wird. Der IE interpretiert dann den Inhalt neu und fügt sogar ein nettes Favicon als Dateisymbol hinzu, wodurch die Datei im Wesentlichen durch Hinzufügen einer fehlenden "Web Document" -Eigenschaft geheilt wird. Meine test.url-Datei wurde jedoch nicht repariert. Daher funktioniert es möglicherweise nicht für alle Dateien, und ich bin mir nicht sicher, warum.


Ich fand diese Registrierungsbearbeitung hilfreich.

  1. Führen Sie regedit.exe aus
  2. Navigieren Sie zu HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl
  3. Erstellen Sie einen neuen Schlüssel mit dem Titel FEATURE_URLFILE_CACHEFLUSH_KB936881
  4. Navigieren Sie zu FEATURE_URLFILE_CACHEFLUSH_KB936881
  5. Erstellen Sie ein neues Dword mit dem Titel iexplore.exe
  6. Stellen Sie den Wert iexplore.exeauf 1 ein
  7. Starten Sie neu

Quelle: Microsoft (KB936881)

Danach funktionierte meine test.url-Datei endlich und erhielt anstelle des Globus ein Firefox-Symbol (siehe den fraglichen Screenshot). Dieser Fix wurde ursprünglich für XP, Server 2003 und Vista angewendet. Aber anscheinend funktioniert es auch unter Windows 8.1 (nicht unter Windows 10 getestet).

Die Ursache für diesen Fehler - im Microsoft KB-Artikel angegeben - ist nicht sehr detailliert, es wird jedoch Folgendes angegeben.

Dieses Problem tritt auf, wenn die Windows-Shell während des Vorgangs zum Erstellen der Internetverknüpfungsdatei eine Benachrichtigung erhält. Diese Benachrichtigung wird empfangen, bevor die Datei vollständig auf die Festplatte geschrieben wurde.

Es sagt nicht genau, was unter "Benachrichtigung" zu verstehen ist.


Wie ich vermutet habe, verwendet Windows einige Internet Explorer-Komponenten, um diese URL-Dateien (Internet Shortcut) zu interpretieren. Der Inhalt, den Sie in diese Textdatei einfügen, wird also nur für die Erstinterpretation verwendet. Sobald Sie die Dateinamenerweiterung in URL ändern, haben Sie die Dateizuordnung geändert, und daher wird der Dateiinhalt von Internet Explorer interpretiert. Wenn es richtig strukturiert ist, wird es in eine funktionierende URL-Internetverknüpfungsdatei umgewandelt. Andernfalls (z. B. wenn Sie es leer lassen und die Erweiterung ändern) wird der gefürchtete Fehler angezeigt, wenn Sie versuchen, es zu öffnen.

Die eigentliche Verknüpfung wird an anderer Stelle gespeichert, nicht in der Datei selbst. Die Originaldatei kann daher nach der anfänglichen Interpretation und Dateitypkonvertierung als 0-Byte-Datei leer gelassen werden. Die Datei dient nur dazu, lediglich auf die Verknüpfungsdaten zu verweisen. Die Verknüpfungsdaten sind das Feld "Webdokument", das im NTFS-Dateisystem gespeichert ist.

Das ganze Geschäft, das nicht in der Lage ist, einen Dateinamen wiederzuverwenden, oder die Art und Weise, wie Sie dieses Globus-Ding als Dateisymbol (oder Favicon oder Browsersymbol) erhalten, hat damit zu tun, wie Internet Explorer Webinhalte zwischenspeichert. Wenn Sie also in Wirklichkeit auf eine dieser URL-Dateien doppelklicken und Firefox als Standard-Webbrowser festgelegt haben, öffnet Firefox die URL nicht. Es ist Internet Explorer! Durch einen internen Windows-Assistenten übergibt Internet Explorer die URL an Firefox. Firefox startet und lädt die URL und Sie sehen das Licht ( Seite ). Sie sind stolz darauf, den Internet Explorer nicht zu verwenden.

Um einen Cache zu entfernen, der Sie daran hindert, die Datei umzubenennen, oder um Internet Explorer zu zwingen, dieselbe Datei mit demselben Namen erneut zu interpretieren (z. B. nach dem Ändern des Inhalts), müssen Sie einige der Caching-Ordner löschen. Dies wird als TIF oder Temporäre Internetdateien bezeichnet.

  1. Öffnen Sie% localappdata% \ Microsoft \ Windows \ INetCache
  2. Wählen Sie alle Dateien aus (Strg + a).
  3. Löschen (del)!
  4. Ja
  5. Doppelklicken Sie jetzt auf Ihre geänderte URL-Datei. Es sollte funktionieren.

Dies sollte für Windows 8, 8.1 und 10 funktionieren. Sie finden diesen Ordner an anderen Stellen in früheren Windows-Versionen. In Windows 7 befindet es sich bis zur Windows-Ebene am selben Speicherort wie oben. Es sollte einen Ordner mit dem Namen Temporäre Internetdateien geben.

sammyg
quelle
1
Wenn jemand weiß, welcher Teil von Windows für dieses Verhalten verantwortlich ist und wie es zurückgesetzt werden kann, damit Dateinamen für neue Ziel-URLs wiederverwendet werden können, füllen Sie bitte die Lücken aus. Ich habe noch keinen Weg gefunden, das zu tun. In diesem Sinne: Ich habe heute die neuesten 10049 von Windows 10 TP erhalten, und bei diesem Aktualisierungsprozess wurden alle oben genannten Verknüpfungsdateien zurückgesetzt, sodass sie jetzt alle funktionieren. Alle außer der Verknüpfung "Boston", die leer gelassen wurde. Nummer 2, 3 und 6 haben im Rahmen des Resets auch das SU-Favicon als neues Symbol erhalten.
Samir
1
Zwischenspeichert Windows den Inhalt von URL-Dateien (Internet Shortcut)? sagt MUICache, aber ich bin mir nicht sicher, da regedit dort nichts .URL-spezifisches anzeigt.
Karan
Dieser Registrierungsschlüssel scheint "Anwendungsfirma" und "freundlicher App-Name" für DLL- und EXE-Dateien zu enthalten. Ich gehe davon aus, dass dies mit der Lokalisierung und Anzeige dieser Namen für diejenigen zu tun hat, die Windows in einer anderen Sprache als Englisch (daher MUI) verwenden.
Samir
2
Wie so oft zuvor ist der Internet Explorer der Schuldige für seltsame Verhaltensweisen in Windows. Ganz zu schweigen von Sicherheitsproblemen.
Samir
Herzlichen Glückwunsch zu einigen ausführlichen Ermittlungen und vielen Dank, dass Sie es hier geteilt haben. Nichts, was Sie sagen, bringt mich dazu, zu einer Microsoft-Plattform zurückzukehren. Wie können sie es auf so viele Arten vermasseln - ich bin immer wieder erstaunt.
Floris