Обычно для работы с дисками я использую оснастку управления дисками (Disk management) или утилиту Diskpart. А недавно решил проверить, нет ли в PowerShell каких либо средств для работы с дисками. Оказалось, что есть. В PowerShell (начиная с третьей версии) входит модуль Storage, предназначенный как раз для управления дисковыми устройствами.
В него входит больше сотни командлетов, вывести их список можно командой:
Get-Command -Module Storage
Рассмотрим некоторые наиболее употребимые команды. Для примера предположим, что я подключил новый диск и мне необходимо его подготовить — инициализировать, разбить на разделы, отформатировать и т.д.
Первым делом выведем список всех дисков в системе командой:
Get-Disk
Новый диск можно узнать по значению RAW в поле Partition Stylle. Инициализируем его:
Initialize-Disk -Number 1 -PartitionStyle GPT
Затем создадим раздел размером 40Гб и дадим ему букву диска X:
New-Partition -DiskNumber 1 -Size 40GB -DriveLetter X
Отформатируем полученный раздел в NTFS и укажем для него метку тома:
Format-Volume -DriveLetter X -FileSystem NTFS -NewFileSystemLabel Disk2 -Confirm:$false
Теперь предположим, я промахнулся с размером раздела и его надо увеличить. Посмотреть доступный размер для раздела можно командой:
Get-PartitionSupportedSize -DriveLetter X | Format-List
Увеличим раздел до максимально возможного:
$size = (Get-PartitionSupportedSize -DriveLetter X).SizeMax
Resize-Partition -DriveLetter X -Size $size
И до кучи сменим букву диска:
Set-Partition -DriveLetter X -NewDriveLetter Y
И наконец мне понадобилось вернуть диск в первоначальное состояние. Для очистки диска воспользуемся командой, которая удалит все данные и информацию о разделах:
Clear-Disk -Number 1 -RemoveData -Confirm:$false
И снова получим чистый, не разбитый диск.
И еще, все командлеты имеют параметр CimSession, позволяющий выполнять операции с дисками на удаленных компьютерах, например:
$session = New-CimSession -ComputerName SRV1 -Credential Contoso\Administrator
Get-Disk -Cimsession $session
Напомню, что по умолчанию модуль Storage есть только в Windows 8\Server 2012 и выше, для более старых ОС придется устанавливать PowerShell v3 отдельно. Более подробную информацию о командлетах для работы с дисками можно посмотреть на TechNet, либо воспользовавшись встроенной справкой PowerShell.
Спасибо за статью!
У меня Windows Server 2008 R2 Standart. PowerShell версии 3.0. Ни одна команда не работает.