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

maintemance de serveur

7 réponses
Avatar
Jullius Marcus
Bonjour
j'ai fait un script de maintenance mensuelle sur des serveurs afin de faire
un clean up
par contre comment scripter le chkdsk c: /F /R car sur le disque systme il
me demande 1 confirmation et sur les autre disques il attend plusieurs
validation (N, et O) ?
Merci d'avance si qq a une idée




rem disque system C

del c:\*.tmp /s
del c:\*.dmp /s
del c:\ ~*.* /s


rem disque system D

del d:\*.tmp /s
del d:\*.dmp /s
del d:\~*.* /s

7 réponses

Avatar
Méta-MCI \(MVP\)
Bonjour !

Tu peux toujours émuler le clavier, et envoyer la touche "O"
Voir : http://www.mclaveau.com/batch/util.html#315
Exemple d'utilisation :
skeys SLEEP(2000)O{ENTER}
(attend 2 secondes, puis envoie "O", puis {ENTER} )

@-salutations
--
Michel Claveau
Avatar
JF
*Bonjour Jullius Marcus * !
<news:

Bonjour
j'ai fait un script de maintenance mensuelle sur des serveurs afin de faire
un clean up
par contre comment scripter le chkdsk c: /F /R car sur le disque systme il
me demande 1 confirmation et sur les autre disques il attend plusieurs
validation (N, et O) ?



Utiliser un pipe avec la commande echo. Exemple :

E:>echo o|chkdsk c: /r /x
Le type du système de fichiers est NTFS.

CHKDSK ne peut pas s'exécuter parce que le volume est utilisé
par un autre processus. Voulez-vous que ce volume soit
vérifié au prochain redémarrage du système ? (O/N)
Ce volume sera vérifié au prochain redémarrage du système.

E:>

--
Salutations, Jean-François
Index de la FAQ XP de Panthère Noire : www.d2i.ch/pn/az
Un problème difficile à décrire ? http://fspsa.free.fr/copiecran.htm
Où se cachent les parasites
http://forum.malekal.com/viewtopic.php?
Avatar
Gilles LAURENT [MVP]
"Jullius Marcus" a écrit dans le message de
news:
| Bonjour

Bonsoir,

| j'ai fait un script de maintenance mensuelle sur des serveurs afin de
| faire un clean up
| par contre comment scripter le chkdsk c: /F /R car sur le disque
| systme il me demande 1 confirmation et sur les autre disques il
| attend plusieurs validation (N, et O) ?

La vérification de l'intégrité des disques doit en règle générale se
faire au redémarage du serveur. De ce fait, tous les handles seront
libérés. Pour cela, vous pouvez planifier l'exécution de la vérification
des disques à l'aide de la commande native chkntfs. Pour obtenir les
arguments supportés :
> chkntfs /?

Note : Le redémarrage du serveur devra bien entendu être planifié en
conséquence.

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
---DGI972---
Jullius Marcus a écrit :
Bonjour
j'ai fait un script de maintenance mensuelle sur des serveurs afin de faire
un clean up
par contre comment scripter le chkdsk c: /F /R car sur le disque systme il
me demande 1 confirmation et sur les autre disques il attend plusieurs
validation (N, et O) ?
Merci d'avance si qq a une idée




rem disque system C

del c:*.tmp /s
del c:*.dmp /s
del c: ~*.* /s


rem disque system D

del d:*.tmp /s
del d:*.dmp /s
del d:~*.* /s



Un petit defrag c'est pas mal aussi (testé sur 2k3 avec task).

'defrag_all2.vbs
'Defrags all hard disks - Can be run as a Scheduled Task
'Modified to create an error log and display it
'© Doug Knox - 4/13/2002

Option Explicit

Dim WshShell, fso, d, dc, ErrStr(), Return, X, A(), MyFile, I, MyBox,
Drive

Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
X = 0

Set dc = fso.Drives
For Each d in DC
If d.DriveType = 2 Then
X = X + 1

'Determine drive letter of first fixed disk
'This is the drive that the error report will be placed on
If X = 1 Then
Drive = d
End If
End If
Next

ReDim A(X)
ReDim ErrStr(X)

X = 0
For Each d in dc
If d.DriveType = 2 Then
X = X + 1
Return = WshShell.Run("defrag " & d & " -f", 1, TRUE)

'Determine the Error code returned by Defrag for the current drive and
save it
If return = 0 then
ErrStr(x) = ErrStr(x) & "Drive " & d & " Defrag completed
successfully" & vbCRLF
elseif return = 1 then
ErrStr(x) = ErrStr(x) & "Drive " & d & " Defrag aborted with error
level " & return & " (defrag was cancelled manually) " & vbCRLF
elseif return = 2 then
ErrStr(x) = ErrStr(x) & "Drive " & d & " Defrag aborted with error
level " & return & " (there was a command line error. Check your
command line for valid switches and drives)" & vbCRLF
elseif return = 3 then
ErrStr(x) = ErrStr(x) & "Drive " & d & " Defrag aborted with error
level " & return & " (there was an unknown error)" & vbCRLF
elseif return = 4 then
ErrStr(x) = ErrStr(x) & "Drive " & d & " Defrag aborted with error
level " & return & " (defrag could not run due to insufficient memory
resources)" & vbCRLF
'errorlevel 5 is not currently used
elseif return = 5 then
ErrStr(x) = ErrStr(x) & "Drive " & d & " Defrag aborted with error
level " & return & " (general error)" & vbCRLF
elseif return = 6 then
ErrStr(x) = ErrStr(x) & "Drive " & d & " Defrag aborted with error
level " & return & "(System error: either the account used to run
defrag is not an administrator, there is a problem loading the resource
DLL, or a defrag engine could not be accessed. Check for proper user
permissions and run Sfc.exe to validate system files)" & vbCRLF
elseif return = 7 then
ErrStr(x) = ErrStr(x) & "Drive " & d & " Defrag aborted with error
level " & return & " (There is not enough free space on the drive.
Defrag needs 15% free space to run on a volume)" & vbCRLF
else
ErrStr(x) = ErrStr(x) & "Drive " & d & " Defrag aborted with an
unknown error level: " & return & vbCRLF
end if

End If
Next

'Create the Error Report in the root of the first fixed disk.
Set MyFile = fso.OpenTextFile(Drive & "defragreport.txt", 2, True)
MyFile.WriteLine(Date) & vbCRLF
MyFile.WriteLine(Time) & vbCRLF
For I = 1 to X
MyFile.WriteLine(ErrStr(I))
Next
MyFile.Close

Return = WshShell.Run(Drive & "defragreport.txt",3,True)

Set WshShell = Nothing
Set fso = Nothing
Avatar
Jullius Marcus
Bonjour
et merci a tous

j'ai trouvé ça qui peu aider
car le pb ne vient pas pour le disque C mais pour les disques d ou + car il
demande si on veut demonter le disque (=> N) puis il demande s'il fait le
chkdsk au reboot
avec le fichier de réponce ça a l'air de fonctionner



@echo off
echo O>> %temp%responses.txt
type %temp%responses.txt | chkdsk c: /f /r
del %temp%responses.txt


@echo off
echo N> %temp%responses.txt
echo O>> %temp%responses.txt
type %temp%responses.txt | chkdsk d: /f /r
del %temp%responses.txt


PS y aurait il une possibilité de faire tous ça en powershell ?

Merci encors



"Jullius Marcus" a écrit dans le message de
news:
Bonjour
j'ai fait un script de maintenance mensuelle sur des serveurs afin de
faire un clean up
par contre comment scripter le chkdsk c: /F /R car sur le disque systme
il me demande 1 confirmation et sur les autre disques il attend plusieurs
validation (N, et O) ?
Merci d'avance si qq a une idée




rem disque system C

del c:*.tmp /s
del c:*.dmp /s
del c: ~*.* /s


rem disque system D

del d:*.tmp /s
del d:*.dmp /s
del d:~*.* /s








Avatar
David Sebban [MSFT]
Bonjour,

je pense que la solution que vous avez proposé fonctionne en powershell, a
la différence que la création du fichier de réponse se fera sans doute comme
ca :

("N","O") | % {Out-file reponse.txt -inputobject $_ -append -encoding
Default}
get-content reponse.txt | chkdsk d: /f /r

mais en fait je pense qu'en powershell vous n'avez pas besoin du fichier de
réponse, vous pourriez essayer ca

("N","O") | chkdsk d: /f /r

(pas testé :)

--
David Sebban [MSFT] | http://blogs.msdn.com/dsebban
MCTS Vista & BDD | MCITP Enterprise & Consumer support
This Posting is AS IS with NO WARRANTIES and confers NO RIGHTS

"Jullius Marcus" a écrit dans le message de groupe de discussion :

Bonjour
et merci a tous

j'ai trouvé ça qui peu aider
car le pb ne vient pas pour le disque C mais pour les disques d ou + car
il demande si on veut demonter le disque (=> N) puis il demande s'il fait
le chkdsk au reboot
avec le fichier de réponce ça a l'air de fonctionner



@echo off
echo O>> %temp%responses.txt
type %temp%responses.txt | chkdsk c: /f /r
del %temp%responses.txt


@echo off
echo N> %temp%responses.txt
echo O>> %temp%responses.txt
type %temp%responses.txt | chkdsk d: /f /r
del %temp%responses.txt


PS y aurait il une possibilité de faire tous ça en powershell ?

Merci encors



"Jullius Marcus" a écrit dans le message de
news:
Bonjour
j'ai fait un script de maintenance mensuelle sur des serveurs afin de
faire un clean up
par contre comment scripter le chkdsk c: /F /R car sur le disque systme
il me demande 1 confirmation et sur les autre disques il attend plusieurs
validation (N, et O) ?
Merci d'avance si qq a une idée




rem disque system C

del c:*.tmp /s
del c:*.dmp /s
del c: ~*.* /s


rem disque system D

del d:*.tmp /s
del d:*.dmp /s
del d:~*.* /s











Avatar
JF
*Bonjour Jullius Marcus * !
<news:

Bonjour
et merci a tous



j'ai trouvé ça qui peu aider
car le pb ne vient pas pour le disque C mais pour les disques d ou + car il
demande si on veut demonter le disque (=> N)



Le commutateur /X force le démontage, donc pas de question à ce sujet.
chkdsk /?


puis il demande s'il fait le chkdsk au reboot
avec le fichier de réponce ça a l'air de fonctionner



@echo off
echo O>> %temp%responses.txt
type %temp%responses.txt | chkdsk c: /f /r
del %temp%responses.txt



@echo off
echo N> %temp%responses.txt
echo O>> %temp%responses.txt
type %temp%responses.txt | chkdsk d: /f /r
del %temp%responses.txt



Je vois que tu as retrouvé les réponses
apportées à la même question,
que tu avais déjà posée en juillet !
http://groups.google.com/group/microsoft.public.fr.scripting/browse_frm/thread/1ed0c5dd4392a9d2

--
Salutations, Jean-François.