Имя пользователя:
Пароль:
 | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] Узнать MBR или GPT

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


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

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


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

Отправлено: 19:45, 24-01-2015

 

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


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

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


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

Отправлено: 21:28, 24-01-2015 | #11



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

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


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


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

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


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

Отправлено: 18:43, 25-01-2015 | #12


Ветеран


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

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


Цитата 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» после первой запятой.
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:51, 26-01-2015 | #13


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


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

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


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

Отправлено: 16:35, 26-01-2015 | #14


Ветеран


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

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


Цитата KaSpieC 666:
и сменить .txt на .wsh ? »
…на «.vbs».
Цитата KaSpieC 666:
Этот скрипт только для GPT? Методом исключения? Запустился - GPT, если нет - MBR? »
Нет. Нет. Нет.

Цитата KaSpieC 666:
(так как у меня он не запускается - ради интереса проверил) »
Как определили? Что сообщает при этом?
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:47, 26-01-2015 | #15


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


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

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


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

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

Отправлено: 17:43, 26-01-2015 | #16


Ветеран


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

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


Цитата KaSpieC 666:
P.S. как тока протестирую на GPT - отпишусь! »
Лады, будем ждать.

Отправлено: 18:21, 26-01-2015 | #17


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


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

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


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

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

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

Отправлено: 02:22, 27-01-2015 | #18


Ветеран


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

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


Цитата 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 не узнаем, массив будет виден как единый жёсткий диск, хотя в его состав могут входить два и более физических диска, есть варианты с объединением томов и т.п.

Отправлено: 04:29, 27-01-2015 | #19


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


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

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


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 (в предыдущем сообщении) - Два системных скрытых и три не скрытых раздела!!!
Это, чтобы не вводило в заблуждения!

Последний раз редактировалось KaSpieC 666, 27-01-2015 в 05:23.


Отправлено: 04:51, 27-01-2015 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
HDD - Как разбить HDD диск: MBR или GPT ? jolo Накопители (SSD, HDD, USB Flash) 22 09-12-2014 04:46
HDD - С GPT в MBR rel Накопители (SSD, HDD, USB Flash) 1 06-11-2014 07:25
CMD/BAT - [решено] Узнать, MBR или GPT? m0nkrus Скриптовые языки администрирования Windows 56 13-11-2013 11:24
HDD - [решено] MBR и GPT vof44ik Накопители (SSD, HDD, USB Flash) 4 23-09-2013 10:29
[решено] Какая схема разделов предпочтительна: MBR или GPT LaCroix Накопители (SSD, HDD, USB Flash) 1 11-05-2013 11:33




 
Переход