Il comando Crea collegamento tronca i nomi di cartella del percorso di origine a otto caratteri

Il supporto per Windows XP è terminato

Il supporto Microsoft per Windows XP è terminato l'8 aprile 2014. Questa modifica ha interessato gli aggiornamenti software e le opzioni di sicurezza. Ulteriori informazioni su come continuare a essere protetti.

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 263324
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sintomi
Quando si crea i tasti di scelta rapida e si specifica un nome di file lungo nel percorso di destinazione, il percorso viene troncato se il disco rigido per la destinazione non esiste. Ad esempio, è possibile creare un collegamento con la seguente destinazione:

J:\Mydirectory\Myapplication.exe

Se l'unità J non esiste, il percorso viene troncato per:

J:\Mydirect\Mypplica.exe
Cause
Questo problema può verificarsi perché la shell non può determinare se il disco rigido supporta lungo nomi di file, in modo che il percorso viene troncato da accettabile per tutti i sistemi di file.
Status
Microsoft ha confermato che questo problema riguarda i prodotti Microsoft elencati all'inizio di questo articolo.
Informazioni
Questo problema è possibile osservare quando si utilizza uno dei seguenti metodi per creare collegamenti:
  • Crea il programma di installazione di server (SMS) Systems Management metodo di collegamento
  • Il codice VBScript Crea metodo di collegamento
  • Il metodo di interfaccia IShellLink

Il programma di installazione SMS Crea metodo di collegamento


Un'estrazione da un file IPF SMS Installer che illustra il problema:
item: Create Shortcut  Source English=X:\Pw32\Alongdirectory\Blongdirectory\Longfilename.exe  Destination English=C:\Winnt\Shortcut123.lnk  Key Type English=1536  Flags=00000001end				
se si compila uno script con l'estrazione e viene eseguita dopo si è verificato che l'unità X non esiste, è possibile osservare che viene creato il collegamento, ma il percorso di destinazione viene troncato a:

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

Se si connettere unità X a una condivisione o utilizzare un comando subst per puntare a un'unità locale ed eseguire nuovamente lo script, il collegamento viene creato con il percorso di destinazione corretto:

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

Questo problema non è causato da SMS Installer. Questo problema si verifica perché il programma di installazione SMS utilizza l'interfaccia di IShellLink (vedere "Il metodo di interfaccia IShellLink") per creare collegamenti. Il programma di installazione SMS passa l'interfaccia IShellLink il nome di percorso corretto completo, ma il percorso viene troncato quando viene eseguita l'operazione IShellLink::SetPath.

Il metodo VBScript crea collegamento

Un esempio di VBScript che illustra il problema:
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 = 1oShellLink.Hotkey = "CTRL+SHIFT+F"oShellLink.Description = "Long Filename Shortcut"oShellLink.Save				
quando si esegue questo script e l'unità J non esiste, è possibile osservare il collegamento creato, ma il percorso di destinazione è:

J:\My_long_\Myapplic.exe

Nota : qualsiasi caratteri normalmente non supportati dai sistemi di file che non si desidera nomi di file lunghi, ad esempio il carattere di spazio, vengono sostituiti con il simbolo del carattere di sottolineatura "_".

Per aggirare il problema, è possibile utilizzare il comando subst punti unità J a un disco rigido locale:
set WshShell = WScript.CreateObject("WScript.Shell")Dim ret'subst a drive to make the mapping workret = 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 = 1oShellLink.Hotkey = "CTRL+SHIFT+F"oShellLink.Description = "Long Filename Shortcut"oShellLink.Save'remove the substret = WshShell.Run ("cmd /c subst j: /d", 0, TRUE)				
questo comando punti unità J sull'unità c. Se l'unità C supporta nomi di file lunghi, il comando crea un collegamento con il seguente percorso di destinazione:

Directory\Myapplication.exe lungo J:\My

È possibile anche utilizzare WshNetwork.MapNetworkDrive per connettere unità J una condivisione di nota, creare il collegamento, come descritto nella procedura precedente e rimuovere unità J utilizzando WshNetwork.RemoveNetworkDrive.

Il metodo di interfaccia IShellLink

Un'estrazione di codice che illustra il problema tramite l'interfaccia IShellLink in Microsoft Visual c ++:
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");				
è necessario utilizzare IPersistFile::Save per scrivere il collegamento su disco. Questa azione comporta un percorso di destinazione:

X:\Azertyui\Azertyui.exe

Questo problema si verifica in tutte le versioni di Windows NT 4.0 e Windows 2000.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 263324 - Ultima revisione: 12/05/2015 20:21:15 - Revisione: 3.3

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

  • kbnosurvey kbarchive kbmt kbnofix kbprb kbsms200presp3 kbui KB263324 KbMtit
Feedback