Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Определение типа системного диска, SSD или HDD

Ответить
Настройки темы
CMD/BAT - [решено] Определение типа системного диска, SSD или HDD

Аватара для dorosa

Старожил


Сообщения: 422
Благодарности: 91

Профиль | Отправить PM | Цитировать


Добрый вечер!

Появилась задачка для авто установки Windows.
Нужно определить тип системного диска, SSD или HDD, для применения соответствующих настроек.
Как это можно сделать из бат файла (SetupComplete.cmd)?
Устроит вариант и с дополнительным скриптом или утилитой.

Отправлено: 21:17, 16-10-2012

 

Пользователь


Сообщения: 94
Благодарности: 10

Профиль | Отправить PM | Цитировать


Если кому-нибудь когда-то пригодится, то вот, что у меня получилось:

Код: Выделить весь код
@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 отсутствует совсем.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:53, 28-09-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


(*.*)


Сообщения: 36561
Благодарности: 6694

Профиль | Сайт | Отправить PM | Цитировать


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

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:52, 02-10-2013 | #3


Пользователь


Сообщения: 94
Благодарности: 10

Профиль | Отправить PM | Цитировать


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

Отправлено: 15:13, 03-10-2013 | #4


(*.*)


Сообщения: 36561
Благодарности: 6694

Профиль | Сайт | Отправить PM | Цитировать


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

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

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

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

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 13:15, 04-10-2013 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Определение типа системного диска, SSD или HDD

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Автоматическое определение типа ОС - 32 или 64 бит. LonerD Автоматическая установка Windows 2000/XP/2003 35 19-08-2013 13:01
CMD/BAT - Определение типа учетной записи через CMD\BAT axmed0207 Скриптовые языки администрирования Windows 2 31-07-2012 10:03
CMD/BAT - Определение Системного диска из под Win PE O L E G Скриптовые языки администрирования Windows 0 02-07-2012 12:54
Определение типа подключения Max_Pain AutoIt 1 09-07-2011 01:52
[решено] Определение типа кодека AC'97 Giorgievich Поиск драйверов, прошивок и руководств 7 15-01-2009 19:43




 
Переход