Вступление
Мощь 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-инфраструктуре.