28 lug 2009

Deframmentare automaticamente

Un hard disk troppo frammentato rallenta notevolmente l’accesso ai file. Deframmentare il disco a intervalli regolari è dunque essenziale, ma può richiedere molto tempo. Per questo la deframmentazione si dovrebbe eseguire solo quando è vantaggiosa. Tale indicazione viene fornita dalle utility di sistema, ma si vorrebbe non dover controllare manualmente lo stato di frammentazione per decidere se eseguirla o meno. L’utility di sistema che ci consente di effettuare tutto ciò è Defrag.Exe. Quando si esegue la procedura manualmente, per esempio sull’unità C, i passaggi necessari sono questi:
si apre una finestra Dos con Start/Esegui seguito dalla digitazione di cmd, poi nel prompt del Dos si digita defrag.exe C: -a e si preme il tasto Invio. C è l’unità disco da testare e il parametro -a attiva la modalità di analisi. L’utility controllerà l’attuale livello di frammentazione della partizione C e indicherà se è consigliata o no l’esecuzione della deframmentazione. Se il messaggio è “Non è necessario deframmentare questo volume” allora non si dovrà fare altro.
In caso contrario il comando defrag.exe C: eseguirà la deframmentazione. Ecco come automatizzare la procedura appena vista: lo script deve essere in grado di riconoscere il messaggio testuale con il risultato della fase di analisi, per decidere se avviare o meno la deframmentazione. Lanciare un editor di testo e digitare il codice seguente:
Set objShell = CreateObject
(“Wscript.Shell”)
Set objWshScriptExec = objShell.
Exec(“defrag.exe c: -a”)
strOutput=objWshScriptExec.
StdOut.ReadAll
strSearch = “Non è necessario
deframmentare questo volume”
If InStr(1, strOutput, str
Search) = 0 Then objShell.
Run (“defrag.exe c:”)
End If
Salvare lo script come nuovo file dotato di estensione Vbs, per esempio Deframmc.Vbs. Ora è il momento di automatizzare l’esecuzione dello script appena creato. Aprire il Pannello di controllo di Windows e fare doppio clic su Operazioni pianificate e poi su Aggiungi operazione pianificata. Nella procedura guidata fare clic su Avanti e poi su Sfoglia. Navigare sino alla posizione in cui si è salvato il file Vbs e fare clic su Avanti. Nel passaggio successivo selezionare una delle opzioni temporali, per esempio Ogni settimana, e fare clic su Avanti. Selezionare l’orario di inizio dell’operazione, il giorno della settimana desiderato e fare clic su Avanti. Se necessario, modificare l’utente che esegue l’operazione o confermare il nome utente già inserito da Windows e digitare la password. Un clic su Avanti e uno su Fine: l’operazione pianificata è attiva e verrà eseguita automaticamente all’intervallo temporale desiderato. Se si desidera deframmentare altre partizioni o dischi, è possibile creare uno script separato per ciascuna unità oppure estendere lo script sopraccitato in questo modo:
Set objShell =
CreateObject(“Wscript.Shell”)
Set objFSO = CreateObject
(“Scripting.File
SystemObject”)
Set allDrives = objFSO.Drives
For Each objDrive in allDrives
If objDrive.DriveType = 2 Then Set objWshScriptExec
= objShell.Exec(“defrag.
exe “ & objDrive.Drive
Letter & “: -a”)
strOutput=objWshScriptExec.
StdOut.ReadAll
strSearch = “Non è necessario
deframmentare questo volume”
If InStr(1, strOutput, strSearch)
= 0 Then
objShell.Run (“defrag.exe
“ & objDrive.DriveLetter & “:”)
End if
End If
Next
Attenzione: è importante testare ciascuno script almeno una volta prima di creare la relativa Operazione pianificata. Per farlo selezionare dal menù Start la voce Esegui, digitare cmd e lanciare lo script dal prompt del Dos in modo da poterne seguire l’esecuzione e leggerne i risultati. Se il proprio antivirus lo richiede potrebbe essere necessario anche autorizzare l’esecuzione dello script.

Nessun commento:

Posta un commento