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

    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 раз(а)

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

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

    [+] [-]
68703Здесь показывает неверно (0123456789ABCDEF вместо правильного TM85014C19BP6M)
Ну это было ожидаемо. Флешки не обязаны знать свой серийник и тем более сообщать его. Или конкретно у этой другие программы читают верно?
Теперь насчёт того, что не увиделось...
sergeysvirid, Adler, подключите все проблемные накопители и выполните в комстроке

Эту команду

wmic diskdrive get name,model,serialnumber
а если выдаст ошибку "Invalid XML content", то
wmic diskdrive get name,model
и следом за ней
wmic path Win32_PhysicalMedia where "tag like '%Drive0%'" Get Tag,SerialNumber
выхлоп сюда.
Так же прикрепите скриншот раздела реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Disk\Enum
желательно чтобы значения параметров вместились на скрин целиком.
nikzzzz, Может быть, но одни только hex-символы чёт подозрительно. Да и на фото наклеек девайсов этой фирмы серийники даже близко на это не похожи.

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

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

    [+] [-]
  • Откуда: 65 регион (GMT+11)
68721Ну это было ожидаемо. Флешки не обязаны знать свой серийник
Так это не флешка а хард в USB боксе.
Я вот тут подумал, а не может ли из за этого как то криво определяться серийник диска, если он подключен через внешний бокс? (что-то типа такого )
68721Или конкретно у этой другие программы читают верно?
Так я же показывал вчера выхлоп CrystalDiskInfo по этом диску: https://usbtor.ru/viewtopic.php?p=68637#68637-
68721
Теперь насчёт того, что не увиделось...
... подключите все проблемные накопители и выполните в комстроке
Эту команду
wmic diskdrive get name,model,serialnumber
Вот:
-
68721
Так же прикрепите скриншот раздела реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Disk\Enum
Вот:


Последний раз редактировалось: sergeysvirid (2019-07-17 15:37), всего редактировалось 2 раз(а)

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

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

    [+] [-]
  • Откуда: Луганск
68721подключите все проблемные накопители и выполните в комстроке
Да я и не помню уже какие проблемные, просто вспомнил, что какие то траблы были c идентификацией. Может даже и не в серийниках была суть (Джокеровский конструктор с флешки не на любой винде с какой то флешки VIP ключ принтмал, а выяснилось, что на разных виндах разный id получается. Не помню на основе чего он генерировался).
Программу запустил, а она вообще никакие флешки не видит...
P.S. USB HDD так же в программе не видится.
P.S.S. В реестре видятся все диски:
Подключил случайные:

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

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

    [+] [-]
68722а не может ли из за этого как то криво определяться серийник диска, если он подключен через внешний бокс?
Может, но CrystalDiskInfo же как-то узнаёт правильный.
sergeysvirid, Adler, Спасибо. Пока ясно только, что ничего не ясно, видимо, один из запросов к диску фейлит, и из-за этого он исключается из списка.
Слепил наскоро тестовую версию (32 бит) из того что было, это основано не на последней версии, но для теста должно хватить. Попробуйте и пришлите скрины окошек с ошибками, если они будут.
ССЫЛКА НЕДЕЙСТВИТЕЛЬНА


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

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

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

    [+] [-]
  • Откуда: 65 регион (GMT+11)
68724Попробуйте и пришлите скрины окошек с ошибками, если они будут.
У меня вот такое окошко вылезает:

-P.S.
По поводу того, что у Adler не видит ни одного внешнего носителя.
Не может быть такого, что прога из под UEFI (у него ж система на GPT разметке, как видно на скринах) не видит MBR диски?

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

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

    [+] [-]
68725Не может быть такого, что прога из под UEFI (у него ж система на GPT разметке, как видно на скринах) не видит MBR диски?
Нет, не может.
Ошибка при получении далеко не самой важной пачки данных. Не будет размеров физического и логического сектора, если пропускать эту ошибку. Подумаю ещё над решением.

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

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

    [+] [-]
  • Откуда: Луганск
Gemostarter, может я что-то не то или не так делаю. Просто не вникал в суть программы и то, где и как ей пользоваться.
Скачал архив, распаковал, запустил .exe соответствующей разрядности. Запускаю под рабочей ОС (Win 10 1809 LTSC 64-bit). При запуске запрашивает права админа. UAC включен.
Если теоретически в моем случае оно должно работать, то тестовый вариант смогу только завтра проверить. Если что-то не так, то сори, что морочил голову...

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

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

    [+] [-]
Adler, Не, тестовый вариант работать не обязан ab Он должен помочь мне отловить ошибку, из-за которой прога не видит ваши флешки. Должна видеть сразу после запуска, сделать что-то не так на этом этапе нельзя.

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

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

    [+] [-]
  • Откуда: Луганск
Gemostarter, на рабочем компе:

И так для каждого съемного диска (подключил 3 случайных флешки из жмени).
Дома тоже самое.

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

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

    [+] [-]
ССЫЛКА НЕДЕЙСТВИТЕЛЬНА
Проверяем, все харды и флешки должны отображаться в списке дисков.


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

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

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

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

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

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

    [+] [-]
  • Откуда: 65 регион (GMT+11)
Gemostarter,
Приветствую! aa
Спасибо, отлично! ay Да, теперь в списке отображаются все подключенные диски и флешки. bs az

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

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

    [+] [-]
Отлично. В последней версии это не единственное изменение. Добавлена арифметика, то есть можно складывать, вычитать, умножать и делить числа, в итоговом скрипте, который будет передан diskpart, эти вычисления уже будут выполнены. Зачем? Честно говоря, понятия не имею...
Арифметические выражения должны быть заключены в фигурные скобки, например:
{ 2 + 2 * 2 }
Вкладывать выражения друг в друга нельзя! Выражение "{ {2 + 2} * 2 }" не будет вычислено, и diskpart заткнётся на строке с ним. Если нужно заключить часть выражения в скобки, используйте обычные:
{ (2 + 2) * 2 }

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

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

    [+] [-]
Встречаем версию 2.0!
Ссылка на скачивание в шапке.
Изменения в сравнении с последней бетой - функция вычисления арифметических выражений теперь самописная, полноценно работающая с целыми 64-битными числами. А не копипаст практически неподдерживаемого г*кода, считающего 32-битные float + костыли для нормальной работы в наших условиях. Плюс некоторые мелкие правки.

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

    dimo70
  • 17296
  • Стаж: 7 лет
  • Сообщений: 3784
  • Репутация:27

    [+] [-]
  • Откуда: BG
Gemostarter, спасибо!
А что делают два скрипта, которые подключены?
Давайте еще скрипты, кто делал. ab

_________________
Подпись отключена за нарушение правил форума

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


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

Текущее время: 03-Дек 20:26

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


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