Вступление
Мощь PowerShell для управления дисковым пространством
Утилита diskpart
долгое время была стандартным инструментом для управления дисками в Windows. Однако современные задачи требуют современных решений. PowerShell предоставляет гораздо более мощный, гибкий и главное — автоматизируемый подход к работе с дисками и разделами. В этой статье мы подробно разберем, как с помощью командлетов PowerShell выполнять все основные операции с дисковым пространством: от инициализации новых дисков до создания разделов и их форматирования.
Подготовка и первые шаги
Перед началом работы убедитесь, что вы запускаете PowerShell от имени администратора. Это необходимо для получения всех требуемых прав на управление системными ресурсами.
Основным модулем для работы является Storage
, который по умолчанию доступен в Windows 10 и Windows Server 2012/2016/2019 и выше. Все операции мы будем выполнять с помощью cmdlet из этого модуля.
Первым делом получим список всех дисков, подключенных к системе:
Get-Disk
Эта команда выведет таблицу с номером диска (Number
), его размером, статусом операционной системы (OperationalStatus
) и стилем разделов (PartitionStyle
— MBR или GPT).
Основные операции: от диска к разделу
Процесс подготовки диска к работе состоит из нескольких ключевых этапов.
1. Инициализация нового диска
Часто только что подключенный диск имеет статус «Не инициализирован» (Unknown). Прежде чем использовать его, необходимо инициализировать, выбрав стиль разделов: устаревший MBR или современный GPT.
Initialize-Disk -Number 1 -PartitionStyle GPT
-
-Number 1
— номер диска, который вы увидели в выводеGet-Disk
. -
-PartitionStyle GPT
(рекомендуется) или-PartitionStyle MBR
.
2. Создание разделов (Partition)
После инициализации на диске нужно создать раздел. Можно создать один большой раздел или несколько.
New-Partition -DiskNumber 1 -UseMaximumSize -AssignDriveLetter
-
-DiskNumber 1
— указываем, на каком диске создавать раздел. -
-UseMaximumSize
— использовать все доступное пространство диска. -
-AssignDriveLetter
— автоматически назначить букву диска (например, E:).
Если нужно создать раздел определенного размера (например, 50 ГБ), используйте параметр -Size
:
New-Partition -DiskNumber 1 -Size 50GB -AssignDriveLetter
3. Форматирование раздела в файловую систему
Созданный раздел необходимо отформатировать. Чаще всего используются файловые системы NTFS или ReFS.
Get-Partition -DiskNumber 1 -PartitionNumber 1 | Format-Volume -FileSystem NTFS -NewFileSystemLabel "DataDisk"
-
Get-Partition -DiskNumber 1 -PartitionNumber 1
— находим нужный раздел. -
Format-Volume
— cmdlet для форматирования. -
-FileSystem NTFS
— указываем файловую систему. -
-NewFileSystemLabel "DataDisk"
— задаем понятную метку тома.
4. Монтирование тома в папку (без буквы диска)
Вместо назначения буквы диск можно смонтировать в пустую папку, что удобно для организации структуры хранения.
New-Partition -DiskNumber 1 -UseMaximumSize -DriveLetter W Add-PartitionAccessPath -DiskNumber 1 -PartitionNumber 1 -AccessPath "C:\Data" Set-Partition -DiskNumber 1 -PartitionNumber 1 -NoDefaultDriveLetter $true
В этом примере мы сначала создаем раздел с временной буквой W
, монтируем его в папку C:\Data
, а затем убираем букву диска, оставляя только точку монтирования.
Продвинутые сценарии и автоматизация
Истинная сила PowerShell раскрывается в возможности объединять команды в сценарии для автоматизации рутинных задач.
Создание загрузочного USB-накопителя
Следующий скрипт отчистит флешку (DiskNumber 1), создаст на ней раздел и отформатирует его в FAT32:
Get-Disk -Number 1 | Clear-Disk -RemoveData -RemoveOEM -Confirm:$false Initialize-Disk -Number 1 -PartitionStyle MBR $Partition = New-Partition -DiskNumber 1 -UseMaximumSize -IsActive -AssignDriveLetter Format-Volume -DriveLetter $Partition.DriveLetter -FileSystem FAT32 -NewFileSystemLabel "WinPE"
Полная подготовка диска одной командой
Комбинируя cmdlet через конвейер (|
), можно выполнить всю подготовку диска одной строкой:
Get-Disk -Number 1 | Initialize-Disk -PartitionStyle GPT -PassThru | New-Partition -UseMaximumSize -AssignDriveLetter | Format-Volume -FileSystem NTFS -NewFileSystemLabel "NewVolume" -Confirm:$false
-
-PassThru
— передает результат работы предыдущего cmdlet следующему по конвейеру.
Полезные команды для диагностики и мониторинга
-
Просмотр разделов на конкретном диске:
Get-Partition -DiskNumber 1
-
Получение информации о всех томах:
Get-Volume
-
Проверка свободного места:
Get-Volume | Where-Object {$_.DriveType -eq 'Fixed'} | Select-Object DriveLetter, SizeRemaining, Size
-
Удаление раздела (Осторожно! Данные будут утеряны):
Get-Partition -DiskNumber 1 -PartitionNumber 2 | Remove-Partition -Confirm:$false
Заключение
PowerShell предлагает целостный, мощный и скриптуемый подход к управлению дисками в Windows. Освоив базовые cmdlet, такие как Get-Disk
, Initialize-Disk
, New-Partition
и Format-Volume
, вы сможете не только легко готовить новые накопители, но и создавать сложные сценарии для развертывания в корпоративной среде, автоматизируя рутинные задачи по обслуживанию серверов и рабочих станций.
Переход от консольной diskpart
к скриптовому PowerShell — это шаг от ручного управления к эффективной и масштабируемой IT-инфраструктуре.