[Цитировать]

    Gemostarter
  • 15956
  • Стаж: 7 лет 8 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
DiskPart Advanced Script Console Автор: GeStart Live a.k.a GemoStarter
Системные требования: Windows XP или новее
DiskPart ASC - Программа, предназначенная для упрощения использования скриптов для программы DiskPart, встроенного в Windows консольного менеджера разделов. Использование ASC устраняет необходимость всякий раз перед использованием скрипта сверяться со списком имеющихся дисков и изменять скрипт, подставляя в него номера нужных дисков и разделов.
После запуска ASC будет выведен список всех доступных для работы физических дисков. После выбора диска будет выведена более детальная информация о нём, а так же список имеющихся на нём разделов. После выбора раздела будет отображена более детальная информация о нём.
Выбрав диск и, если нужно, раздел, можно будет выбрать один из заранее подготовленных скриптов в выпадающем списке. После нажатия кнопки "Run Script" ASC автоматически подставит номера диска и раздела в нужные места скрипта, и передаст его присутствующему в системе diskpart.exe.
ОСТОРОЖНО: В архиве с программой присутствуют два скрипта. Они удаляют с диска имеющуюся таблицу разделов (командой CLEAN), создают новую таблицу GPT или MBR (зависит от скрипта) и структуру разделов для установки Windows. Скрипты приложены, в основном, для демонстрации функционала, но полностью работоспособны, и при случайном запуске не на том диске обрекут вас на долгое и мучительное восстановление информации.

О скриптах:

Автоматическая подстановка номеров диска и раздела в скрипт достигается за счёт использования в скрипте переменных:
#ANTI# - Заглушка, предотвращающая случайный запуск скрипта без ASC, рекомендуется размещать первой строкой
#DISK# - Номер диска
#PART# - Номер раздела
#VOLU# - Номер тома, соответствующего #PART#
#PSTL# - Стиль разделов диска #DISK#
#GSEC# - Размер сектора #DISK# из информации о геометрии диска
#PSEC# - Размер физического сектора #DISK# (не все диски его сообщают)
#LSEC# - Размер логического сектора #DISK# (не все диски его сообщают)
#MNTP# - Точка монтирования раздела #PART# (без конечного "\")
#MNTPF№# - Свободная буква диска, это номер свободной буквы, если букв не хватит для всех номеров, скрипт не запустится
В скриптах поддерживаются простые вычисления. Выражение должно быть заключено в фигурные скобки,например:
{ 2 * 2 }
На место этого выражения будет подставлен его результат, то есть 4.
Вкладывать выражения друг в друга нельзя! Ошибки внутри выражений не проверяются, будьте внимательны.
Поддерживаются операторы:
^ - Возведение в степень
* - Умножение
/ - Деление
+ - Сложение
- - Вычитание
Не все йогурты одинаково полезны, и не все скрипты одинаково хорошо подходят для разных сценариев работы. К примеру, скрипт, написанный для MBR-дисков, будет непригоден для работы с GPT, и наоборот. Кроме того, некоторым скриптам достаточно выбрать только диск, другим же необходимо знать и раздел. Отсеять безусловно неподходящие скрипты поможет соблюдение шаблона именования:
DPMGRSEAU.AnyText
Собственно шаблоном здесь является DPMGRSEAU, то есть текст, располагающийся до первой точки. Всё, что находится после неё, игнорируется программой.
D - Для работы скрипту необходим номер диска
P - Необходим номер раздела
M - Поддерживается стиль разделов MBR
G - Поддерживается стиль разделов GPT
R - Поддерживаются RAW-диски (без таблицы разделов)
S - Поддерживаются диски со стандартным форматом сектора (512 байт как физически, так и логически)
E - Поддерживаются диски с форматом сектора 512e (4096 байт физически, 512 байт логически)
A - Поддерживаются диски с форматом сектора 4K (4096 байт как физически, так и логически)
U - Поддерживаются диски с неизвестным форматом сектора (любые другие комбинации, в том числе если диск не сообщает размер #PSEC# и #LSEC#)
Если скрипт может работать с любым стилем разделов и RAW, то можно не указывать стиль в шаблоне.
Если размер сектора не играет роли, в шаблоне нужно указать 0 либо не указывать чисел вовсе.
Если скрипт может работать без диска, раздела, вне зависимости от стиля разделов и размера сектора, шаблон можно оставить пустым. Можно и удалить шаблон вовсе, но во избежание неожиданного поведения лучше указать пустой. То есть .AnyText

Интерфейс:

1 - Список дисков
2 - Детальная информация о диске, выбранном в 1
3 - Список разделов на диске, выбранном в 1
4 - Детальная информация о разделе, выбранном в 3
5 - Список скриптов
6 - Запуск скрипта, выбранного в 5
7 - Запуск DiskPart без скрипта (для ручной работы)

Благодарности:

sergeysvirid, Adler, nikzzzz, vovan1982, Ander_73 и все, кого забыл упомянуть - за тестирование программы и ценные советы
Вложение

Версия 2.0



Последний раз редактировалось: Gemostarter (2019-07-24 17:04), всего редактировалось 8 раз(а)

[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет
  • Сообщений: 1135
  • Репутация:78

    [+] [-]
  • Откуда: Ростов-на-Дону
Gemostarter, было бы не плохо. Это бы расширило функционал программы.

[Цитировать]

    Gemostarter
  • 15956
  • Стаж: 7 лет 8 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
ССЫЛКА НЕДЕЙСТВИТЕЛЬНА
Добавлена переменная #MNTP# - первая точка монтирования выбранного раздела.
Теперь программа откажется запускать скрипт с переменными, для которых у неё нет значения.
Например, если в скрипте есть #MNTP#, но выбранный раздел никуда не смонтирован, будет ошибка.
То же самое - если в скрипте есть #PART#, но никакой раздел не выбран. Или #DISK#, когда диск не выбран.
Конечно же, всё это надо где-то и как-то проверять...

[Цитировать]

    Gemostarter
  • 15956
  • Стаж: 7 лет 8 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
ССЫЛКА НЕДЕЙСТВИТЕЛЬНА
Пофикшено определение серийного номера HDD на некоторых "хитрых" девайсах. Если у вас в пункте "Serial:" вместо нормального серийника была строка из HEX-чисел, как у Ander_73 на скриншоте из этого сообщения, обязательно проверьте.


Последний раз редактировалось: Gemostarter (2019-07-17 06:21), всего редактировалось 1 раз

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Gemostarter, aa
68630Если у вас в пункте "Serial:" вместо нормального серийника была строка из HEX-чисел

Раньше была hex строка "05031357E18823310294".
К стати, с помощью wmic
wmic diskdrive get serialnumber
получается именно указанная hex строка.


Последний раз редактировалось: nikzzzz (2019-07-15 12:26), всего редактировалось 1 раз

[Цитировать]

    Gemostarter
  • 15956
  • Стаж: 7 лет 8 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
nikzzzz, Эге... А CrystalDiskInfo какой пишет?
И ту hex-строку тоже не мешало бы, из старой версии. Вот ссыль на всякий: https://yadi.sk/d/nSDCLjh0C0b06w

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
68632И ту hex-строку тоже не мешало бы, из старой версии.
Так я и ее привел из старой версии, CrystalDiskInfo и Aida64 то-же ее пишет.


Последний раз редактировалось: nikzzzz (2019-07-15 12:35), всего редактировалось 1 раз

[Цитировать]

    Gemostarter
  • 15956
  • Стаж: 7 лет 8 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
nikzzzz, У нас случилась коллизия во времени ag
Тогда последний вопрос: на корпусе HDD (или коробке, или в доках) какой серийник?

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Gemostarter,
68634на корпусе HDD (или коробке, или в доках) какой серийник?
Извини, лень ноутбук вскрывать.

[Цитировать]

    Gemostarter
  • 15956
  • Стаж: 7 лет 8 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
nikzzzz, ладно, не так уж это и важно, примеры серийников этой фирмы нагуглил. На ту hex-строку даже не похожи. Будем пытаться из всем известных букв составить слово "счастье"...

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 10 лет
  • Сообщений: 2599
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
Gemostarter,
Приветствую! aa
Тестовая версия от 10.07.2019 отображает так:
-Новая версия от 15.07.2019 отображает так:

CrystalDiskInfo пишет так:

Enclosure : JMicron Generic USB Device (V=152D, P=0567, sa1)
Model : HGST HTS545050A7E380
Firmware : GG2OAC90
Serial Number : TM85014C19BP6M
Disk Size : 500,1 GB (8,4/137,4/500,1/500,1)
Buffer Size : 8192 KB
Queue Depth : 32
# of Sectors : 976773168
Rotation Rate : 5400 RPM
Interface : USB (Serial ATA)
Major Version : ATA8-ACS
Minor Version : ATA8-ACS version 6
Transfer Mode : ---- | SATA/300
Power On Hours : 25719 ч
Power On Count : 5338 раз
Temperature : 27 C (80 F)
Health Status : Хорошо
Features : S.M.A.R.T., APM, 48bit LBA, NCQ
APM Level : 4080h [ON]
AAM Level : ----
Drive Letter : J:

[Цитировать]

    Gemostarter
  • 15956
  • Стаж: 7 лет 8 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
sergeysvirid, Нда уж... Какую только чушь они туда не пихают... Будем искать другие методы. CDI же как-то справляется. Тоже, правда, не везде.

[Цитировать]

    Gemostarter
  • 15956
  • Стаж: 7 лет 8 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
ССЫЛКА НЕДЕЙСТВИТЕЛЬНА
Проверяем новый метод запроса серийника. Белиберда как у nikzzzz в этом сообщении ещё не устранена (может, и никогда не будет), однако в остальных случаях должна определять корректно.


Последний раз редактировалось: Gemostarter (2019-07-18 16:18), всего редактировалось 1 раз

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 10 лет
  • Сообщений: 2599
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
Gemostarter,
Приветствую! aa
Серийный номер отображает правильно на всех дисках кроме этого:

Здесь показывает неверно (0123456789ABCDEF вместо правильного TM85014C19BP6M)-И кстати, из четырёх подключенных дисков, один диск вообще не отображается в окне (в ранних версиях тоже не отображался bn ).
Хоть этот диск и не первой свежести, но ещё достаточно живой и рабочеспособный (по крайней мере для "свалки" нормально ещё подходит ag и отображается как в проводнике, так и в любых тулзах типа диск-менеджеров)

Вот данные по этому диску снятые CrystalDiskInfo:

Enclosure : Seagate GoFlex Desk USB Device (V=0BC2, P=50A5, sa1) - st
Model : ST1000DL002-9TT153
Firmware : CC98
Serial Number : W1V19862
Disk Size : 1000,2 GB (8,4/137,4/1000,2/1000,2)
Buffer Size : Неизвестно
Queue Depth : 1
# of Sectors : 1953525168
Rotation Rate : 5900 RPM
Interface : USB (Serial ATA)
Major Version : ATA8-ACS
Minor Version : ATA8-ACS version 4
Transfer Mode : SATA/300 | SATA/300
Power On Hours : 41981 ч
Power On Count : 9493 раз
Temperature : 42 C (107 F)
Health Status : Тревога!
Features : S.M.A.R.T., AAM, 48bit LBA
APM Level : ----
AAM Level : D000h [OFF]
Drive Letter : E:

[Цитировать]

    Adler
  • 1708
  • Стаж: 9 лет 2 месяца
  • Сообщений: 1214
  • Репутация:65

    [+] [-]
  • Откуда: Луганск
Хотел потестить, посмотреть как серийники с флешек вычитываются, т.к. пару лет назад сталкивался со странным поведением для некоторых моих флешек, но так и не догнал, что надо сделать, что бы в программе увиделись флешки...

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Gemostarter,
68701 Белиберда как у nikzzzz в этом сообщении ещё не устранена (может, и никогда не будет)
Я думаю, что это не белиберда, а серийник, его показывают все утилиты, которые я пробовал.

Страница 5 из 7


Показать сообщения:    

Текущее время: 21-Дек 14:33

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы