Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Petits scripts pour lancer la defragmentation sans bloquer la machine

1 réponse
Avatar
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.

ping -n 3 127.0.0.1>NUL

pause
==============================================================


========== 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
)

ping -n 3 127.0.0.1 >NUL
==============================================================

========= lance.cmd ==========================================
@echo off
echo.

set dossier=%programfiles%\_contig

cd "%dossier%"

echo.
echo + Validation licence (eula)
regedit /s "contig.reg"
echo.


echo + Lancement du programme de defragmentation (contig.exe)
"contig.exe" -s -q c:\

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
;

[HKEY_CURRENT_USER\Software\Sysinternals]

[HKEY_CURRENT_USER\Software\Sysinternals\C]
"EulaAccepted"=dword:00000001

==============================================================

1 réponse

Avatar
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
)

ping -n 3 127.0.0.1 >NUL
==============================================================