Come modificare la destinazione del collegamento (.lnk) in blocco usando lo script
Molti utenti hanno scorciatoie che puntano a varie condivisioni di rete di altri sistemi o del server di archiviazione del tuo dominio. Se la tua azienda migra il server e ha cambiato il nome del computer, il nome della condivisione o il percorso della cartella, devi aggiornare manualmente le destinazioni dei collegamenti per puntare al server giusto. Sebbene la struttura delle cartelle possa rimanere la stessa, il nome del server generalmente cambia.
Per le scorciatoie che puntano a un file o una cartella nel computer locale, Windows aggiorna automaticamente le scorciatoie (utilizzando il servizio "Monitoraggio link distribuito") quando la destinazione viene spostata o rinominata. Ma, nel caso di scorciatoie che puntano a percorsi di rete, devono essere fatti manualmente o usando un programma / script.
L'aggiornamento manuale dei percorsi è un'attività faticosa, soprattutto se hai centinaia di scorciatoie. Se stai cercando informazioni su come aggiornare in blocco i target dei collegamenti, questo articolo ha una soluzione.
Modifica obiettivi di collegamento (.lnk) in blocco
Ecco uno script di PowerShell che aggiorna automaticamente la destinazione del collegamento per i file .lnk in una cartella specificata. Questo script aggiorna automaticamente i collegamenti che contengono il nome o il percorso del vecchio server, sostituendoli con il nuovo nome o percorso.
$ oldPrefix = "\\ MEDIA" $ newPrefix = "\\ MEDIA-PC" $ searchPath = "E: \ Shortcuts" $ shell = new-object -com wscript.shell write-host "Aggiornamento target scorciatoia" -foregroundcolor rosso - backgroundcolor black dir $ searchPath -filter * .lnk -recurse | foreach {$ lnk = $ shell.createShortcut ($ _. fullname) $ oldPath = $ lnk.targetPath $ lnkRegex = "^" + [regex] :: escape ($ oldPrefix) if ($ oldPath -match $ lnkRegex) {$ newPath = $ oldPath -replace $ lnkRegex, $ newPrefix write-host "Found:" + $ _. fullname -foregroundcolor yellow -backgroundcolor black write-host "Sostituisci:" + $ oldPath write-host "Con:" + $ newPath $ lnk.targetPath = $ newPath $ lnk.Save ()}}
- Copia il codice sopra in Blocco note e salva il file come
lnk_change.ps1
- Assicurati di inserire i percorsi vecchi e nuovi nelle righe 1 e 2 sopra.
- Nella riga n. 3, specificare la cartella in cui sono archiviati i collegamenti per i quali si desidera aggiornare il percorso.
- Dalla finestra di dialogo Esegui, eseguire il comando seguente:
powershell -noexit -ExecutionPolicy ByPass -File D: \ Scripts \ lnk_change.ps1
Questo è tutto. Le destinazioni dei collegamenti sono ora aggiornate da \\MEDIA
a \\MEDIA-PC
.
- È inoltre possibile utilizzare il percorso completo della risorsa, ad esempio
\\MEDIA\Shared
e\\MEDIA-PC\SharedFolder
come percorsi "vecchio" e "nuovo". - Nel caso in cui il nome del server sia lo stesso ma il percorso della cartella sia cambiato, è necessario inserire i percorsi completi rispettivamente nei numeri di riga 1 e 2, ad esempio
\\MEDIA\Shared
to\\MEDIA\SharedFolder
Spero possa aiutare!