tasks:smart
Содержание
S.M.A.R.T
Программы для мониторинга SMART: CrystalDiskInfo, Smartmontools, DiskSmartView, HDD Health, HDD Expert.
Самые важные параметры для отслеживания:
- SMART 5 – Reallocated_Sector_Count. 1-4 keep an eye on it, more than 4 replace
- SMART 187 – Reported_Uncorrectable_Errors. 1 or more replace
- SMART 188 – Command_Timeout. 1-13 keep an eye on it, more than 13 replace
- SMART 197 – Current_Pending_Sector_Count. 1 or more replace
- SMART 198 – Offline_Uncorrectable. 1 or more replace
https://superuser.com/questions/1222036/windows-script-for-now-hours-of-your-harddrive
# показать статус всех дисков, у которых количество разделов больше 0 gcim Win32_DiskDrive |? Partitions -gt 0 | select SystemName,Model,@{n='Size(GB)';e={$_.Size / 1GB -as [int]}},InterfaceType,Status,MediaType,SerialNumber | ft -AutoSize -Wrap # Ещё варианты Get-PhysicalDisk | ft -AutoSize DeviceId,Model,MediaType,BusType,@{n='Size(GB)';e={$_.Size/1GB -as [int]}},SerialNumber,HealthStatus,OperationalStatus gwmi -Namespace root/wmi -Class MSStorageDriver_FailurePredictStatus |select instancename,PredictFailure,Reason,PSComputername gwmi -Namespace root/wmi -Class MSStorageDriver_ATAPISmartData
Проверка дисков
mountvol - показать точки подключения (полезно, если диск повреждён и не монтируется буквой).
rem Пытаться исправить все ошибки на диске автоматически
chkdsk \\?\Volume{0c45dbc7-0ff4-4b5c-8592-4f43b1573210}\ /F /R /X /B
DiskSmartView
# выгрузка и фильтрация отчёта, # если статус не OK, Unknown и не пустой, высылаем письмо $tmpcsv = '.\tmp.csv' $reportcsv = '.\report.csv' $tmphtml = '.\tmp.html' $reporthtml = '.\report.html' $header = 'Description,Raw value,Normalized value,Worst value,Threshold value,Status' $lastuser = Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI |select -expand LastLoggedOnDisplayName & .\DiskSmartView.exe /scomma "$tmpcsv" sleep 5 $csv = -join $header, (gc "$tmpcsv") |ConvertFrom-Csv -Delimiter "," $status = $csv |where {$_.status -ne 'ok' -and $_.status -ne $null -and $_.status -ne 'unknown'} if ($status -ne $null) { # переделка отчёта в файл с разделителем ;, чтобы открывался в Экселе $csv |Export-Csv -Delimiter ';' -Encoding utf8 -NoTypeInformation $reportcsv # выгрузка и фильтрация отчёта в HTML & .\DiskSmartView.exe /shtml "$tmphtml" gc "$tmphtml" |where {$_ -notmatch 'html' -and $_ -notmatch 'body' -and $_ -notmatch 'Registry Key' -and $_ -notmatch 'h3'} | Set-Content "$reporthtml" $html = gc $reporthtml # мыло $from = 'user@yandex.ru' $to = 'user@outlook.com' $pass = gc .\mailpassword.txt $secpass = $pass | Convertto-SecureString -AsPlainText -Force $cred = New-Object -TypeName System.Management.Automation.PSCredential -Argumentlist $from,$secpass Send-MailMessage -From $from -To $to -Subject "Плохой отчёт SMART на компьютере $env:ComputerName" ` -SmtpServer smtp.yandex.ru -Encoding UTF8 -UseSsl -Credential $cred ` -Body "Пользователь: $lastuser<br>Логин: $env:UserName<br>Компьютер: $env:ComputerName $html" -BodyAsHtml ` -Attachments $reportcsv }
Smartmontools
Корректная работа пока не подтверждена
https://github.com/deajan/smartmontools-win
Положить рядом с инсталлятором файлы erroraction_config.cmd (конфиг консольного почтаря) и smartd.conf.
Пароль в erroraction_config.cmd должен лежать в кодировке base64. Скрипт кодирования в base64 на Powershell:
$Text = ‘This is a secret and should be hidden’ $Bytes = [System.Text.Encoding]::Unicode.GetBytes($Text) $EncodedText =[Convert]::ToBase64String($Bytes) $EncodedText
Установка из текущего каталога (cmd):
%~dp0\smartmontools-win-6.5-1.exe /SUPPRESSMSGBOXES /SILENT
tasks/smart.txt · Последнее изменение: 30.07.2024 19:21 — 127.0.0.1