DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 263324 - Geändert am: Dienstag, 31. Oktober 2006 - Version: 3.3

 

Auf dieser Seite

Problembeschreibung

Wenn Sie Verknüpfungen erstellen und im Zielpfad einen langen Dateinamen angeben, ist der Pfad abgeschnitten, wenn die Festplatte für das Ziel nicht vorhanden ist. Erstellen Sie z. B. eine Verknüpfung mit dem folgenden Ziel:

J:\Mydirectory\Myapplication.exe

Wenn Laufwerk J nicht vorhanden ist, wird der Pfad zu abgeschnitten:

J:\Mydirect\Mypplica.exe

Ursache

Dieses Problem kann auftreten, da die Shell nicht bestimmen kann, ob die Festplatte lange Dateinamen unterstützt, sodass der Pfad für die alle Dateisysteme akzeptabel abgeschnitten wird.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Weitere Informationen

Dieses Problem möglicherweise beachtet werden, wenn Sie eine der folgenden Methoden, verwenden um Verknüpfungen zu erstellen:
  • Der Systems Management Server (SMS) Installer erstellen Shortcut-Methode
  • Das VBScript erstellen Shortcut-Methode
  • Die IShellLink Interface-Methode

SMS Installer erstellen Shortcut-Methode


Einen Auszug aus einer SMS Installer .IPF Datei, die das Problem veranschaulicht:
item: Create Shortcut
  Source English=X:\Pw32\Alongdirectory\Blongdirectory\Longfilename.exe
  Destination English=C:\Winnt\Shortcut123.lnk
  Key Type English=1536
  Flags=00000001
end
				
Wenn Sie ein Skript mit diesem extrahieren kompilieren und Sie es ausführen Nachdem Sie sichergestellt haben, dass Laufwerk X nicht vorhanden ist, können Sie beobachten, dass die Verknüpfung erstellt, aber der Zielpfad ist auf gekürzt:

X:\Pw32\Alongdir\Blongdir\Longfile.exe

Wenn Sie Laufwerk X mit einer Freigabe verbinden oder einen Befehl Subst verwenden, um zeigen auf einem lokalen Laufwerk, und Sie das Skript erneut ausführen, wird die Verknüpfung mit den richtigen Zielpfad erstellt:

X:\Pw32\Alongdirectory\Blongdirectory\Longfilename.exe

Dieses Problem wird nicht durch SMS Installer verursacht. Dieses Problem rührt SMS Installer die IShellLink-Schnittstelle verwendet (Siehe "Die IShellLink Interface-Methode") um Verknüpfungen zu erstellen. SMS Installer übergibt den vollständigen Pfad-Namen an die IShellLink-Schnittstelle, aber der Pfad wird abgeschnitten, wenn die IShellLink::SetPath-Operation durchgeführt wird.

Die Verknüpfung von VBScript erstellen-Methode

Ein Beispiel für VBScript, die das Problem veranschaulicht:
set WshShell = WScript.CreateObject("WScript.Shell")
set oShellLink = WshShell.CreateShortcut("d:\" & "\Long filename Shortcut .lnk")
oShellLink.TargetPath = "j:\my long directory\myapplication.exe"
oShellLink.WindowStyle = 1
oShellLink.Hotkey = "CTRL+SHIFT+F"
oShellLink.Description = "Long Filename Shortcut"
oShellLink.Save
				
Wenn Sie dieses Skript ausführen und Laufwerk J ist nicht vorhanden, Sie können die erstellte Verknüpfung beobachten, aber der Zielpfad ist:

J:\My_long_\Myapplic.exe

Hinweis : alle Zeichen, die nicht normalerweise von Dateisystemen unterstützt werden, die nicht lange Dateinamen, z. B. das Leerzeichen durch das Symbol Unterstrich "_" ersetzt.

Um dieses Problem zu umgehen, können Sie den Befehl Subst Laufwerk J auf einer lokalen Festplatte zeigen:
set WshShell = WScript.CreateObject("WScript.Shell")
Dim ret
'subst a drive to make the mapping work
ret = WshShell.Run ("cmd /c subst j: c:\", 0, TRUE)
set oShellLink = WshShell.CreateShortcut("d:\" & "\Long filename Shortcut .lnk")
oShellLink.TargetPath = "j:\my long directory\myapplication.exe"
oShellLink.WindowStyle = 1
oShellLink.Hotkey = "CTRL+SHIFT+F"
oShellLink.Description = "Long Filename Shortcut"
oShellLink.Save
'remove the subst
ret = WshShell.Run ("cmd /c subst j: /d", 0, TRUE)
				
dieser Befehl zeigt J# auf dem Laufwerk c: Laufwerk Wenn Laufwerk C lange Dateinamen unterstützt, erstellt der Befehl eine Verknüpfung mit dem folgenden Zielpfad:

Lange directory\Myapplication.exe J:\My

Sie können auch WshNetwork.MapNetworkDrive verwenden, um Laufwerk J mit einer bekannten Freigabe verbinden, erstellen Sie die Verknüpfung, wie in den vorherigen Schritten beschrieben und entfernen Sie Laufwerk J mithilfe von WshNetwork.RemoveNetworkDrive.

Die IShellLink Interface-Methode

Einen Auszug des Codes, die das Problem mithilfe der IShellLink-Benutzeroberfläche in Microsoft Visual C++ veranschaulicht:
HRESULT hres; 

IShellLink* psl; 
 
    // Get a pointer to the IShellLink interface. 
    hres = CoCreateInstance(CLSID_ShellLink, NULL, 
        CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID *) &psl); 
    if (SUCCEEDED(hres)) { 
        IPersistFile* ppf; 
 
        // Set the path to the shortcut target and add the 
        // description. 
        hres = psl->SetPath("X:\\azertyuiop\\azertyuiop.exe");
				
IPersistFile::Save muss die Verknüpfung auf Datenträger schreiben verwendet. Diese Aktion ergibt einen Zielpfad der:

X:\Azertyui\Azertyui.exe

Dieses Problem tritt bei allen Versionen von Windows NT 4.0 und Windows 2000.

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Systems Management Server 1.0 Standard Edition
  • Microsoft Systems Management Server Installer 2.0
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
Keywords: 
kbmt kbnofix kbprb kbsms200presp3 kbui KB263324 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 263324  (http://support.microsoft.com/kb/263324/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store
Folgen Sie uns: