Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

PowerShellを使ったディスク・パーティション管理の基本と実践テクニック

本記事では、PowerShellコンソールからディスク、パーティション、ボリュームを管理する方法を詳しく解説します。GUIの「ディスクの管理」(diskmgmt.msc)やコマンドラインツール「diskpart.exe」で行っていた操作は、すべてPowerShellから実行できます。

ディスク管理用のコマンドレットは、PowerShell 3.0以降に搭載されているStorageモジュールに含まれています。この記事では、ディスクの初期化、パーティションテーブルの作成、ボリュームの作成とフォーマットの手順を紹介します。以下のコマンドはWindows 10 / Server 2016およびWindows 8.1 / Server 2012 R2で動作します(それ以前のバージョンでは、先にPowerShellをアップデートする必要があります)。

Windows 10のStorageモジュールには約160個のコマンドレットが含まれています。ディスク管理に関連する利用可能なコマンド一覧を表示するには、次のコマンドを実行します。

Get-Command -Module Storage
注意:PowerShellでディスクやパーティションを操作する際は、データが入ったパーティションを誤って削除・フォーマットしないよう、十分に注意してください。

PowerShellでローカルディスクとパーティションの一覧を表示する

まず、システム上で利用可能なローカルディスクを論理レベルで一覧表示してみましょう。次のコマンドを実行します。

Get-Disk | ft -AutoSize

Windowsがインストールされているシステムディスクだけを抽出したい場合は、次のコマンドを使用します。

Get-Disk | Where-Object IsSystem -eq $True | fl

このコマンドを実行すると、システムディスクの以下のような属性情報が返されます(これらの属性は絞り込み条件としても利用できます)。

UniqueId : SCSI\DISK&VEN_VMWARE&PROD_VIRTUAL_DISK\5&1EC51BF7&0&000000:DESKTOP-JOPF9
Number : 0
Path : \\?\scsi#disk&ven_vmware&prod_virtual_disk#5&1ec42ba7&0&000000#{21f23456-a6bf-12d0-94f2-001efb8b}
Manufacturer : VMware
Model : Virtual disk
SerialNumber :
Size : 98 GB
AllocatedSize : 98432321434
LogicalSectorSize : 512
PhysicalSectorSize : 512
NumberOfPartitions : 2
PartitionStyle : MBR
IsReadOnly : False
IsSystem : True
IsBoot : True

オフライン状態のディスクのみを表示することもできます。

Get-Disk | Where-Object IsOffline –Eq $True| ft –AutoSize

物理ディスクの情報(PCに接続された物理ディスクの特性や状態)が必要な場合は、Get-PhysicalDiskコマンドレットを使用します。このコマンドレットは、記憶域スペース(Storage Spaces Direct)で障害が発生した物理ディスクの検出などにも活用できます。

接続されているディスクの種類も判別できます。SSD、HDD(通常はSATAバス接続)、USBフラッシュドライブ(UnSpecifiedメディアタイプ)などです。

DeviceId Model                      MediaType   BusType         Size
——— ——                      ———   ——-         —-
0        TOSHIBA MK3775VSXP         HDD         SATA    500156374016
1        Samsung SSD 840 PRO Series SSD         SATA    128060514304
2        Transcend                  UnSpecified USB     128169757184

すべてのディスク上のパーティション一覧を表示するには、次のコマンドを実行します。

Get-Partition

特定のディスクのパーティションのみを表示する場合はこちらです。

Get-Partition –DiskNumber 1,2

Windows上のすべてのボリュームの一覧を表示するには、次のコマンドを使用します。

Get-Volume

なお、ディスク番号は0から始まりますが、パーティション番号は1から始まる点に注意してください。

PowerShellによるディスクの初期化

前述の例では、あるディスクがオフライン状態で、パーティションスタイルがRAWと表示されていました。ここでは、そのディスクを初期化し、GPTまたはMBRのパーティションテーブルを作成して、新しいパーティションを作成してみましょう。

まず、ディスクをオンライン状態にする必要があります。

Get-Disk | Where-Object IsOffline –Eq $True | Set-Disk –IsOffline $False

続いて、ディスクを初期化します(インデックスは1)。

Initialize-Disk -Number 1

デフォルトではGPT(GUID)パーティションテーブルが作成されますが、MBRが必要な場合は次のコマンドを実行します。

Initialize-Disk 1 –PartitionStyle MBR

ディスクにデータが存在する場合でも、mbr2gpt.exeツールを使えばデータを削除せずにパーティションテーブルをMBRからGPTへ変換できます。

ディスク番号を指定したくない場合は、RAW状態のパーティションテーブルを持つすべてのディスクをまとめて初期化することも可能です。

Get-Disk | Where-Object PartitionStyle –Eq 'RAW' | Initialize-Disk

なお、パーティションテーブルが破損している場合もディスクはRAWステータスになることがあります。そのようなRAWディスクの場合は、パーティションテーブルやデータの復旧を試みてください。

ディスクにパーティションを作成する方法

新しいパーティションを作成するには、New-Partitionコマンドレットを使用します。ここでは10GBのパーティションを作成し、ドライブレター「L」を割り当ててみます。

New-Partition –DiskNumber 1 -Size 10gb -DriveLetter L

パーティションにディスクの空き領域をすべて使わせたい場合は、UseMaximumSize属性を指定します。ドライブレターを自動的に割り当てるにはAssignDriveLetterパラメータを使用します(まれにWindowsが自動的にドライブレターを割り当てないことがあります)。

New-Partition –DiskNumber 1 -AssignDriveLetter –UseMaximumSize

割り当てられたドライブレターは、次のコマンドで変更できます。

Set-Partition –DriveLetter L -NewDriveLetter U

既存のパーティションを拡張したい場合は、まず拡張に使用できる未割り当て領域のサイズを確認します。

Get-PartitionSupportedSize -DriveLetter L | Format-List

その後、パーティションを最大サイズまで拡張できます。

$MaxSize = (Get-PartitionSupportedSize -DriveLetter L).SizeMax
Resize-Partition -DriveLetter L -Size $MaxSize

パーティションをアクティブに設定したい場合は、次のコマンドを使用します。

Set-Partition -DriveLetter U -IsActive $true

PowerShellでパーティションをフォーマットする

作成した新しいパーティションをNTFSでフォーマットし、ボリュームラベル「DBData」を設定してみましょう。

Format-Volume -DriveLetter L -FileSystem NTFS -NewFileSystemLabel DBData -Confirm:$false

ディスクからパーティションを削除する方法

ディスク1と2のすべてのパーティションを確認なしで削除するには、次のコマンドを実行します。

Get-Partition –DiskNumber 1,2 | Remove-Partition -Confirm:$false

ディスク上のすべてのパーティションを削除し、データを完全に消去するには、次のコマンドを使用します。

Clear-Disk -Number 1 -RemoveData -Confirm:$false

ディスクにOEMパーティション(OEM回復パーティション、EFIパーティション、システム予約パーティションなど)が含まれている場合は、RemoveOEMパラメータを付けることでそれらも削除できます。

Clear-Disk -Number 1 -RemoveData –RemoveOEM

最後に、新しく接続されたRAWタイプのディスクをすべて検出して初期化し、パーティションテーブルを作成したうえで、最大サイズのNTFSパーティションを一括作成できるワンライナーコマンドを紹介します。新しいディスクを接続した際に非常に便利です。

Get-Disk |Where-Object PartitionStyle -eq 'RAW' |Initialize-Disk -PartitionStyle MBR -PassThru |New-Partition -AssignDriveLetter -UseMaximumSize |Format-Volume -FileSystem NTFS -Confirm:$false
  1. Windows 10/11で「ディスクの管理」を開く5つの方法を徹底解説

    「ディスクの管理」は、Microsoft Windowsに標準搭載されているツールで、パソコンに接続されたディスクドライブやパーティションの確認・管理を行えます。ハードディスクのパーティション分割、フォーマット、ドライブ文字の変更など、ディスク関連の操作を行いたい場合には、このツールを開く必要があります。しかし、このユーティリティには専用のショートカットやアイコンが用意されていないため、ここではWindows 10/11で「ディスクの管理」を開く複数の方法をご紹介します。 Windows 10/11でディスクの管理を開く5つの方法 1. Windows検索から開く 手順1: Windows +

  2. Windowsのディスクチェックツールでハードディスクのパーティションを検査・修復する方法

    はじめにディスクエラーは、特にメンテナンスが行き届いていない古いパソコンによく発生するトラブルです。幸いにも、Windowsにはシステムユーティリティの1つとしてディスクチェックツールが標準搭載されており、ハードディスクの各パーティションをスキャンして、不良セクタや失われたセクタ、破損したファイルを検出することができます。ディスクチェックユーティリティによって検出・修復されるファイルは、システムトラブルの原因となることが多く、放置すればするほど深刻化する恐れがあります。そのため、このツールの使い方をマスターし、定期的にディスクチェックを実行して、パソコンを悩ませる問題を早めに解決しておくことが