Командлети PowerShell для роботи з дисками.
Зазвичай для роботи з дисками я використовую оснастку управління дисками (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.
.