Управление дисками и разделами из PowerShell

В этой статье мы рассмотрим процесс управления дисками, разделами и томами из командной строки PowerShell. Все операции по работе с локальными дисками и разделами, которые вы привыкли выполнять с помощью графической консоли «Управление дисками» (diskmgmt.msc) или из командной строки утилиты diskpart.exe, вы можете выполнить из PowerShell. Командлеты управления дисками включены в модуль Storage , доступный в PowerShell 3.0. Мы посмотрим как инициализировать диск, создать на нем таблицу разделов, раздел и отформатировать его. Рассмотренные ниже команды будут работать в Windows 10 / Server 2016 и Windows 8.1/ Server 2012 R2 (в предыдущих версиях Windows придется сначала обновить PowerShell).

В Windows 10 в модуле Storage доступно 160 команд. Чтобы вывести все доступные команды управления дисками, выполните:

Get-Command -Module Storage

powershell модуль storage для управления дисками и разделами

Важно . При работе с дисками и разделами на них из PowerShell нужно быть внимательным, чтобы случайно не удалить или отформатировать раздел с данными.

Вывод списка дисков и разделов на них

Прежде всего попробуйте вывести список дисков, доступных на логическом уровне в вашей системе. Для этого выполните команду:

Get-Disk | ft -AutoSize

Чтобы выбрать только системный диск, на котором установлена Windows, выполните команду:

Get-Disk | Where-Object IsSystem -eq $True | fl

Как вы видите, команда вернула следующие атрибуты системного диска (их также можно использовать в выборке):

UniqueId : SCSIDISK&VEN_VMWARE&PROD_VIRTUAL_DISK5&1EC51BF7&0&000000:DESKTOP-JOPF9
Number : 0
Path : \?scsi#disk&ven_vmware&prod_virtual_disk#5&1ec51bf7&0&000000#{53f56307-b6bf-11d0-94f2-001efb8b}
Manufacturer : VMware
Model : Virtual disk
SerialNumber :
Size : 80 GB
AllocatedSize : 85898297344
LogicalSectorSize : 512
PhysicalSectorSize : 512
NumberOfPartitions : 2
PartitionStyle : MBR
IsReadOnly : False
IsSystem : True
IsBoot : True

Можно вывести только диски со статусом Offline:

Get-Disk | Where-Object IsOffline –Eq $True| ft –AutoSize

просмотр списка дисков Get-Disk

Если вам нужна информация о физических дисках (характеристики и состояние физических дисков на компьютере), используйте командлет Get-PhysicalDisk (ранее мы показывали как с помощью командлета Get-PhysicalDisk можно определить неисправный диск в Storage Spaces Direct и его использование при настройке отказоустойчивого хранилища S2D ).

Get-PhysicalDisk подключенные физические диски и их состояние

С помощью PowerShell вы можете определить тип подключенного накопителя SSD или HDD (обычно подключен через шину SATA) или USB флешка (тип UnSpecified).

DeviceId Model MediaType BusType Size

——— —— ——— ——- —-

0 TOSHIBA MK3775VSXP HDD SATA 500156374016

1 Samsung SSD 840 PRO Series SSD SATA 128060514304

2 Transcend UnSpecified USB 128169757184

Вы можете вывести список разделов на всех дисках:

Get-Partition

Либо разделы только на указанных дисках:

Get-Partition –DiskNumber 1,2

Чтобы вывести список всех логических разделов в Windows выполните:

Get-Volume

Get-Volume

Обратите внимание, что нумерация дисков начинается с 0, а нумерация разделов с 1.

Инициализация диска

В предыдущем примере вы видели, что один из дисков находится в офлайн состоянии и имеет разметку RAW в поле Partition Style. Попробуем инициализировать его, создать таблицу разделов и создать на нем новый раздел.

Прежде всего нужно перевести такой диск в онлайн:

Get-Disk | Where-Object IsOffline –Eq $True | Set-Disk –IsOffline $False

Теперь можно инициализировать этот диск (его индекс 1):

Initialize-Disk -Number 1

инифиализация диска из powershell

По умолчанию на диске создается таблица разделов GPT (GUID), если вам нужна именно MBR, выполните команду:

Initialize-Disk 1 –PartitionStyle MBR

Если на диске уже имеются данные, вы можете изменить таблицу разделов с MBR в GPT без удаления данных с помощью утилиты mbr2gpt.exe .

Чтобы не указывать номер диска, можно инициализировать все диски с таблицей разделов RAW:

Get-Disk | Where-Object PartitionStyle –Eq 'RAW' | Initialize-Disk

Обратите внимание, что диск может находится в статусе RAW при повреждении таблицы разделов. Вы можете попробовать восстановить таблицу разделов и данные на RAW диске так .

Создаем разделы на диске

Чтобы создать новый раздел на диске используется командлет New-Partition . Создадим раздел размером 10 Гб и назначим ему букву диска L:

New-Partition –DiskNumber 1 -Size 10gb -DriveLetter L

Создать раздел на диске New-Partition

Если раздел должен занимать все доступное место на диске, используйте атрибут UseMaximumSize . Для автоматического назначения буквы диска используется параметр AssignDriveLetter (иногда буква диска может автоматически на назначаться ).

New-Partition –DiskNumber 1 -AssignDriveLetter –UseMaximumSize

Вы можете изменить назначенную букву диска так:

Set-Partition –DriveLetter L -NewDriveLetter U

Если нужно увеличить имеющийся раздел, сначала выведите доступное пространство для расширения для данного раздела:

Get-PartitionSupportedSize -DriveLetter L | Format-List

Потом можно увеличить размер раздела до максимального:

$MaxSize = (Get-PartitionSupportedSize -DriveLetter L).SizeMax
Resize-Partition -DriveLetter L -Size $MaxSize

Расширение раздела жесткого диска Resize-Partition

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

Set-Partition -DriveLetter T -IsActive $true

Форматирование раздела из PowerShell

Отформатируем полученный раздел в файловой системе NTFS и зададим метку тома DBData:

Format-Volume -DriveLetter L -FileSystem NTFS -NewFileSystemLabel DBData -Confirm:$false

отформатировать раздел на диске Format-Volume

Удаление разделов на диске

Чтобы удалить все разделы на дисках 1 и 2 без подтверждения, выполните команду:

Get-Partition –DiskNumber 1,2 | Remove-Partition -Confirm:$false

Удалить раздел Remove-Partition

Для удаления с дисков всех разделов и полной очистки данных выполните команду:

Clear-Disk -Number 1 -RemoveData -Confirm:$false

Если на диски имеются OEM разделы ( OEM раздел восстановления , EFI раздел , System Reserved ) для их удаления нужно исползовать параметр RemoveOEM:

Clear-Disk -Number 1 -RemoveData –RemoveOEM

Следующая однострочная PowerShell команда инициализирует все новые подключенные диски типа RAW, создаст на них таблицу разделов и создаст раздел с файловой системой NTFS максимального размера. Ее удобно использовать при подключении нового диска:

Get-Disk |Where-Object PartitionStyle -eq 'RAW' |Initialize-Disk -PartitionStyle MBR -PassThru |New-Partition -AssignDriveLetter -UseMaximumSize |Format-Volume -FileSystem NTFS -Confirm:$false

EnglishRussianUkrainian