Определение типа системного диска, SSD или HDD
Добрый вечер!
Появилась задачка для авто установки Windows.
Нужно определить тип системного диска, SSD или HDD, для применения соответствующих настроек.
Как это можно сделать из бат файла (SetupComplete.cmd)?
Устроит вариант и с дополнительным скриптом или утилитой.
|
Bruce Wayne |
28-09-2013 17:53 2225358 |
Если кому-нибудь когда-то пригодится, то вот, что у меня получилось:
Код:
@echo off
for /f "tokens=4-5 delims=. " %%a in ('ver') do set os_ver=%%a.%%b
if %os_ver% GTR 6.1 (set i=SCSI
set x=0x40) else (set i=IDE
set x=0x0)
set SSD=0
set HDD=0
set SSD2=0
set HDD2=0
set SSD3=0
set HDD3=0
for /f "tokens=1-8 delims=\" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Enum\%i%" /s ^| find /i "Disk" 2^> nul') do (for /f "usebackq tokens=2*" %%i in (`reg query "%%a\%%b\%%c\%%d\%%e\%%f\%%g"^|Find /I "Capabilities"`) do if %%j==%x% (set HDD=1) else (set SSD=1))
if %os_ver% LSS 6.1 (if %SSD%==1 (echo SSD) else (echo HDD)
pause
exit)
for /f "tokens=1-8 delims=\" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Enum\%i%" /s ^| find /i "Disk" 2^> nul') do (for /f "usebackq tokens=2*" %%i in (`reg query "%%a\%%b\%%c\%%d\%%e\%%f\%%g"^|Find /I "ContainerID"`) do if %%j=={00000000-0000-0000-ffff-ffffffffffff} (set HDD2=1) else (set SSD2=1))
set /a SSD3=%SSD%+%SSD2%
if %SSD3%==2 (echo SSD) else (echo HDD)
pause
Правда, этот скрипт выдаст SSD, если в системе есть хотя бы один такой тип носителя, и HDD - если SSD отсутствует совсем.
|
Bruce Wayne |
03-10-2013 15:13 2227931 |
Vadikan, я думал над этим, но единственный минус приведённого Вами способа в том, что не обязательно порог скорости совпадёт даже сейчас, не говоря уже о будущем, когда выйдут более быстрые носители. Но спасибо :)
|
Цитата:
Цитата Bruce Wayne
но единственный минус приведённого Вами способа в том, что не обязательно порог скорости совпадёт даже сейчас, не говоря уже о будущем, когда выйдут более быстрые носители. »
|
Минус моего способа вовсе не в этом. Навскидку, их два:
1. winsat может не отработать из-за проблем с планами электропитания. Но даже это можно обойти: - Экспортировать существующие.
- Вернуть стандартные (powercfg -restoredefaultschemes)
- Выполнить оценку.
- Импортировать экспортированные.
2. Не учитывается RAID.
Что же касается порога скорости, то я (не говоря уж о Microsoft) не вижу причин, по которым HDD должны превысить 8мб/с в скорости случайного чтения. Даже если такое произойдет, поднимите порог до 25 :) Пруфы https://www.outsidethebox.ms/14845/#_Toc351637941
|
Время: 08:57.
© OSzone.net 2001-