Il sistema operativo Microsoft, in determinate circostanze, come gli aggiornamenti di Windows, o su richiesta durante l’installazione di alcuni programmi, crea un punto di ripristino della configurazione che permette di tornare indietro, alla configurazione precedente, e superare eventuali problemi che si sono creati dopo l’operazione che avevamo eseguito. Esiste una sua interfaccia da cui gestire, creare o disattivare i punti di ripristino, ma in questo articolo vedremo come farlo con PowerShell e Vssadmin.

Come gestire punti ripristino Windows PowerShell vssadmin

Per i vari comandi, che vedrete nel resto dell’articolo, prendo sempre ad esempio il mio computer, le lettere unità disco o i numeri dei punti di ripristino vanno ovviamente modificati e adattati a quelli che rilevate nel vostro computer.

Attivare/disattivare il ripristino

Per attivare il ripristino della configurazione in un disco fisso, va sempre inserita anche la lettera C: del disco di sistema, si utilizza il seguente comando: Enable-ComputerRestore -Drive “c:","d:","e:"

Come gestire punti ripristino Windows PowerShell vssadmin

Se invece si vuole disattivarla in un disco in particolare si utilizza: Disable-ComputerRestore -Drive "e:"

Invece il comando vssadmin resize shadowstorage /for=d: /on=d: /maxsize=10% stabilisce la percentuale del disco fisso assegnata ai file del ripristino di configurazione.

Come gestire punti ripristino Windows PowerShell vssadmin

Punti di ripristino presenti

Il comando Get-ComputerRestorePoint mostra i punti di ripristino attualmente presenti.

Come gestire punti ripristino Windows PowerShell vssadmin

Creare punto di ripristino

Per creare manualmente un singolo punto di ripristino va utilizzato il seguente comando: Checkpoint-Computer -Description "xxx" -RestorePointType "xxx", vanno inserite una descrizione (-Description) e il tipo di punto di ripristino (-RestorePointType), dove è possibile usare solo queste voci:

  • APPLICATION_INSTALL
  • APPLICATION_UNINSTALL
  • DEVICE_DRIVER_INSTALL
  • MODIFY_SETTINGS
  • CANCELLED_OPERATION

Se non inseriamo questa seconda opzione, di default viene salvata come APPLICATION_INSTALL.

Come gestire punti ripristino Windows PowerShell vssadmin

Da PowerShell è possibile creare un solo punto di ripristino al giorno, ovvero ogni 1140 minuti, se volessimo modificare questo valore bisogna creare una nuova chiave DWORD (32 bit), chiamata SystemRestorePointCreationFrequency e dargli un valore numerico anche di un minuto volendo, la chiave va creata in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore.

Come gestire punti ripristino Windows PowerShell vssadmin

Data e ora

Se volessimo sapere in che data e ora è stato creato un punto di ripristino possiamo utilizzare questo script: Get-ComputerRestorePoint | Format-Table -AutoSize Description, SequenceNumber, @{n="Date";e={[System.Management.ManagementDateTimeConverter]::ToDateTime($_.creationtime)}}

Come gestire punti ripristino Windows PowerShell vssadmin

Utilizzare un punto di ripristino

Per poter ripristinare un singolo punto, a nostra scelta, abbiamo a disposizione il comando: Restore-Computer -RestorePoint xx, al posto delle xx va messo il SequenceNumber che vediamo nel cmdlet Get-ComputerRestorePoint.

L’utilizzo di questo comando provocherà un riavvio del computer e l’applicazione del punto di ripristino scelto.

Cancellare i punti di ripristino

PowerShell non ha un cmdlet per la cancellazione dei punti di ripristino, lo possiamo fare tramite il comando vssadmin.

Con vssadmin Delete Shadows /For=C: cancelliamo i punti di ripristino presenti nel disco C:, mentre vssadmin delete shadows /all cancella i punti di ripristino da qualsiasi disco fisso del computer.

Come gestire punti ripristino Windows PowerShell vssadmin

Invece vssadmin delete shadows /for=c: /oldest cancella il punto di ripristino più vecchio, se si aggiunge l’opzione /quiet non serve dare la conferma al comando.

Come gestire punti ripristino Windows PowerShell vssadmin

Con il commando vssadmin list shadows /for=c: vediamo la lista dettagliata di tutti I punti di ripristino presenti nel disco C:, se vogliamo cancellarne uno dobbiamo recuperare il suo ID copia shadow.

Come gestire punti ripristino Windows PowerShell vssadmin

Per cancellare un punto di ripristino a nostra scelta va usato il comando: vssadmin delete shadows /Shadow={XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} dove al posto delle varie X va inserito il valore rilevato nell’ID copia shadow preso dal comando precedente.

Il comando diventerà qualcosa di simile a questo: vssadmin delete shadows /Shadow={a4df9af8-c4be-40dd-abfb-7f8920d2dc20}

Una avvertenza, nel computer dove ho fatto le prove questo comando non sono riuscito a farlo funzionare, e non ho ben capito perché, da PowerShell, mentre ha funzionato dal prompt dei comandi aperto come amministratore.

Come gestire punti ripristino Windows PowerShell vssadmin