Visualizzazione post con etichetta Windows. Mostra tutti i post
Visualizzazione post con etichetta Windows. Mostra tutti i post

mercoledì 27 agosto 2025

Windows 11: Massimizzare le prestazioni della rete Wi-Fi

In ambito Windows, esistono diverse configurazioni e accorgimenti che è possibile adottare per massimizzare le prestazioni della rete Wi-Fi. Questo articolo esplora alcune delle configurazioni avanzate di Windows, dalle impostazioni hardware ai parametri software più nascosti, per ottenere il massimo dalla propria connessione wireless. 

Driver Aggiornati

Il primo passo per garantire prestazioni ottimali consiste nel verificare che la scheda Wi-Fi utilizzi i driver più recenti. Driver obsoleti possono causare instabilità, disconnessioni e velocità inferiori allo standard supportato dall’hardware. 

Per controllare lo stato dei driver, premere la combinazione di tasti Win+X e selezionare Gestione Dispositivi. Espandere la sezione "Schede di rete", fare clic con il tasto destro sulla scheda Wi-Fi e scegliere Aggiorna driver. Se il sistema segnala che i driver sono già aggiornati, è consigliabile verificare manualmente sul sito del produttore (Intel, Realtek, Qualcomm, ecc.), dove spesso sono disponibili versioni più recenti rispetto a quelle distribuite da Microsoft.
Aggiorna driver
FIG 1 - Aggiorna driver


Configurazione Avanzata della Scheda di Rete

Una volta che i driver sono aggiornati, è possibile accedere alle impostazioni avanzate per affinare il comportamento della scheda.

Per aprire il menu di configurazione della rete, premere Win+R, digitare ncpa.cpl seguito da Invio. Selezionare la connessione Wi-Fi attiva, fare clic con il tasto destro e scegliere Proprietà. Da qui, cliccare su Configura per accedere alle opzioni avanzate.
Proprietà
FIG 2 - Proprietà


All'interno delle proprietà avanzate, è possibile regolare parametri critici per la stabilità e la velocità.


Impostazione della banda preferita (Preferred Band)
Molti adattatori Wi-Fi consentono di scegliere la banda di funzionamento:
  • 2,4 GHz maggiore copertura, ma più interferenze e velocità limitata.
  • 5 GHz prestazioni superiori, ideale per ambienti ad alta densità di dispositivi e per streaming ad alta definizione.
Impostando la scheda su Dual Band (o su Nessuna preferenza) si consente al sistema di scegliere automaticamente la frequenza più performante.
Banda preferita
FIG 3 - Banda preferita


Potenza di trasmissione (Transmit Power)
Per massimizzare la copertura del segnale, impostare il valore di Potenza di trasmissione su Massimo (Highest). Questo parametro aumenta la potenza di uscita della scheda, migliorando la portata e la stabilità della connessione, specialmente in ambienti con ostacoli o distanze significative dal router.
Potenza di trasmissione
FIG 4 - Potenza di trasmissione

Efficacia roaming (Roaming Aggressiveness)
Questa impostazione determina la sensibilità con cui la scheda cerca di connettersi a un punto di accesso più forte. Per gli ambienti con più punti di accesso (come uffici o case con sistemi mesh), impostare questo valore su un livello più elevato può garantire una transizione più fluida tra i vari access point.
Efficacia roaming
FIG 5 - Efficacia roaming 


Incremento del throughput (Throughput Booster)

Questa funzione, se disponibile, ottimizza l'allocazione delle risorse della scheda Wi-Fi per privilegiare il throughput. È particolarmente utile per accelerare download di grandi dimensioni, anche se può comportare un leggero aumento della latenza in alcuni contesti di rete pertanto non è indicata in ambienti multiutente o in applicazioni sensibili al ritardo (ad esempio, videoconferenze o gaming online).
Incremento del throughput
FIG 6 - Incremento del throughput 


Gestione dell'Efficienza Energetica

A volte, le impostazioni di risparmio energetico possono limitare le prestazioni della scheda Wi-Fi. All'interno delle proprietà avanzate, è consigliabile disabilitare, se presente, le opzioni di risparmio energetico per garantire che la scheda operi sempre alla massima potenza, specialmente sui dispositivi fissi. 


Ottimizzazione DNS

Un altro elemento spesso trascurato riguarda la configurazione dei server DNS. 
Sebbene non sia una configurazione della scheda di rete, la scelta del server DNS (Domain Name System) influisce direttamente sull'esperienza di navigazione. Un DNS veloce e affidabile riduce i tempi di risoluzione, migliorando la reattività complessiva della connessione.

È possibile modificare i server DNS nelle proprietà del protocollo Internet IPv4 (TCP/IPv4) della connessione di rete. L'utilizzo di DNS pubblici come quelli di Google (8.8.8.8 e 8.8.4.4) o Cloudflare (1.1.1.1 e 1.0.0.1) è spesso consigliato per una maggiore velocità e sicurezza.


Considerazioni aggiuntive

Oltre agli interventi software, va ricordato che le prestazioni Wi-Fi dipendono anche da fattori infrastrutturali:
  • Posizionamento corretto degli access point, evitando interferenze fisiche e sovrapposizione dei canali.
  • Aggiornamento del router/AP a standard più recenti (Wi-Fi 6/6E).
  • Monitoraggio periodico delle reti aziendali tramite strumenti di site survey per rilevare congestioni o interferenze.





lunedì 18 agosto 2025

Windows: Robocopy

La gestione dei dati è fondamentale, che si tratti di un semplice backup di documenti personali o della migrazione di un'intera infrastruttura aziendale, la capacità di spostare e copiare file in modo efficiente, affidabile e veloce è cruciale. Sebbene l'interfaccia grafica di Esplora file sia più che sufficiente per le attività quotidiane, Windows offre uno strumento a riga di comando che rappresenta la scelta preferita per i professionisti IT e gli utenti avanzati: Robocopy.

Robocopy, abbreviazione di "Robust File Copy", è un'utility a riga di comando integrata in tutti i sistemi operativi Windows moderni.  Il suo scopo principale è quello di copiare file e directory da una posizione all'altra, ma con una serie di funzionalità avanzate che lo distinguono da comandi più semplici come `copy` o `xcopy`. La sua "robustezza" deriva dalla capacità di riprendere le operazioni interrotte, di gestire la copia di permessi e attributi, e di operare in modalità specchio (mirroring) per sincronizzare il contenuto di due cartelle in modo bidirezionale.

I vantaggi nell'utilizzo di Robocopy sono
  • Robustezza: Se la copia viene interrotta a causa di un problema di rete o di un errore, Robocopy può riprendere da dove si era fermato, senza dover ricominciare tutto da capo. L'opzione `/Z` (restartable mode) è il cuore di questa funzionalità.
  • Velocità: Con l'opzione di copia multi-thread, Robocopy può copiare file in parallelo, migliorando notevolmente la velocità di trasferimento, specialmente su collegamenti veloci e con tanti file piccoli.
  • Controllo Granulare: Si ha un controllo granulare su cosa viene copiato, escluso o modificato. É possibile specificare se copiare sottocartelle vuote, escludere file per nome o dimensione, o mantenere attributi e permessi.
  • Automazione: Essendo un'utility a riga di comando, Robocopy si presta perfettamente all'uso in script e file batch per automatizzare le operazioni di backup e sincronizzazione, rendendole ripetibili e programmate.

Per utilizzare Robocopy si consiglia di aprire il Prompt dei comandi con privilegi amministrativi. L'uso dei privilegi amministrativi garantisce che Robocopy possa superare eventuali restrizioni di accesso ai file (a meno che non si utilizzino opzioni specifiche come `/b` per la modalità backup).

Sintassi e Parametri Fondamentali

La sintassi di base di robocopy è semplice ma potente:
robocopy <origine> <destinazione> [<file>[ ...]] [<opzioni>]
  • <origine>: Specifica il percorso della directory da cui vuoi copiare.
  • <destinazione>: Specifica il percorso della directory dove vuoi copiare i file.
  • [<file>[ ...]]: Il nome del file o dei file da copiare. I caratteri jolly (`*` e `?`) sono supportati. Se omesso, Robocopy copierà tutti i file (`*.*`).
  • [<opzioni>]: Le opzioni di comando che definiscono il comportamento di Robocopy.

Per esempio, per copiare il file `report.zip` dalla cartella `c:\reports` alla condivisione di rete `\\backup\reports` in modalità multi-thread e riavviabile, il comando sarà:
robocopy c:\reports "\\backup\reports" report.zip /mt /z


Opzioni di Copia Essenziali


Opzione Descrizione
/s
Copia le sottodirectory, ma esclude quelle vuote.
/e
Copia le sottodirectory, incluse quelle vuote. Questa è l'opzione più comune per la copia completa di una cartella.
/lev:<n>
Copia solo i primi n livelli dell'albero delle directory di origine.
/z
Copia i file in modalità riavviabile. In modalità riavviabile, in caso di interruzione di una copia di file, robocopy può riprendere la posizione in cui è stata interrotta invece di ricopiare l'intero file.
/b
Copia i file in modalità di backup. In modalità di backup robocopy esegue l'override delle impostazioni di autorizzazione per file e cartelle (ACL), che potrebbero altrimenti bloccare l'accesso.
/zb
Copia i file in modalità riavviabile. Se l'accesso ai file viene negato, passa alla modalità di backup.
/j
Copia con I/O senza buffer (scelta consigliata per file di grandi dimensioni).
/efsraw
Copia tutti i file crittografati in modalità RAW EFS.
/j
Copia con I/O senza buffer (scelta consigliata per file di grandi dimensioni).
/copy:<copyflags>
Specifica le proprietà del file da copiare. I valori validi per questa opzione sono:
D - Data
A - Attributes
T - Time stamps
X - Skip alt data streams
S - NTFS access control list (ACL)
O - Owner information
U - Auditing information

Il valore predefinito per l'opzione /COPY è DAT (dati, attributi e timestamp). Il flag X viene ignorato se si utilizza /B o /ZB.
/dcopy:<copyflags>
Specifica cosa copiare nelle directory. I valori validi per questa opzione sono:
D - Data
A - Attributes
T - Time stamps
E - Extended attribute
X - Skip alt data streams
Il valore predefinito per questa opzione è DA (dati e attributi).
/sec
Copia i file con sicurezza (equivalente a /copy:DATS).
/copyall
Copia tutte le informazioni del file (equivalente a /copy:DATSOU).
/nocopy
Non copia le informazioni sui file (utile con /purge).
/secfix
Consente di correggere la sicurezza in tutti i file, anche quelli ignorati.
Quando si utilizza l'opzione di copia /secfix, specificare il tipo di informazioni di sicurezza che si desidera copiare, utilizzando una delle seguenti opzioni di copia aggiuntive:
/copyall
/copy:o
/copy:s
/copy:u
/sec
/timfix
Consente di correggere gli orari in tutti i file, anche quelli ignorati.
/purge
Elimina i file e le directory di destinazione che non esistono più nell'origine. Utilizzando questa opzione con l'opzione /e e una directory di destinazione, è possibile evitare la sovrascrittura delle impostazioni di sicurezza della directory di destinazione.
/mir
Esegue il mirroring di una struttura di directory (equivalente a /e più /purge). Utilizzando questa opzione con l'opzione /e e una directory di destinazione, sovrascrive le impostazioni di sicurezza della directory di destinazione.
/mov
Sposta i file ed elimina i file dall'origine dopo la copia.
/move
Sposta i file e le directory ed elimina i file dall'origine dopo la copia.
/a+:[RASHCNET]
Aggiunge gli attributi specificati ai file copiati. I valori validi per questa opzione sono:
R - Read only
A - Archive
S - System
H - Hidden
C - Compressed
N - Not content indexed
E - Encrypted
T - Temporary
/a-:[RASHCNETO]
Rimuove gli attributi specificati dai file copiati. I valori validi per questa opzione sono:
R - Read only
A - Archive
S - System
H - Hidden
C - Compressed
N - Not content indexed
E - Encrypted
T - Temporary
O - Offline
/create
Crea solo un albero di directory e file di lunghezza zero.
/fat
Crea file di destinazione usando solo nomi di file FAT di lunghezza di 8,3 caratteri.
/256
Disattiva il supporto per i percorsi con più di 256 caratteri.
/mon:<n>
Monitora la fonte e si riavvia quando vengono rilevate più di n modifiche.
/mot:<m>
Monitora la fonte e si riavvia dopo m minuti se vengono rilevate modifiche.
/rh:hhmm-hhmm
Specifica i tempi di esecuzione in cui è possibile avviare nuove copie.
/pf
Controlla i tempi di esecuzione per ogni file (non per passaggio).
/ipg:<m>
Specifica il divario tra pacchetti per liberare la larghezza di banda nelle linee lente.
/sj
Copia le giunzioni (collegamenti flessibili) nel percorso di destinazione anziché le destinazioni di collegamento.
/sl
Non seguire i collegamenti simbolici e creare invece una copia del collegamento.
/mt:<m>
Crea copie multithread con n thread. n deve essere un numero intero compreso tra 1 e 128. Il valore predefinito per n è 8. Per ottenere prestazioni migliori, reindirizzare l'output utilizzando l'opzione /log.
Il parametro /mt non può essere utilizzato con i parametri /ipg e /efsraw.
/nodcopy
Non copia le informazioni della directory (viene eseguita l'operazione predefinita /dcopy:DA).
/nooffload
Copia i file senza usare il meccanismo di offload copia di Windows.
/compress
Richiede la compressione di rete durante il trasferimento di file, se applicabile.
/sparse:<y|n>
Abilita o disabilita la conservazione dello stato sparse dei file durante il processo di copia. Se non viene selezionata alcuna opzione, l'impostazione predefinita è sì (abilitato).
/noclone
Non tenta di bloccare la clonazione come ottimizzazione.


Copiare le opzioni di limitazione dei file

Queste opzioni di limitazione vengono usate per specificare la larghezza di banda di I/O massima che Robocopy consente di usare in byte al secondo.  Se non si specifica il valore in byte al secondo, è possibile utilizzare numeri interi se si specificano k, m o g. La larghezza di banda I/O minima limitata è 524288 byte anche se si specifica un valore inferiore.
Opzione Descrizione
/iomaxsize:<n>[kmg]
La dimensione massima richiesta per ciclo di lettura/scrittura in kilobyte, megabyte o gigabyte.
/iorate:<n>[kmg]
La velocità di I/O richiesta in kilobyte, megabyte o gigabyte al secondo.
/threshold:<n>[kmg]
La soglia della dimensione del file per la limitazione in kilobyte, megabyte o gigabyte


Opzioni di selezione file

Opzione Descrizione
/a
Copia solo i file per i quali è impostato l'attributo Archivio.
/m
Copia solo i file per i quali è impostato l'attributo Archivio e reimposta l'attributo Archivio.
/ia:[RASHCNETO]
Include solo i file per i quali sono impostati gli attributi specificati. I valori validi per questa opzione sono:
R - Read only
A - Archive
S - System
H - Hidden
C - Compressed
N - Not content indexed
E - Encrypted
T - Temporary
O - Offline
/xa:[RASHCNETO]
Esclude solo i file per i quali sono impostati gli attributi specificati. I valori validi per questa opzione sono:
R - Read only
A - Archive
S - System
H - Hidden
C - Compressed
N - Not content indexed
E - Encrypted
T - Temporary
O - Offline
/xf [ ...]
Esclude i file che corrispondono ai nomi o ai percorsi specificati. Sono supportati i caratteri jolly (* e ?).
/Xd [ ...]
Esclude le directory che corrispondono ai nomi e ai percorsi specificati.
/xc
Esclude i file esistenti con lo stesso timestamp, ma dimensioni di file diverse.
/xn
I file di directory di origine più recenti rispetto alla destinazione vengono esclusi dalla copia.
/xo
I file della directory di origine precedente a quella di destinazione vengono esclusi dalla copia.
/xx
Esclude file e directory aggiuntivi presenti nella destinazione, ma non nell'origine. L'esclusione di file aggiuntivi non elimina i file dalla destinazione.
/xl
Esclude file e directory "solitari" presenti nell'origine ma non nella destinazione. L'esclusione di file solitari impedisce l'aggiunta di nuovi file alla destinazione.
/im
Includere i file modificati (tempi di modifica diversi).
/is
Include gli stessi file. Gli stessi file sono identici per nome, dimensioni, orario e tutti gli attributi.
/it
Include file "modificati". I file modificati hanno lo stesso nome, dimensioni e orario, ma attributi diversi.
/max:<n>
Specifica la dimensione massima del file (per escludere i file più grandi di n byte).
/min:<n>
Include file "modificati". I file modificati hanno lo stesso nome, dimensioni e orario, ma attributi diversi.
/maxage:<n>
Specifica l'età massima dei file per escludere i file più vecchi di n giorni o una data basata sull'ultima modifica dei file.
/minage:<n>
Specifica l'età minima dei file per escludere quelli più recenti di n giorni o una data basata sull'ultima modifica dei file.
/maxlad:<n>
Specifica la data massima dell'ultimo accesso (esclude i file inutilizzati da n).
/minlad:<n>
Specifica la data minima dell'ultimo accesso (esclude i file utilizzati dopo n). Se n è inferiore a 1900, n specifica il numero di giorni. Altrimenti, n specifica una data nel formato YYYYMMDD.
/xj
Esclude i punti di giunzione, che vengono normalmente inclusi per impostazione predefinita.
/fft
Presuppone i tempi dei file FAT (precisione di due secondi).
/dst
Compensa le differenze di tempo di un'ora DST.
/xjd
Esclude i punti di giunzione per le directory.
/xjf
Esclude i punti di giunzione per i file.


Opzioni di riprova

Opzione Descrizione
/r:<n>
Specifica il numero di tentativi per le copie non riuscite. Il valore predefinito di n è 1.000.000 (un milione di tentativi).
/w:<n>
Specifica il tempo di attesa tra i tentativi, in secondi. Il valore predefinito di n è 30 (tempo di attesa 30 secondi).
/reg
Salva i valori specificati nelle opzioni /r e /w come impostazioni predefinite nel Registro di sistema.
/tbd
Specifica che il sistema attende che i nomi delle condivisioni vengano definiti (errore di ripetizione del tentativo 67).
/lfsm
Funziona in modalità di spazio libero insufficiente che consente la copia, la pausa e la ripresa
/lfsm:<n>[kmg]
Specifica le dimensioni del pavimento in n kilobyte, megabyte o gigabyte.

Opzioni di registrazione (Log)
L'opzione di logging è cruciale per la verifica e l'automazione.

Opzione Descrizione
/l
Specifica che i file devono essere solamente elencati (e non copiati, eliminati o contrassegnati come timestamp).
/x
Segnala tutti i file aggiuntivi, non solo quelli selezionati.
/v
Produce un output dettagliato e mostra tutti i file ignorati.
/ts
Include i timestamp dei file di origine nell'output.
/fp
Include i nomi completi dei percorsi dei file nell'output.
/bytes
Stampa le dimensioni come byte.
/ns
Specifica che le dimensioni dei file non devono essere registrate.
/nc
Specifica che le classi dei file non devono essere registrate.
/nfl
Specifica che i nomi dei file non devono essere registrati.
/ndl
Specifica che i nomi di directory non devono essere registrati.
/np
Specifica di non visualizzare lo stato di avanzamento dell'operazione di copia (il numero di file o directory copiati finora).
/eta
Mostra il tempo stimato di arrivo (ETA) dei file copiati.
/log:<logfile>
Scrive l'output di stato nel file di log sovrascrivendo il file di log esistente.
/log+:<logfile>
Scrive l'output dello stato nel file di registro (aggiunge l'output al file di registro esistente).
/unilog:<logfile>
Scrive l'output dello stato nel file di registro come testo Unicode (sovrascrive il file di registro esistente).
/unilog+:<logfile>
Scrive l'output dello stato nel file di registro come testo Unicode (aggiunge l'output al file di registro esistente).
/tee
Scrive l'output dello stato nella finestra della console e nel file di registro.
/njh
Specifica che non è presente alcuna intestazione del processo.
/njs
Specifica che non è presente alcun riepilogo del lavoro.
/unicode
Visualizza l'output dello stato come testo Unicode.

Opzioni processo (Job)

Opzione Descrizione
/job:<jobname>
Specifica che i parametri devono essere derivati dal file di processo denominato. Per eseguire /job:jobname, è prima necessario eseguire il parametro /save:jobname per creare il file di processo.
/save:<jobname>
Specifica che i parametri devono essere salvati nel file di processo denominato. Questa operazione deve essere eseguita prima di eseguire /job:jobname. Tutte le opzioni di copia, ripetizione e registrazione devono essere specificate prima di questo parametro.
/quit
Esce dopo l'elaborazione della riga di comando (per visualizzare i parametri).
/nosd
Indica che non è specificata alcuna directory di origine.
/nodd
Indica che non è specificata alcuna directory di destinazione.
/if
Include i file specificati.


Codici di Uscita (Return Codes)

Al termine di un'operazione, Robocopy restituisce un codice numerico che può essere catturato da script batch per prendere decisioni.
Valore Descrizione
0
Nessun file copiato. Non è stato rilevato alcun errore. Nessun file non corrispondente. I file esistono già nella directory di destinazione, pertanto, l'operazione di copia è stata ignorata.
1
Tutti i file sono stati copiati correttamente.
2
Nella directory di destinazione sono presenti alcuni file aggiuntivi che non sono presenti nella directory di origine. Nessun file copiato.
3
Alcuni file sono stati copiati. Erano presenti file aggiuntivi. Non è stato rilevato alcun errore.
5
Alcuni file sono stati copiati. Alcuni file non corrispondono. Non è stato rilevato alcun errore.
6
Esistono file aggiuntivi e file non corrispondenti. Non sono stati copiati file e non sono stati rilevati errori, il che significa che i file esistono già nella directory di destinazione.
7
I file sono stati copiati, erano presenti una mancata corrispondenza dei file e file aggiuntivi.
8
Diversi file non sono stati copiati.

Qualsiasi valore uguale o maggiore di 8 indica che si è verificato almeno un errore durante l'operazione di copia.

Note

  • L'utilizzo di /PURGE o /MIR nella directory radice del volume in precedenza causava l'applicazione dell'operazione richiesta da parte di robocopy anche ai file all'interno della directory System Volume Information. Questo non è più il caso come se sia specificato, robocopy ignora tutti i file o le directory con tale nome nelle directory di origine e di destinazione di primo livello della sessione di copia.
  • La classificazione dei file modificati si applica solo quando i file system di origine e di destinazione supportano timestamp di modifica, ad esempio NTFS, e i file di origine e di destinazione hanno tempi di modifica diversi, ma per il resto sono gli stessi. Questi file non vengono copiati per impostazione predefinita. Specificare /IM per includerli.
  • Il flag /DCOPY:E richiede che venga tentata la copia estesa degli attributi per le directory. Robocopy continua l'operazione di copia anche se non è stato possibile copiare le EA di una directory. Questo flag non è incluso in /COPYALL.
  • Se si specifica /IoMaxSize o /IoRate, robocopy abilita la limitazione dei file di copia per ridurre il carico del sistema. Entrambi possono essere modificati in valori ottimali e parametri di copia, ma il sistema e robocopy sono autorizzati a modificarli in base ai valori consentiti in funzione delle esigenze.
  • Se si utilizza /Threshold, viene specificata una dimensione minima del file per l'attivazione della limitazione. I file al di sotto delle dimensioni non vengono limitati. I valori per tutti e tre i parametri possono essere seguiti da un carattere di suffisso facoltativo, ad esempio [KMG] (kilobyte, megabyte, gigabyte).
  • L'utilizzo di /LFSM richiede che robocopy funzioni in "modalità spazio libero insufficiente". In questa modalità robocopy si sospende ogni volta che una copia di file causa lo spazio disponibile del volume di destinazione al di sotto di un valore "floor". Questo valore può essere specificato in modo esplicito utilizzando il flag /LFSM:n[KMG].
  • Se si specifica /LFSM senza alcun valore di piano esplicito, il piano viene impostato su 10% delle dimensioni del volume di destinazione. La modalità di spazio libero insufficiente non è compatibile con /MT e /EFSRAW.


Esempi


Esempio 1 - Copia Base con Log
Questo comando copia tutti i file e le sottodirectory, comprese quelle vuote, da una cartella di origine a una di destinazione. Inoltre, crea un file di log per registrare l'operazione, permettendo di verificarne l'integrità successivamente.
robocopy C:\Users\Admin\Records D:\Backup /E /ZB /LOG:C:\Logs\Backup.log
  • robocopy C:\Users\Admin\Records D:\Backup: Indica l'origine (C:\...) e la destinazione (D:\...).
  • /E: Copia le sottodirectory, comprese quelle vuote.
  • /ZB: Usa la modalità di backup. Se l'utente non ha i permessi completi, prova a usare la modalità di backup per garantire la copia di tutti i file.
  • /LOG:C:\Logs\Backup.log: Crea un file di log chiamato Backup.log nel percorso specificato. Se il file esiste, lo sovrascrive. Usa /LOG+ per aggiungere al file di log esistente.

Esempio 2 - Mirroring (Sincronizzazione)
Questa opzione esegue il "mirroring" di una cartella, rendendo la destinazione una copia esatta dell'origine. I file nella destinazione che non esistono nell'origine vengono eliminati, garantendo una sincronizzazione perfetta.
robocopy C:\Users\Admin\Records D:\Backup /MIR /R:2 /W:5 /LOG:C:\Logs\Backup.log
  • /MIR: Esegue il mirroring. Attenzione: questo parametro elimina i file nella destinazione che non sono presenti nell'origine.
  • /R:2: Imposta 2 tentativi in caso di errori di copia.
  • /W:5: Imposta un'attesa di 5 secondi tra i tentativi.

Esempio 3 - Copia con Multithreading
Questo comando copia file e sottodirectory non vuote, mantenendo i metadati originali (data, attributi, timestamp). L'uso del multithreading accelera notevolmente il processo, specialmente con un gran numero di file piccoli.
robocopy C:\Users\Admin\Records D:\Backup /S /E /COPY:DAT /MT:16 /LOG:C:\Logs\Backup.log
  • /S: Copia le sottodirectory, ma non quelle vuote.
  • /COPY:DAT: Preserva i dati (D), gli attributi (A) e i timestamp (T) dei file.
  • /MT:16: Utilizza 16 thread per la copia. Si possono specificare da 1 a 128 thread.

Esempio 4 -  Spostamento di File (Taglia e Incolla)
A differenza della copia, lo spostamento sposta i file e le cartelle dall'origine alla destinazione. Questa opzione è utile per trasferire dati e liberare spazio nell'origine.
robocopy C:\Users\Admin\Records D:\Backup /S /MAXAGE:7 /MOV /LOG:C:\Logs\Backup.log
  • /MOV: Sposta i file, cancellandoli dall'origine dopo la copia.
  • /MAXAGE:7: Sposta solo i file che sono stati modificati negli ultimi 7 giorni.

Esempio 5 - Sincronizzazione Aggressiva
Questo comando combina l'opzione di eliminazione di file obsoleti (/PURGE) con la visualizzazione di un tempo stimato per ogni file (/ETA). È un'opzione di sincronizzazione più aggressiva del mirroring.
robocopy C:\Users\Admin\Records D:\Backup /ETA /PURGE /LOG:C:\Logs\Backup.log
  • /PURGE: Elimina file e directory dalla destinazione se non esistono più nell'origine. È simile a /MIR ma non copia i permessi di sicurezza dei file.
  • /ETA: Mostra il tempo stimato per il completamento della copia per ogni file.

Esempio 6 - Limitazione della Velocità di I/O
Questo è utile per evitare che il processo di copia sovraccarichi la rete o il disco, rendendolo più gestibile in contesti dove la banda è limitata.
robocopy C:\Records D:\Backup /iorate:1m
  • /iorate:1m: Limita la velocità di I/O a 1 megabyte al secondo. Si possono usare vari suffissi (K per kilobyte, M per megabyte, G per gigabyte).

Esempio 7 - Evitare la Copia di File Esistenti
Questo comando è utile per un aggiornamento selettivo. Robocopy ignora i file che esistono già nella destinazione, indipendentemente dalla loro data di modifica.
robocopy C:\Source C:\Destination /XC /XN /XO
  • /XC: Esclude i file che sono cambiati (stesso nome, contenuto diverso).
  • /XN: Esclude i file nuovi (esistono nella sorgente ma non nella destinazione).
  • /XO: Esclude i file obsoleti (esistono nella destinazione ma non nella sorgente).



martedì 12 agosto 2025

Windows: Installazione personalizzata di Windows con UnattendedWinstall

Nel panorama delle soluzioni per la personalizzazione e l'automazione dell'installazione di Windows, strumenti come Rufus e FlyBy11 hanno semplificato l'aggiramento dei requisiti di Windows 11 o la gestione di installazioni rapide. Tuttavia, per professionisti IT, system integrator e utenti avanzati che necessitano di un controllo granulare e di un'automazione sofisticata, UnattendedWinstall emerge come una risorsa open source di notevole interesse. Disponibile su GitHub all'indirizzo https://github.com/memstechtips/UnattendedWinstall, questo progetto si posiziona come una soluzione robusta per chi desidera plasmare l'ambiente Windows in base a esigenze specifiche, superando le limitazioni degli strumenti più semplici.
UnattendedWinstall
FIG 1 - UnattendedWinstall


Fondamenti e funzionamento

UnattendedWinstall sfrutta le funzionalità ufficialmente supportate da Microsoft per modificare il comportamento dell'installazione di Windows direttamente sul supporto di installazione. Il cuore di questa metodologia risiede nell'utilizzo dei "file di risposta" (unattend.xml), che consentono di automatizzare e personalizzare un'ampia gamma di parametri durante il processo di setup. Questi file possono essere applicati alle immagini ISO ufficiali di Windows, garantendo una compatibilità intrinseca con il sistema operativo. Lo sviluppatore ha confermato il successo dei test su Windows 10 versione 22H2 e Windows 11 versione 24H2, con un impegno a mantenere la compatibilità anche in caso di future modifiche alla procedura di installazione da parte di Microsoft.

Capacità di personalizzazione avanzata

Le capacità di UnattendedWinstall vanno ben oltre la semplice automazione. Questo strumento permette di:
  • Aggirare i requisiti di sistema di Windows 11: Ideale per l'installazione su hardware legacy o non ufficialmente supportato.
  • Saltare la creazione dell'account Microsoft (MSA): Un'opzione cruciale per ambienti aziendali o per utenti che preferiscono account locali.
  • Disabilitare componenti critici: Permette la disattivazione di Windows Defender e del Controllo dell'account utente (UAC) per ambienti controllati o test.
  • Gestione delle funzionalità AI: Consente di disabilitare funzionalità basate sull'intelligenza artificiale come Copilot e Recall, fornendo un maggiore controllo sulla privacy e sulle risorse di sistema.
  • Pulizia delle applicazioni predefinite: Rimuove le applicazioni ritenute superflue, lasciando solo un set minimo essenziale (Microsoft Edge, Blocco note e Calcolatrice) per un sistema più snello.
  • Ottimizzazioni di sistema: Include l'installazione dei soli aggiornamenti di sicurezza, modifiche al Registro di sistema per disattivare la telemetria, la disattivazione di attività pianificate non essenziali e una configurazione dei servizi di sistema mirata al miglioramento delle prestazioni complessive.

Architettura e implementazione

La flessibilità di UnattendedWinstall deriva dalla sua struttura personalizzabile. Le modifiche vengono implementate agendo direttamente sul file autounattend.xml, che deve essere posizionato nella directory principale del supporto di installazione di Windows. Durante il setup, il sistema rileva e applica automaticamente le istruzioni contenute in questo file, garantendo un'installazione coerente e preconfigurata.

UnattendedWinstall non si limita alle nuove installazioni; lo script 
UWScript.ps1 può essere applicato anche su installazioni di Windows già attive. Questa funzionalità è preziosa per correggere modifiche introdotte da aggiornamenti o per ripristinare impostazioni personalizzate che potrebbero essere state sovrascritte. Tuttavia, è fortemente consigliato testare lo strumento in ambienti virtuali prima di implementarlo su hardware fisico per mitigare qualsiasi rischio.

Strumento per professionisti

UnattendedWinstall non è rivolto all'utenza comune. Chi cerca una soluzione rapida per installare Windows 11 su hardware non supportato o per apportare modifiche minori troverà strumenti come Rufus o WinAero Tweaker più accessibili e immediati.

Al contrario, UnattendedWinstall rappresenta una scelta estremamente efficiente per chi installa regolarmente Windows 10 o 11 su un elevato numero di sistemi. La sua capacità di offrire un livello di controllo senza precedenti su installazioni su larga scala, combinata con la sua natura flessibile, automatizzata e facilmente replicabile, lo rende indispensabile per la gestione di parchi macchine estesi. Richiede, tuttavia, una comprensione approfondita della struttura dei file di risposta e una certa dimestichezza con l'ambiente di installazione di Windows. Sebbene il processo di configurazione sia un'operazione una tantum, la sua efficacia dipende dalla precisione con cui viene preparato e adattato alle esigenze specifiche.


Integrazione e utilizzo semplificato con WIMutil

UnattendedWinstall si presenta come una semplice coppia di file (autounattend.xml e UWScript.ps1) da integrare nel supporto di installazione di Windows. Per facilitare questo compito, lo sviluppatore suggerisce l'utilizzo di WIMutil (https://github.com/memstechtips/WIMUtil), un semplice script automatizzato. WIMutil offre una procedura guidata che accompagna l'utente passo dopo passo nella selezione dell'immagine ISO di partenza (o nel download diretto dal sito Microsoft), nell'integrazione dei file aggiuntivi di UnattendedWinstall e nella creazione di una nuova immagine binaria, sfruttando il popolare tool open source Ventoy. Questo approccio semplifica notevolmente il processo di creazione di un supporto di installazione Windows altamente personalizzato e automatizzato.







lunedì 4 agosto 2025

Windows: Risoluzione dell'errore "Impossibile trovare l'assembly a cui fa riferimento" (0x80073701)

Durante l'aggiunta/rimozione di ruoli/funzionalità su Windows Server o sui client Windows 10/11 è possibile imbattersi in un errore specifico: 

La richiesta di aggiungere o rimuovere funzionalita' sul server specificato non e' riuscita. Impossibile installare uno o piu' ruoli, servizi ruolo o funzionalita'.
Impossibile trovare l'assembly a cui fa riferimento. Errore : 0x80073701

Questo messaggio indica che i file sorgente necessari per il componente richiesto sono mancanti o corrotti all'interno dell'immagine di Windows, rendendo impossibile l'operazione.


Controlli preliminari e riavvio del sistema

Prima di procedere con la risoluzione, è fondamentale verificare se ci siano aggiornamenti in attesa di riavvio. La mancata finalizzazione di un aggiornamento può bloccare altre operazioni di sistema.
Aprire un prompt dei comandi con privilegi elevati e digitare:
dism /online /get-packages /format:table | Select-String "Installazione in sospeso"
o nella versione inglese del sistema operativo
dism /online /get-packages /format:table | Select-String "Pending"
Installazione in sospeso
FIG 1 - Installazione in sospeso

Se vengono rilevati pacchetti con lo stato "Installazione in sospeso" (Pending Reboot), riavviare il computer. In alcuni rari casi, un pacchetto potrebbe rimanere in questo stato anche dopo diversi riavvii. In questa eventualità, provare a rinominare il file C:\Windows\Winsxs\Pending.xml in Pending.xml.old e riavviare nuovamente il sistema.
Pending.xml
FIG 2 - Pending.xml



Ripristino dell'integrità dell'immagine di sistema

Una volta verificato che non ci siano riavvii pendenti, il passo successivo è utilizzare lo strumento DISM (Deployment Imaging and Servicing Management) per verificare e riparare l'immagine di Windows.

Eseguire un controllo dell'integrità dell'immagine di sistema con il seguente comando:
DISM /Online /Cleanup-Image /CheckHealth
Se il comando restituisce il messaggio "The component store is repairable" (l'archivio dei componenti è riparabile), procedere con la riparazione.

Per riparare l'immagine, utilizzare il comando RestoreHealth. Questo comando scaricherà i file necessari da Windows Update per ripristinare i componenti danneggiati.
DISM /Online /Cleanup-Image /RestoreHealth

Dopo aver riparato l'archivio dei componenti, eseguire una scansione dei file di sistema per assicurarsi che non ci siano file danneggiati. Lo strumento SFC (System File Checker) utilizzerà l'archivio dei componenti appena riparato come fonte per i file originali.
sfc /scannow
sfc /scannnow
FIG 3 - sfc /scannnow



Analisi del log CBS e intervento manuale

Se le funzionalità di Windows continuano a non installarsi, è necessario esaminare il log di Servicing Stack per identificare la causa specifica dell'errore. Il file di log si trova in %windir%\Logs\CBS\CBS.log.
Cercare nel file di log un errore che indichi file di sistema mancanti relativi a un aggiornamento precedentemente installato. L'errore si presenterà in un formato simile a questo:

CBS Failed to pin deployment while resolving Update: Package_for_KB5012170~31bf3856ad364e35~amd64~~20348.880.1.1 from file: (null) [HRESULT = 0x80073701 – ERROR_SXS_ASSEMBLY_MISSING]

In questo esempio, l'errore è associato all'aggiornamento KB5012170.
Log CBS
FIG 4 - Log CBS



Download e installazione manuale dell'aggiornamento

Il modo più semplice per risolvere questo problema è scaricare manualmente l'aggiornamento specifico dal Catalogo di Microsoft Update e installarlo. Se l'installazione tramite il file .msu non dovesse funzionare, si può estrarre il pacchetto e aggiungerlo all'immagine di Windows:

Per estrarre il pacchetto MSU utilizzare il comando:
expand -f:* windows10.0-kb5012170-x64 c:\temp

Aggiungere  il pacchetto all'immagine di sistema di Windows in esecuzione :
DISM.exe /Online /Add-Package /PackagePath:c:\Temp\Windows10.0-KB5012170-x64.cab


Ignorare i pacchetti danneggiati (Procedura avanzata)

ATTENZIONE: Questo metodo non è supportato ufficialmente da Microsoft e può compromettere l'integrità del sistema. Eseguire un backup completo dell'immagine di Windows o creare un punto di ripristino prima di procedere.

Se l'aggiornamento non è disponibile per il download o non è applicabile, è possibile istruire Windows a ignorare il pacchetto danneggiato modificando il registro di sistema.

  • Aprire l'Editor del Registro di sistema (regedit).
  • Navigare alla chiave
    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing
  • Impostare il proprio account come proprietario della chiave Component Based Servicing (l'owner predefinito è TrustedInstaller) e imopstare i permessi di controllo completo.
  • Individuare la sottochiave del pacchetto da ignorare (ad es. Package_for_KB5012170).
  • Modificare il valore del parametro CurrentState in 0 (Not present). Il valore precedente potrebbe essere 112 (Installed).
  • Ripristinare i permessi originali sulla chiave di registro, lasciando all'amministratore solo l'accesso in sola lettura.
  • Riavviare il computer e verificare se le funzionalità di Windows possono essere installate.

Per identificare tutti i pacchetti con l'errore ASSEMBLY_MISSING, puoi filtrare il log CBS con il seguente comando PowerShell:
Select-String -Path "c:\windows\logs\cbs\cbs.log" -Pattern "Failed to pin"


Aggiornamento in-place (ultima risorsa)

Se tutte le soluzioni precedenti non hanno successo, l'opzione finale è un aggiornamento in-place del sistema operativo. Questo processo reinstallerà Windows mantenendo i file personali, le impostazioni e le applicazioni.
Scaricare l'immagine ISO più recente della propria versione di Windows.
Montare il file ISO e avviare il programma setup.exe.
Selezionare l'opzione "Mantieni file personali e app" quando richiesto per l'aggiornamento.
Questo metodo può risolvere problemi di integrità complessi che non possono essere corretti con i normali strumenti di riparazione, offrendo una soluzione completa. 






giovedì 31 luglio 2025

Windows : Risolvere l'Errore 0xc1900208 di Windows Update

Gli aggiornamenti di Windows sono cruciali per la sicurezza e la stabilità dei sistemi, ma possono spesso essere interrotti da errori inaspettati. Tra questi, l'errore 0xc1900208 è un problema ricorrente che ha afflitto gli utenti sia con gli aggiornamenti di Windows 10 che, più recentemente, con l'aggiornamento 24H2 di Windows 11. Questo errore, che si manifesta con l'impossibilità di procedere con l'installazione dell'aggiornamento, indica la presenza di software o driver incompatibili sul sistema.

Causa dell'Errore 0xc1900208

L'errore 0xc1900208 è una segnalazione diretta da parte di Windows Update che una o più componenti hardware o software installate sul sistema sono in conflitto con il processo di aggiornamento. Il sistema operativo esegue una scansione preliminare per verificare la compatibilità e, se rileva elementi "bloccanti" con una compatibilità "Hard" (ovvero, un blocco critico), interrompe l'aggiornamento per prevenire potenziali instabilità o malfunzionamenti.


Identificazione del Software o Driver Incompatibile

Il processo di risoluzione inizia con l'identificazione precisa del componente che sta causando il blocco. Fortunatamente, Windows Update fornisce un log dettagliato della scansione di compatibilità, eliminando la necessità di una ricerca manuale.

Accedere al File C:\$WINDOWS.~BT\Sources\Panther\ScanResult.xml.

Analizzare il contenuto del File XML ricercando le voci che indicano un blocco relativo a software o a driver:
- Software bloccante
Per verificare se l'errore è causato da un software non compatibile, ricercare le righe contenenti 
CompatibilityInfo BlockingType="Hard"
Il campo Title nella stessa riga indicherà il nome del programma responsabile del blocco. 
Ad esempio, in FIG 1, risulta che il software che sta impedendo l'aggiornamento è ExplorerPatcher.
Applicazione Bloccante
FIG 1 - Applicazione Bloccante


- Driver bloccante
Scorrere il file fino alla sezione Driver Packages quindi identificare i driver che presentano l'attributo 
BlockMigration="True"
In FIG2, i driver bloccanti sono oem113.inf e oem143.inf. 
Driver Bloccanti
FIG 2 - Driver Bloccanti

Gestione del Software Bloccante

Una volta identificato un programma bloccante, la soluzione più diretta è la sua disinstallazione o l'aggiornamento a una versione compatibile (se disponibile).

Gestione dei Driver Bloccanti

La gestione dei driver richiede maggiore cautela, poiché la rimozione di un driver errato può compromettere l'avvio del sistema

I file .inf (come oem113.inf) sono descrittori del driver. Per identificare il driver effettivo, seguire questi passaggi:
  • Aprire la cartella c:\windows\INF.
  • Cercare il file oemXXX.inf identificato nel ScanResult.xml.
  • Aprire il file .inf con un editor di testo (ad esempio, Blocco Note).
  • Cercare all'interno del file il nome del driver o dell'applicazione associata.

Una volta individuato il nome del driver è possibile tentare di aggiornarlo, disabilitarlo o rimuoverlo:
Aggiornamento: La prima e più sicura opzione è tentare di aggiornare il driver alla sua versione più recente. Questo può essere fatto tramite Windows Update, il sito web del produttore del dispositivo o l'utilizzo di strumenti di gestione dei driver. 

Disabilitazione (Temporanea): In alcuni casi, se l'aggiornamento non è possibile o se il driver non è critico per l'operatività di base, si potrebbe considerare di disabilitarlo temporaneamente tramite Gestione Dispositivi. Tuttavia, questa è una soluzione temporanea e non risolve la radice del problema di compatibilità.

Rimozione (con Cautela): La rimozione del driver è l'ultima risorsa e deve essere eseguita con estrema cautela. Prima di procedere, è imperativo creare un punto di ripristino del sistema o un backup completo. Se il driver è essenziale per un componente hardware, la sua rimozione potrebbe rendere il dispositivo inutilizzabile o impedire l'avvio del sistema. È consigliabile procedere con la rimozione solo se si è certi che il driver non sia critico o se si dispone di un driver sostitutivo pronto per l'installazione. La rimozione è possibile tramite Gestione Dispositivi o dal prompt dei comandi come amministratore eseguendo il comando
pnputil /delete-driver oemXXX.inf /uninstall /force


Tentativo di Aggiornamento di Windows

Dopo aver rimosso o aggiornato il software e/o i driver bloccanti, è possibile riprovare l'aggiornamento di Windows. In Windows 11 accedere alle Impostazioni (WIN+I), selezionare Windows Update quindi cliccare sul pulsante Riprova o Verifica disponibilità aggiornamenti.

Windows Update
FIG 3 - Windows Update