Établir une surveillance complète et développer une stratégie de remplacement pour prévenir la perte de données due à une défaillance de disque.
- Configurer le transfert des journaux d'événements Windows pour une surveillance centralisée :
# Configurer l'abonnement au journal des événements pour l'ID d'événement 7
# Sur le serveur collecteur, créer un XML d'abonnement
$SubscriptionXML = @'
<Subscription xmlns="http://schemas.microsoft.com/2006/03/windows/events/subscription">
<SubscriptionId>DiskErrorMonitoring</SubscriptionId>
<SubscriptionType>SourceInitiated</SubscriptionType>
<Description>Surveiller l'ID d'événement 7 sur tous les systèmes</Description>
<Enabled>true</Enabled>
<Uri>http://schemas.microsoft.com/wbem/wsman/1/windows/EventLog</Uri>
<ConfigurationMode>Custom</ConfigurationMode>
<Query>
<![CDATA[
<QueryList>
<Query Id="0">
<Select Path="System">*[System[EventID=7]]</Select>
</Query>
</QueryList>
]]>
</Query>
</Subscription>
'@
# Enregistrer et créer l'abonnement
$SubscriptionXML | Out-File -FilePath "C:\Temp\DiskErrorSubscription.xml"
wecutil cs "C:\Temp\DiskErrorSubscription.xml"
- Configurer des alertes automatisées pour l'ID d'événement 7 :
# Créer un script PowerShell pour les alertes par email
$AlertScript = @'
param([string]$ComputerName, [string]$EventDetails)
$SMTPServer = "your-smtp-server.com"
$From = "alerts@yourcompany.com"
$To = "sysadmin@yourcompany.com"
$Subject = "CRITIQUE : Bloc défectueux détecté sur $ComputerName"
$Body = @"
ID d'événement 7 (Bloc défectueux) détecté sur $ComputerName
Détails de l'événement :
$EventDetails
Action immédiate requise :
1. Vérifier l'état de santé du disque
2. Vérifier l'intégrité des sauvegardes
3. Envisager le remplacement du disque
4. Surveiller les événements supplémentaires
Généré : $(Get-Date)
"@
Send-MailMessage -SmtpServer $SMTPServer -From $From -To $To -Subject $Subject -Body $Body
'@
$AlertScript | Out-File -FilePath "C:\Scripts\DiskAlertScript.ps1"
- Créer une vérification automatisée des sauvegardes :
# Mettre en œuvre la vérification de l'intégrité des sauvegardes
$BackupVerificationScript = @'
# Vérifier l'état des sauvegardes Windows
Get-WBSummary | Format-List
# Vérifier que les emplacements de sauvegarde sont accessibles
$BackupLocations = @("\\backup-server\backups", "D:\Backups")
foreach ($Location in $BackupLocations) {
if (Test-Path $Location) {
Write-Host "L'emplacement de sauvegarde $Location est accessible" -ForegroundColor Green
$LatestBackup = Get-ChildItem $Location | Sort-Object LastWriteTime -Descending | Select-Object -First 1
Write-Host "Dernière sauvegarde : $($LatestBackup.Name) - $($LatestBackup.LastWriteTime)"
} else {
Write-Warning "L'emplacement de sauvegarde $Location n'est pas accessible"
}
}
# Vérifier la sauvegarde de l'état du système
wbadmin get versions -backupTarget:C:
'@
$BackupVerificationScript | Out-File -FilePath "C:\Scripts\BackupVerification.ps1"
- Établir des critères de remplacement de disque :
# Créer un script d'évaluation du remplacement de disque
$ReplacementAssessment = @'
$CriticalThresholds = @{
MaxBadBlocks = 10
MaxTemperature = 60
MaxReadErrors = 100
MaxWriteErrors = 50
}
$PhysicalDisks = Get-PhysicalDisk
foreach ($Disk in $PhysicalDisks) {
$Reliability = Get-StorageReliabilityCounter -PhysicalDisk $Disk -ErrorAction SilentlyContinue
if ($Reliability) {
$ReplaceRecommended = $false
$Reasons = @()
if ($Reliability.ReadErrorsTotal -gt $CriticalThresholds.MaxReadErrors) {
$ReplaceRecommended = $true
$Reasons += "Erreurs de lecture excessives : $($Reliability.ReadErrorsTotal)"
}
if ($Reliability.WriteErrorsTotal -gt $CriticalThresholds.MaxWriteErrors) {
$ReplaceRecommended = $true
$Reasons += "Erreurs d'écriture excessives : $($Reliability.WriteErrorsTotal)"
}
if ($Reliability.Temperature -gt $CriticalThresholds.MaxTemperature) {
$ReplaceRecommended = $true
$Reasons += "Température élevée : $($Reliability.Temperature)°C"
}
[PSCustomObject]@{
DiskName = $Disk.FriendlyName
HealthStatus = $Disk.HealthStatus
ReplaceRecommended = $ReplaceRecommended
Reasons = $Reasons -join "; "
AssessmentDate = Get-Date
}
}
}
'@
$ReplacementAssessment | Out-File -FilePath "C:\Scripts\DriveReplacementAssessment.ps1"
Conseil pro : Mettre en œuvre une stratégie de réponse à trois niveaux : 1-5 occurrences de l'ID d'événement 7 = surveillance accrue, 6-15 occurrences = vérification des sauvegardes et planification du remplacement, 15+ occurrences = remplacement immédiat.