Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Определение типа системного диска, SSD или HDD (http://forum.oszone.net/showthread.php?t=244818)

dorosa 16-10-2012 21:17 2006710

Определение типа системного диска, 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 отсутствует совсем.

Vadikan 02-10-2013 11:52 2227285

Bruce Wayne, я делал так https://www.outsidethebox.ms/14817/#_Toc351312873

Bruce Wayne 03-10-2013 15:13 2227931

Vadikan, я думал над этим, но единственный минус приведённого Вами способа в том, что не обязательно порог скорости совпадёт даже сейчас, не говоря уже о будущем, когда выйдут более быстрые носители. Но спасибо :)

Vadikan 04-10-2013 13:15 2228462

Цитата:

Цитата Bruce Wayne
но единственный минус приведённого Вами способа в том, что не обязательно порог скорости совпадёт даже сейчас, не говоря уже о будущем, когда выйдут более быстрые носители. »

Минус моего способа вовсе не в этом. Навскидку, их два:

1. winsat может не отработать из-за проблем с планами электропитания. Но даже это можно обойти:
  1. Экспортировать существующие.
  2. Вернуть стандартные (powercfg -restoredefaultschemes)
  3. Выполнить оценку.
  4. Импортировать экспортированные.

2. Не учитывается RAID.

Что же касается порога скорости, то я (не говоря уж о Microsoft) не вижу причин, по которым HDD должны превысить 8мб/с в скорости случайного чтения. Даже если такое произойдет, поднимите порог до 25 :) Пруфы https://www.outsidethebox.ms/14845/#_Toc351637941


Время: 08:57.

Время: 08:57.
© OSzone.net 2001-