Petits scripts pour lancer la defragmentation sans bloquer la machine
1 réponse
Th.A.C
Bonjour,
Ayant besoin quelques fois de lancer une défragmentation sans laisser
une session administrateur ouverte, j'ai fais ces 2 petits trucs:
- A lancer dans la session de l'utilisateur qui n'aura plus qu'à fermer
la console mmc à la fin de la défragmentation:
=========== DEFRAG.CMD ==========================================
@echo off
echo.
echo Lancement du programme de defragmentation en mode utilisateur
echo -------------------------------------------------------------
echo.
echo vous devrez rentrer le mot de passe
echo de l'administrateur local:
echo.
runas /u:%computername%\administrateur "cmd /c start dfrg.msc"
==============================================================
- si vous préférez utiliser CONTIG:
il faut avoir au même endroit les fichiers suvants:
- _INSTALL.CMD
- PROGRAMMATION.CMD
- LANCE.CMD
- CONTIG.REG
- CONTIG.EXE
le batch '_install.cmd' copy les fichiers dans c:\program files\_contig
puis planifie la defragmentation pour la minute suivante.
Le batch 'programmation.cmd' calcule la minute suivante et planifie la
defragmentation
Le batch 'lance.bat' valide la license grace au fichier 'contig.reg' et
lance la défragmentation en mode interactif
La defragmentation se fait donc avec le compte 'system' en mode
interactif, Ce qui permet de fermer la session et même d'ouvrir la
session de l'utilisateur sans arrêter la defragmentation.
Les scrits sont loin d'être parfaits. je les ai testé sous W2K et WXP.
Si vous avez des remarques, je suis toute ouie :-)
=========== _install.cmd =========================================
@echo off
echo.
echo Installation de CONTIG
echo.
echo Programme de defragmentation qui peut marcher avec la session fermee
echo.
echo.
set dossier_install=%programfiles%\_contig
echo + Installation du programme...
echo - Creation du dossier
md "%dossier_install%"
echo - Copie des fichiers...
copy contig.exe "%dossier_install%"
copy contig.reg "%dossier_install%"
copy programmation.cmd "%dossier_install%"
copy lance.cmd "%dossier_install%"
echo.
echo + Programme la defragmentation pour la minute suivante
call "%dossier_install%\programmation.cmd"
echo.
========== programmation.cmd =================================
@echo off
setlocal ENABLEDELAYEDEXPANSION
set programme=%programfiles%\_contig\lance.cmd
echo Heure actuelle: %time:~0,8%
echo.
set heure=%time:~0,2%
set /A minute=%time:~3,2%+1
IF "%minute%" EQU "60" (
SET minute=00
SET /A heure=!heure!+1
IF "!heure!" EQU "24" SET heure=00
)
set heureprog=%heure%:%minute%
echo Heure programmee: %heureprog%
echo.
echo Programmation de contig sur l'ordinateur "%computername%" a %heureprog%
at \\%computername% %heureprog% /interactive "%programme%"
IF ERRORLEVEL 1 (
ECHO.
ECHO Erreur...
pause
)
========== contig.reg ========================================
Windows Registry Editor Version 5.00
;
; Validation de la license d'utilisation
; a faire pour chaque utilisateur
; y compris pour l'utilisateur SYSTEM si
; la defragmentation est planifiee
;
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Th.A.C
petit correctif sur le calcul de l'heure
========== programmation.cmd ================================ @echo off setlocal ENABLEDELAYEDEXPANSION
set programme=%programfiles%_contiglance.cmd
echo Heure actuelle: %time:~0,8% echo.
set heure=%time:~0,2% set minute=%time:~3,2%
IF %minute:~0,1%==0 ( SET /A minute=%minute:~1,1% + 1 ) ELSE ( SET /A minute=%minute:~0,2% + 1 )
IF "%minute%" EQU "60" ( SET minute=0 SET /A heure=!heure!+1 IF "!heure!" EQU "24" SET heure )
set heureprog=%heure%:%minute% echo Heure programmee: %heureprog% echo. echo Programmation de contig sur l'ordinateur "%computername%" a %heureprog% at %computername% %heureprog% /interactive "%programme%" IF ERRORLEVEL 1 ( ECHO. ECHO Erreur... pause )
========== programmation.cmd ================================ @echo off
setlocal ENABLEDELAYEDEXPANSION
set programme=%programfiles%_contiglance.cmd
echo Heure actuelle: %time:~0,8%
echo.
set heure=%time:~0,2%
set minute=%time:~3,2%
IF %minute:~0,1%==0 (
SET /A minute=%minute:~1,1% + 1
) ELSE (
SET /A minute=%minute:~0,2% + 1
)
IF "%minute%" EQU "60" (
SET minute=0
SET /A heure=!heure!+1
IF "!heure!" EQU "24" SET heure
)
set heureprog=%heure%:%minute%
echo Heure programmee: %heureprog%
echo.
echo Programmation de contig sur l'ordinateur "%computername%" a %heureprog%
at \%computername% %heureprog% /interactive "%programme%"
IF ERRORLEVEL 1 (
ECHO.
ECHO Erreur...
pause
)
========== programmation.cmd ================================ @echo off setlocal ENABLEDELAYEDEXPANSION
set programme=%programfiles%_contiglance.cmd
echo Heure actuelle: %time:~0,8% echo.
set heure=%time:~0,2% set minute=%time:~3,2%
IF %minute:~0,1%==0 ( SET /A minute=%minute:~1,1% + 1 ) ELSE ( SET /A minute=%minute:~0,2% + 1 )
IF "%minute%" EQU "60" ( SET minute=0 SET /A heure=!heure!+1 IF "!heure!" EQU "24" SET heure )
set heureprog=%heure%:%minute% echo Heure programmee: %heureprog% echo. echo Programmation de contig sur l'ordinateur "%computername%" a %heureprog% at %computername% %heureprog% /interactive "%programme%" IF ERRORLEVEL 1 ( ECHO. ECHO Erreur... pause )