Come spostare i programmi da C: a D: o ad altre unità

Come spostare un programma da C: a D: oppure verso altre unità di memorizzazione. Il modo più semplice per farlo in tutta sicurezza consiste nel ricorrere ai link simbolici di Windows. La procedura in pratica.

Un programma si dice portabile quando può essere utilizzato senza installazione: l’eseguibile di un’applicazione portabile non modifica la configurazione del sistema, non inserisce chiavi e valori nel registro di sistema di Windows e non salva o richiede file all’infuori della cartella in cui è posizionato.
La maggior parte dei programmi che si installano in Windows, però, scrive informazioni non solo nella propria cartella (la directory ogni programma viene installato) ma anche in altre locazioni di memoria oltre che in varie posizioni del registro (nell’articolo Trasferire programmi da un PC a un altro abbiamo fornito alcune indicazioni in merito).

Come fare, quindi, per spostare i programmi da C: a D: oppure verso altre unità?

Questa necessità è infatti piuttosto frequente allorquando non si avesse più spazio disponibile sull’unità principale e si volesse spostare un’applicazione su un altro disco senza reinstallarla.

È il caso della migrazione da un hard disk tradizionale a un SSD (vedere Spostare sistema operativo su SSD): generalmente la nuova unità SSD ha una capienza decisamente inferiore rispetto alle dimensioni complessive dell’hard disk.

Nel caso in cui ci si preparasse allo spostamento del sistema operativo da hard disk a SSD, quindi, è assai probabile che non ci sia spazio per tutte le applicazioni installate nel vecchio hard disk. Certo, è possibile disinstallare quelle che non servono più e fare spazio, intanto, riposizionando altrove le cartelle Documenti, Download, Immagini, Video, Musica insieme con i loro contenuti: Spostare cartella documenti e download in un altro disco.

Come fare, però, per spostare i programmi da C: a D: supponendo per ipotesi che D: sia il disco più capiente e C: l’hard disk o l’unità SSD con un ridotto quantitativo di spazio disponibile?

C’è una funzionalità di Windows (comune peraltro anche agli altri sistemi operativi…) che permette di spostare i programmi da C: a D: o su un altro disco con uno sforzo praticamente nullo.

I link simbolici possono essere considerati come “collegamenti avanzati”.
Grazie a un link simbolico un programma può apparire (per il sistema operativo e per le altre applicazioni) sempre presente nella cartella originale quando in realtà è stato spostato altrove, addirittura su un’unità diversa.

Si supponga di aver installato un programma nella cartella C:\Program files o C:\Program files (x86).
Usando un link simbolico tutti i riferimenti alla cartella C:\Program files\nomeprogramma o C:\Program files (x86)\nomeprogramma conservati in varie aree di Windows continueranno ad essere corretti nonostante l’applicazione sia stata spostata, per esempio, nella directory D:\Programmi\nomeprogramma.

Si tratta di un espediente davvero utilissimo: facendone uso si potrà spostare altrove la cartella di un programma e creare un link simbolico che faccia da ponte tra il vecchio percorso e quello nuovo. In questo modo tutti i riferimenti alla vecchia cartella rimarranno corretti e né il sistema operativo né le applicazioni installate mostreranno alcun messaggio d’errore.
Ne avevamo parlato anche nell’articolo Aumentare spazio su disco, come fare? al paragrafo Usare i link simbolici e le giunzioni tra cartelle.

I link simbolici possono essere di due tipologie: hard e soft. Il link soft “lavora” esattamente come un collegamento di tipo tradizionale: quando lo si utilizza si viene diretti verso la cartella che realmente contiene i file.
Un hard link, invece, che è quello che utilizzeremo per spostare i programmi da C: a D:, esso “fa credere” al sistema operativo che i file siano memorizzati nella cartella specificata e non riposizionati altrove.

In Windows non vengono usati i termini soft link e hard link anche se il comando mklink supporta entrambe le modalità. Nel sistema operativo Microsoft si parla genericamente di link simbolici.

Per usare il comando mklink bisognerà necessariamente aprire il prompt dei comandi con i diritti di amministratore.

Spostare i programmi da un’unità all’altra: la procedura passo-passo

Per spostare programmi da C: a D: è possibile applicare la procedura di seguito illustrata:

1) Assicurarsi, facendo eventualmente riferimento al Task Manager (CTRL+MAIUSC+ESC) di Windows, che nessun componente del programma che si desidera spostare sia in esecuzione. In caso contrario bisognerà provvedere a chiuderlo. In alcune circostanze il semplice riavvio del sistema potrebbe non aiutare se il programma avviasse componenti e servizi, in automatico, ad ogni ingresso in Windows. Bisognerà quindi usare il pulsante Termina attività del Task Manager per arrestare tutti i componenti in esecuzione legati al programma che si vuole spostare.

2) Creare la cartella D:\Programmi.

3) Spostare la sottocartella ospitata all’interno di C:\Program files o C:\Program files (x86) contenente il programma che si intende ricollocare da C: a D: nella cartella D:\Programmi.

Per procedere basta tenere premuto con il tasto destro del mouse sulla sottocartella da spostare quindi trascinare da C:\Program files o C:\Program files (x86) in D:\Programmi. Cliccare infine su Sposta qui.

Come spostare i programmi da C: a D: o ad altre unità
4) Alla comparsa del seguente messaggio (appare nel caso delle cartelle Program files – che sono cartelle di sistema – ma non per altre directory conservate a livello di filesystem fuori da quelle di sistema), bisognerà concedere i diritti di amministratore cliccando su Continua.

Come spostare i programmi da C: a D: o ad altre unità
5) Aprire il prompt dei comandi di Windows con i diritti di amministratore.

6) Utilizzare il comando seguente:

mklink /J "C:\Program files\ORIGINE" "D:\Programmi\DESTINAZIONE"

Come spostare i programmi da C: a D: o ad altre unità
La cartella ORIGINE contenuta, in questo caso, in C:\Program files dovrà essere già stata interamente spostata altrimenti verrà visualizzato il messaggio Impossibile creare un file, se il file esiste già.

7) A questo punto, cliccando due volte sulla cartella originale, dovrebbero apparire i contenuti spostati nell’altra unità.
Inoltre, avviando l’applicazione questa dovrebbe eseguirsi senza alcun problema.
Il comando mklink /J crea di fatto una giunzione di directory ma trattasi sempre di un link simbolico.

Il link simbolico impostato (giunzione di directory) “resisterà” anche al riavvio del sistema: non si dovrà quindi creare un file batch da eseguire ogni volta al boot di Windows.

Per verificare, in qualunque momento, le giunzioni di directory eventualmente presenti in una cartella, basterà – da prompt dei comandi – digitare dir /al.

Un software alternativo per spostare i programmi da C: a D: è Folder Move

Per semplificare le cose a coloro che non sono così abituati a usare la finestra del prompt dei comandi di Windows, presentiamo anche il software Folder Move.

Scaricabile gratuitamente cliccando qui, Folder Move altro non è che un’interfaccia grafica per il comando mklink di Windows.

Folder Move è un programma portabile che si avvia semplicemente facendo doppio clic sul suo eseguibile.
Dalla schermata principale del software, basterà quindi specificare la cartella contenente il programma da spostare (Move from) e appena più in basso la directory di destinazione (Move to).


Se, all’avvio del programma, dovesse comparire l’avviso di Microsoft SmartScreen “PC protetto da Windows“, si dovrà fare clic su Ulteriori informazioni quindi sul pulsante Esegui comunque.

Con un clic sul pulsante Move and Set symbolic link, il programma si farà carico – dapprima – di spostare la cartella indicata quindi di creare il link simbolico a livello di filesystem.

Un altro ottimo programma (necessita di installazione e si integra con l’interfaccia di Windows) si chiama Link Shell Extension: per creare una giunzione di directory e spostare il contenuto di una cartella da C: a D:, basta cliccare con il tasto destro sulla cartella contenente i file del programma quindi scegliere la voce Pick as source.

Ci si dovrà quindi portare nella cartella dove si intende spostare il programma, fare clic con il tasto destro del mouse in un’area libera e selezionare il comando Drop as, Junction dal menu contestuale di Windows.

Per verificare l’effettiva creazione dei link simbolici, oltre al comando dir /al citato in precedenza si può eventualmente ricorrere al software gratuito NTFSLinksView che ha il vantaggio di permettere la scansione dell’intera unità di memorizzazione alla ricerca di tutti i link simbolici impostati.


Per procedere in tal senso, basta digitare ad esempio C:\ nell’apposito campo, scegliere Infinite dal menu Subfolders depth quindi cliccare il pulsante Go.

Questa pratica utilità può essere scaricata gratuitamente digitando NTFSLinksView nirsoft nella casella di ricerca di Google (cliccare quindi sul primo link restituito).

Per spostare un programma da C: a D: talvolta può essere necessario creare una giunzione anche sulle sottocartelle di Appdata, LocalAppdata e ProgramData

Molte applicazioni non memorizzano i propri file solamente nella cartella C:\Program files o C:\Program files (x86) ma salvano importanti quantitativi di dati anche nelle directory %appdata%, %localappdata% e %programdata% (vedere i nostri articoli AppData: a cosa serve la cartella e quali informazioni contiene e Di quali file è importante creare backup in Windows?).

Per spostare il contenuto delle sottocartelle di %appdata%, %localappdata% e %programdata% appartenenti a uno stesso programma basta attenersi alle indicazioni illustrate in precedenza e creare una giunzione di directory tra l’unità C: e l’altra unità di memorizzazione sulla quale i file vengono riposizionati.

Ti consigliamo anche

Link copiato negli appunti