sergey vasin

The IT blog

Weekend Scripter: Работаем с дисками – Hey, Scripting Guy! Blog

leave a comment »

Резюме: Microsoft Scripting Guy, Ed Wilson рассказывает об использовании модуля Storage в Windows 8 для создания разделов и форматирования дисков.

Microsoft Scripting Guy, Ed Wilson на связи. Сегодня с собираюсь рассказать об использовании командлетов модуля Storage на компьютерах с Windows 8 и Windows Server 2012. Для получения списка этих командлетов наберите Get-Command (gcm – это алиас) и укажите модуль Storage.

Gcm –module storage

На моем ноутбуке их 84 штуки.

15:44 C:\> gcm -Module storage | measure

Count : 84

Average :

Sum :

Maximum :

Minimum :

Property :

Довольно интересно, почти 84 командлета входило в Windows PowerShell 1.0 – так что с их помощью можно много чего сделать.

Предупреждение: Будьте крайне осторожны при работе с функциями модуля Storage. Все они требуют административных прав (даже для просмотра информации о дисках), и поэтому, запуская New-Partition или Format-Volume вы обладаете всеми необходимыми для этого правами. Если не проявлять должной осторожности, знакомство к этими командлетами может закончиться восстановлением компьютера. Вследствие этого, рекомендуется сначала должным образом ознакомиться с такими концепциями, как диски, тома и разделы.

Используем Windows PowerShell для работы с разделами

Разделы ассоциированы с дисками, так что первое, что мне нужно сделать, это получить список дисков, установленных в моем компьютере. Для этого я воспользуюсь функцией Get-Disk. Без указания параметров, функция выводит список всех дисков на моем компьютере.

15:56 C:\> get-disk

Number Friendly Name OperationalStatus Total Size PartitionStyle

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

0 INTEL SSDSA2BW160G3L Online 149.05 GB MBR

1 Kingston DataTraveler 2.0 USB Device Online 3.75 GB MBR

В соответствии с вышеприведенной информацией, в моем компьютере два диска. Диск с номером 0 – это Intel SSD на 149 Gb. Второй диск – это USB-диск Kingston на 3,75 Gb. Обладая этой информацией, я могу запустить функцию Get-Partition, чтобы узнать сколько разделов присутствует на диске 1.

15:59 C:\> Get-Partition -DiskNumber 1

Disk Number: 1

PartitionNumber DriveLetter Offset Size Type

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

1 E 65536 3.75 GB FAT32

Заметка: Нумерация дисков начинается с 0, нумерация разделов – с 1.

Для получения информации о конкретном разделе, укажите параметр –PartitionNumber.

15:59 C:\> Get-Partition -DiskNumber 1 -PartitionNumber 1

Disk Number: 1

PartitionNumber DriveLetter Offset Size Type

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

1 E 65536 3.75 GB FAT32

Удаление раздела

Для удаления раздела на определенном диске, используйте функцию Remove-Partition. При использовании этой функции необходимо указать номер диска и номер раздела. Эту информацию мы получили от функций Get-Disk и Get-Partition. По умолчанию, функция запрашивает подтверждение.

16:48 C:\> Remove-Partition -DiskNumber 1 -PartitionNumber 1

Confirm

Are you sure you want to perform this action?

This will erase all data on disk 1 partition 1.

[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help

(default is «Y»):y

16:49 C:\>

Запрос подтверждения можно отключить. Для этого укажите параметр –confirm со значением $false.

Remove-Partition -DiskNumber 1 -PartitionNumber 1 -Confirm:$false

Создание раздела

Для создания раздела используется функция New-Partition. Минимальный набор параметров – номер диска и размер раздела. Если я не знаю точного размера, я могу указать параметр –UseMaximumSize.

16:52 C:\> New-Partition -DiskNumber 1 -UseMaximumSize

Disk Number: 1

PartitionNumber DriveLetter Offset Size Type

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

1 E 65536 3.75 GB Logical

Для указания точного размера раздела я могу использовать следующие единицы измерения: байты, KB, MB, GB и TB. Если я не укажу единицу измерения, функция сочтет, что размер указан в байтах. Следующая команда создает раздел на диске 1 размером в 1 гигабайт.

17:11 C:\> New-Partition -DiskNumber 1 -Size 1GB

Disk Number: 1

PartitionNumber DriveLetter Offset Size Type

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

1 E 65536 1 GB Logical

Форматирование тома

Теперь мне нужно отформатировать том, созданный при добавлении раздела. Я могу указать букву диска или воспользоваться Windows PowerShell для получения необходимой информации. Я начну с функции Get-Disk для получения объекта диска с номером 1. Я уже знаю, что диск 1 – это тот диск, который мне нужен. Потом я передам этот объект функции Get-Partition и получу список всех разделов этого диска. Но я знаю, что на этом диске есть только один раздел. Я передам этот раздел функции Get-Volume для получения объекта тома. Его я передам функции Format-Volume, где укажу тип файловой системы и метку диска. Доступные для использования типы файловой системы: NTFS, ReFS, exFAT, FAT32 и FAT.

get-disk -Number 1 | Get-Partition | Get-Volume | Format-Volume -FileSystem fat32 -NewFileSystemLabel «newLabel»

Так как функция New-Partition возвращает объект раздела, я могу создать раздел и отформатировать том при помощи одной строки.

17:37 C:\> New-Partition -DiskNumber 1 -Size 1GB | Get-Volume | Format-Volume -FileSystem fat32

Confirm

Are you sure you want to perform this action?

Warning, all data on the volume will be lost!

[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help

(default is «Y»):y

DriveLetter FileSystemLabel FileSystem DriveType HealthStatus SizeRemaining Size

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

E FAT32 Removable Healthy 1020 MB 1020 MB

Если я хочу создать и отформатировать раздел без подтверждения, мне нужно указать параметр –confirm со значением $false.

17:40 C:\> New-Partition -DiskNumber 1 -Size 1GB | Get-Volume | Format-Volume -FileSystem fat32 -Confirm:$false

DriveLetter FileSystemLabel FileSystem DriveType HealthStatus SizeRemaining Size

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

E FAT32 Removable Healthy 1020 MB 1020 MB

Автор:

Ed Wilson, Microsoft Scripting Guy

Оригинал:

http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/06/weekend-scripter-messing-around-with-disks.aspx


Страницы в социальных сетях:

Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VKontakte: https://vk.com/inpowershell


Реклама

Written by Сергей Васин

Январь 7, 2013 в 15:32

Опубликовано в HeyScriptingGuyBlog, PowerShell

Tagged with

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s