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

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

KaSpieC 666 24-01-2015 19:45 2460745

Узнать MBR или GPT
 
Нужен батник, который может определить разметку томов на жестком, и создать .txt на рабочем столе с полной информацией о всех разметках томов/разделов....
Заранее благодарен!

Iska 24-01-2015 20:13 2460753

Воспользуйтесь материалами этой темы: [решено] Узнать, MBR или GPT?

KaSpieC 666 24-01-2015 20:21 2460757

Iska,
Я к сожалению, очень плохо разбираюсь в батниках....
Всё, что там есть - ничего не показывает результат (текстовый документ/командная строка)....
Мне бы любой вариант подошел, в текстовом документе, или в командной строке!
P.S. может и ошибаюсь, но перепробовал все варианты с той темы, а потом создал эту...

Iska 24-01-2015 20:33 2460761

Цитата:

Цитата KaSpieC 666
Всё, что там есть - ничего не показывает результат (текстовый документ/командная строка).... »

KaSpieC 666, серьёзно? Что, например, у Вас показывает такой код:
Код:

wmic.exe Partition get DeviceID, Type
?

KaSpieC 666 24-01-2015 20:42 2460764

Iska,
ничего.... У меня ХР, может из-за этого?

Iska 24-01-2015 20:53 2460768

Цитата:

Цитата KaSpieC 666
ничего.... »

Покажите скриншот с этим «ничего». Откройте командную строку, введите вышеприведённый код, нажмите «Enter», дождитесь появление приглашения интерпретатора команд после выполнения команды, нажмите Alt-PrintScreen, дабы поместить скриншот активного окна в буфер обмена.

Цитата:

Цитата KaSpieC 666
У меня ХР, может из-за этого? »

У меня тоже.

KaSpieC 666 24-01-2015 20:54 2460769


Iska 24-01-2015 21:01 2460771

Ну вот. А говорили — «ничего».

Итак, у Вас имеется один диск с двумя не GPT разделами. Так? Покажите скриншот панели mmc «Управления дисками». И расскажите — на примере Вашего конкретного случая — в каком именно виде Вы хотите получить:
Цитата:

Цитата KaSpieC 666
.txt на рабочем столе с полной информацией о всех разметках томов/разделов.... »


KaSpieC 666 24-01-2015 21:17 2460775

Iska,
не совсем, 3 раздела не GPT:


Цитата:

Цитата Iska
в каком именно виде Вы хотите получить »

В любом понятном! Например:
C - MBR
D - MBR
и т.д.

Или :
1 - MBR
2 - MBR
(только чтобы понимать, что 1 - это C, 2 - D)
Да не прихотлив к этому, главное понять, какой раздел и какой разметки!

Скрытый текст

И извиняюсь, за "ничего" - искал слова MBR GPT....

Iska 24-01-2015 21:21 2460777

KaSpieC 666, это скриншот не «Управления дисками». «Win-R», «diskmgmt.msc», «Enter».

KaSpieC 666 24-01-2015 21:28 2460780

Iska,
под спойлером, Вы наверное не заметили, я через пару минут добавил, после отправки....

KaSpieC 666 25-01-2015 18:43 2461153

Iska
Я что-то не так сделал/сказал?

Iska 26-01-2015 05:51 2461378

Цитата:

Цитата KaSpieC 666
Вы наверное не заметили, я через пару минут добавил, после отправки.... »

Да, прочитал Ваш пост раньше, нежели чем Вы обновили его содержимое.

Итак, ещё раз: у Вас два раздела. Два, а не три. Один — основной, другой — дополнительный. В основном разделе создан один логический диск «C:», в дополнительном разделе созданы два логических диска — «D:» и «E:».

Цитата:

Цитата KaSpieC 666
И извиняюсь, за "ничего" - искал слова MBR GPT.... »

Ясно, с этим разобрались.

Давайте продолжим этим скриптом WSH:
Скрытый текст
Код:

Option Explicit

Dim strComputer

Dim objSWbemObjectEx_Win32_DiskDrive
Dim objSWbemObjectEx_Win32_DiskPartition
Dim objSWbemObjectEx_Win32_LogicalDisk

Dim strFile
Dim strContent


strComputer = "."

With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(strComputer, "root\cimv2")
        strContent = ""
       
        For Each objSWbemObjectEx_Win32_DiskDrive In .ExecQuery("SELECT * FROM Win32_DiskDrive")
                With objSWbemObjectEx_Win32_DiskDrive
                        strContent = strContent & .DeviceID & ", " & .PNPDeviceID & ", " & .Size & vbCrLf
                End With
               
                For Each objSWbemObjectEx_Win32_DiskPartition In objSWbemObjectEx_Win32_DiskDrive.Associators_(, "Win32_DiskPartition")
                        With objSWbemObjectEx_Win32_DiskPartition
                                strContent = strContent & vbTab & .DeviceID & ", " & .Type & ", " & .Size & vbCrLf
                        End With
                       
                        For Each objSWbemObjectEx_Win32_LogicalDisk In objSWbemObjectEx_Win32_DiskPartition.Associators_(, "Win32_LogicalDisk")
                                With objSWbemObjectEx_Win32_LogicalDisk
                                        strContent = strContent & vbTab & vbTab & .DeviceID & ", " & .FileSystem & ", " & .VolumeName & ", " & .VolumeSerialNumber & ", " & .Size & vbCrLf
                                End With
                        Next
                Next
        Next
End With

With WScript.CreateObject("Scripting.FileSystemObject")
        strFile = .BuildPath(WScript.CreateObject("WScript.Shell").SpecialFolders("Desktop"), "List drives.txt")
       
        With .CreateTextFile(strFile, True)
                .Write strContent
                .Close
        End With
End With

WScript.CreateObject("WScript.Shell").Run """" & strFile & """", 1, False

WScript.Quit 0


Найдите машину с GPT (у меня нет), исполните скрипт и проверьте результирующие строки с разделами («Disk #…, Partition #…») на наличие словосочетания «GPT» после первой запятой.

KaSpieC 666 26-01-2015 16:35 2461647

Iska,
Хорошо, попробую найти с GPT....
Правильно я понимаю - в текстовый закинуть скрипт, и сменить .txt на .wsh ?
Этот скрипт только для GPT? Методом исключения? Запустился - GPT, если нет - MBR? (так как у меня он не запускается - ради интереса проверил)

Iska 26-01-2015 16:47 2461654

Цитата:

Цитата KaSpieC 666
и сменить .txt на .wsh ? »

…на «.vbs».
Цитата:

Цитата KaSpieC 666
Этот скрипт только для GPT? Методом исключения? Запустился - GPT, если нет - MBR? »

Нет. Нет. Нет.

Цитата:

Цитата KaSpieC 666
(так как у меня он не запускается - ради интереса проверил) »

Как определили? Что сообщает при этом?

KaSpieC 666 26-01-2015 17:43 2461697

Iska,
Я извеняюсь за свою глупость...
Всё работает у меня, просто делал в .wsh :blush2:

P.S. как тока протестирую на GPT - отпишусь!

Iska 26-01-2015 18:21 2461717

Цитата:

Цитата KaSpieC 666
P.S. как тока протестирую на GPT - отпишусь! »

Лады, будем ждать.

KaSpieC 666 27-01-2015 02:22 2461902

Iska,
Ели нашел GPT :)
Скрытый текст
\\.\PHYSICALDRIVE0, SCSI\DISK&VEN_TOSHIBA&PROD_MQ01ABD100\4&3359EDDD&0&000000, 1000202273280
Disk #0, Partition #0, GPT: Unknown, 314572800
Disk #0, Partition #1, GPT: System, 104857600
Disk #0, Partition #2, GPT: Basic Data, 104303951872
C:, NTFS, System, FECCE585, 104303947776
Disk #0, Partition #3, GPT: Basic Data, 209715200000
D:, NTFS, Programs, D2D9D4F8, 209715195904
Disk #0, Partition #4, GPT: Basic Data, 685630291968
E:, NTFS, Storage, CE35F33C, 685630287872

Всё работает!!! Огромной СПАСИБО!!!!

Одно только интересно (не принципиально):
как опредилять количество жесткий?

Iska 27-01-2015 04:29 2461911

Цитата:

Цитата KaSpieC 666
Всё работает!!! »

Содержимое файла устраивает? Может, что-либо убрать из вывода?

Цитата:

Цитата KaSpieC 666
Одно только интересно (не принципиально):
как опредилять количество жесткий? »

Это количество строк с «\\.\PHYSICALDRIVEXX», в Вашем случае:
Скрытый текст
Цитата:

Код:

\\.\PHYSICALDRIVE0, SCSI\DISK&VEN_TOSHIBA&PROD_MQ01ABD100\4&3359EDDD&0&000000, 1000202273280
        Disk #0, Partition #0, GPT: Unknown, 314572800
        Disk #0, Partition #1, GPT: System, 104857600
        Disk #0, Partition #2, GPT: Basic Data, 104303951872
                C:, NTFS, System, FECCE585, 104303947776
        Disk #0, Partition #3, GPT: Basic Data, 209715200000
                D:, NTFS, Programs, D2D9D4F8, 209715195904
        Disk #0, Partition #4, GPT: Basic Data, 685630291968
                E:, NTFS, Storage, CE35F33C, 685630287872


— можно предположить, что один.

Однако, есть два «но». Во-первых, в нашем скрипте не делается разделения на тип носителя, посему там могут оказаться устройства, не являющиеся жёсткими дисками. Во-вторых, даже если это будет учтено, в общем случае невозможно гарантировать точное определение: например, если у нас создан RAID-массив не средствами ОС — мы об этом на уровне Wbem не узнаем, массив будет виден как единый жёсткий диск, хотя в его состав могут входить два и более физических диска, есть варианты с объединением томов и т.п.

KaSpieC 666 27-01-2015 04:51 2461916

Iska,
Ради эксперимента, засунул флешку, вот, что вышло:
Скрытый текст
Код:

\\.\PHYSICALDRIVE0, IDE\DISKSAMSUNG_SP1614N_________________________TM100-24\30533631314A5830333432363230202020202020, 160039272960
        Disk #0, Partition #0, Installable File System, 16121516544
                C:, NTFS, , 74E7D3A1, 16121516032
        Disk #0, Partition #1, Extended w/Extended Int 13, 143917724160
                D:, NTFS, , 35D737F1, 100488208384
                E:, NTFS, , 3D25FD42, 43429445632
\\.\PHYSICALDRIVE1, USBSTOR\DISK&VEN_JETFLASH&PROD_TRANSCEND_16GB&REV_8.07\Z9ITOOV3&0, 16055746560
        Disk #1, Partition #0, Unknown, 16047538176
                F:, FAT32, , , 16031850496


То есть, как Вы и говорили "«\\.\PHYSICALDRIVEXX»", их тут 2. И даже флешку чётко увидел!

Цитата:

Цитата Iska
Содержимое файла устраивает? Может, что-либо убрать из вывода? »

Даже не знаю, что и сказать... Если есть мысли - можно попробовать/по тестировать!

Цитата:

Цитата Iska
можно предположить, что один. »

Совершенно верно - 1 жесткий с 5 разделами!!!

Цитата:

Цитата Iska
Однако, есть два «но». Во-первых, в нашем скрипте не делается разделения на тип носителя, посему там могут оказаться устройства, не являющиеся жёсткими дисками. Во-вторых, даже если это будет учтено, в общем случае невозможно гарантировать точное определение: например, если у нас создан RAID-массив не средствами ОС — мы об этом на уровне Wbem не узнаем, массив будет виден как единый жёсткий диск, хотя в его состав могут входить два и более физических диска, есть варианты с объединением томов и т.п. »

Ну проверить или предложить, я к сожалению - не могу/не знаю....
Может кто подскажет, батник довольно нужный, я так думаю....

P.S. под спойлером с GPT (в предыдущем сообщении) - Два системных скрытых и три не скрытых раздела!!!
Это, чтобы не вводило в заблуждения!

Iska 27-01-2015 11:01 2461999

Цитата:

Цитата KaSpieC 666
Даже не знаю, что и сказать... Если есть мысли - можно попробовать/по тестировать! »

Код:

\\.\PHYSICALDRIVE0, IDE\DISKSAMSUNG_SP1614N_________________________TM100-24\30533631314A5830333432363230202020202020, 160039272960
        Disk #0, Partition #0, Installable File System, 16121516544
                C:, NTFS, , 74E7D3A1, 16121516032

Код:

        For Each objSWbemObjectEx_Win32_DiskDrive In .ExecQuery("SELECT * FROM Win32_DiskDrive")
                With objSWbemObjectEx_Win32_DiskDrive
                        strContent = strContent & .DeviceID & ", " & .PNPDeviceID & ", " & .Size & vbCrLf
                End With
               
                For Each objSWbemObjectEx_Win32_DiskPartition In objSWbemObjectEx_Win32_DiskDrive.Associators_(, "Win32_DiskPartition")
                        With objSWbemObjectEx_Win32_DiskPartition
                                strContent = strContent & vbTab & .DeviceID & ", " & .Type & ", " & .Size & vbCrLf
                        End With
                       
                        For Each objSWbemObjectEx_Win32_LogicalDisk In objSWbemObjectEx_Win32_DiskPartition.Associators_(, "Win32_LogicalDisk")
                                With objSWbemObjectEx_Win32_LogicalDisk
                                        strContent = strContent & vbTab & vbTab & .DeviceID & ", " & .FileSystem & ", " & .VolumeName & ", " & .VolumeSerialNumber & ", " & .Size & vbCrLf
                                End With
                        Next
                Next
        Next

Цитата:

Цитата KaSpieC 666
Ну проверить или предложить, я к сожалению - не могу/не знаю.... »

Ну, тут уже я знаю, можете не проверять.

Цитата:

Цитата KaSpieC 666
P.S. под спойлером с GPT (в предыдущем сообщении) - Два системных скрытых и три не скрытых раздела!!!
Это, чтобы не вводило в заблуждения! »

Не вводит. Это примерно понятно по отсутствию подключённых логических дисков к некоторым разделам.

KaSpieC 666 27-01-2015 15:48 2462202

Iska,
Спасибо, подкорректировал!
Теперь, после Disk #0, Partition #0, Installable File System, не пишет размер, так как, ниже оно его тоже пишет!
И здесь убрал C:, NTFS, , 74E7D3A1, 16121516032, не считаю нужным (для себя)
Теперь выглядит так:
C:, NTFS, , 16121516032
Пример:
Код:

\\.\PHYSICALDRIVE0, IDE\DISKSAMSUNG_SP1614N_________________________TM100-24\30533631314A5830333432363230202020202020, 160039272960
        Disk #0, Partition #0, Installable File System,
                C:, NTFS, , 16121516032
        Disk #0, Partition #1, Extended w/Extended Int 13,
                D:, NTFS, , 100488208384
                E:, NTFS, , 43429445632

Теперь, только нужное, остальное не вижу смысла корректировать!
Спасибо Вам огромное.

Iska 27-01-2015 16:27 2462217

KaSpieC 666, ну, вот и славненько. Можете ещё и ряд запятых, ставших теперь лишними, убрать.


Время: 05:34.

Время: 05:34.
© OSzone.net 2001-