Как стать автором
Обновить

Получение S.M.A.R.T. параметров жестких дисков по сети

Для считывания S.M.A.R.T. параметров жестких дисков локального компьютера существует множество программ. Описывать их я не буду, потому что ни одна из них не позволяет считать S.M.A.R.T. удаленно по сети, имея права администратора домена. Поиск по просторам интернета ничего путного и бесплатного мне не дал, поэтому мне пришлось подумать как эту задачу решить самому.

Недавно мне на глаза попалась небольшая консольная программка smartctl из комплекта smartmontools. Для того, чтобы запустить её на удаленном компьютере понадобится программа psexec, входящая в пакет PsTools от SysInternals.
Для работы я написал 2 скрипта:
net_smart.bat:

@echo on
del netlist.txt
net view >> netlist.txt
for /F "eol=K skip=3 tokens=1" %%i in (netlist.txt) do (
for %%j in (smartctl.*) do copy %%j %%i\admin$
psexec -s %%i smartctl.bat )


и smartctl.bat:

@Echo on
Set $DST=\\server\share\smart
md "%$DST%\%COMPUTERNAME%"
del smartctl.txt
smartctl.exe --scan >> smartctl.txt
for /F "tokens=1" %%i in (smartctl.txt) do smartctl.exe -a %%i >> "%$DST%\%COMPUTERNAME%\%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%-%TIME:~3,2%.txt"


Файл net_smart.bat сканирует сеть, сохраняет список компьютеров в файл netlist.txt (предварительно его очистив) и затем поочередно на каждый компьютер копирует файлы smartctl.bat и smartctl.exe и при помощи программы psexec. Там, удаленно, запускает файл smartctl.bat, который считывает количество и имена установленных жестких дисков в smartctl.txt, затем последовательно считывается S.M.A.R.T. c каждого установленного в системе жесткого диска и складывает в папку в виде текстовых файлов, указанную в строке:
Set $DST=\\server\share\smart
файла smartctl.bat.
Хочу обратить внимание на то, что в строке
for /F "eol=K skip=3 tokens=1" %%i in (netlist.txt) do (
файла net_smart.bat символ К в параметре eol=K русский и должен быть в ДОС кодировке.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.