ディスクに PowerShell を使用した GPT パーティションまたは MBR パーティションがあるかどうかを確認する方法はありますか?
4 に答える
Windows 8、Windows Server 2012、またはそれ以降を使用している場合は、ストレージ コマンドレットのいずれかを使用してこれを確認できます。
Get-Disk
このコマンドの出力は、次のようにフォーマットされます。
PS C:\> Get-Disk
Number Friendly Name OperationalStatus Total Size Partition Style
------ ------------- ----------------- ---------- ---------------
0 Microsoft Virtual Disk Online 42 GB GPT
1 Microsoft Virtual Disk Online 1 GB GPT
2 Microsoft Virtual Disk Offline 2 GB RAW
3 Microsoft Virtual Disk Offline 3 GB RAW
右端の列は、探しているデータであるパーティション スタイルを示していることに注意してください。
Windows 7、Windows Server 2008 R2、またはそれ以前を使用している場合は、diskpart または WMI を使用してこの情報を取得する必要があります。私はdiskpartを使用することを好みます。タイプ
diskpart
に続く
list disk
出力は次のようになります。
PS C:\> diskpart
Microsoft DiskPart version 6.3.9600
Copyright (C) 1999-2013 Microsoft Corporation.
On computer: WIN-BN8G3VMNQ9T
DISKPART> list disk
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online 42 GB 0 B *
Disk 1 Online 1024 MB 991 MB *
Disk 2 Offline 2048 MB 2048 MB
Disk 3 Offline 3072 MB 3072 MB
ディスク 0 と 1 はどちらも GPT ディスクであり、適切な列にアスタリスクがあることに注意してください。
WMI の使用
gwmi -query "Select * from Win32_DiskPartition WHERE Index = 0" | Select-Object DiskIndex, @{Name="GPT";Expression={$_.Type.StartsWith("GPT")}}
Diskpart の使用
$a = "list disk" | diskpart
$m = [String]::Join("`n", $a) | Select-String -Pattern "Disk (\d+).{43}(.)" -AllMatches
$m.Matches | Select-Object @{Name="DiskIndex";Expression={$_.Groups[1].Value}}, @{Name="GPT";Expression={$_.Groups[2].Value -eq "*"}}
ディスクに MBR または GPT があるかどうかを確認するには、これは非常に簡単です.. powershell を起動します。実行.. diskpart 、ENTER を押し、実行.. list disk 、ENTER を押します。これが私のコンピューターの出力です:
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online 232 GB 1024 KB
Disk 1 Online 465 GB 1024 KB
Disk 2 Online 3820 MB 0 B
ディスクが動的である場合、またはパーティションテーブルタイプがそれぞれ Gpt である場合、Dyn または Gpt に対してyes エントリが得られると思います。私はしばらく探しましたが、私の目的には十分です。Josh が WMI を使用してスクリプトの出力を比較するために、出力を次に示します。
DiskIndex GPT
--------- ---
0 False
1 False
2 False
いいえ。PowerShellには、このためのネイティブの組み込みコマンドはありません。PowerShellは、その名前が示すように、シェルです。便利で汎用的なコマンドレットの優れたセットが付属していますが、このような特殊化は、外部のネイティブコマンド(diskpartなど)、モジュール、スナップインに任されています。
powershellが見つかるdiskpart.exeは常に見つかるので、それを使用します。
PowerShellを単独で使用する場合は、おそらくWMIが役立つ可能性があります。次の出力を見てください。
PS> gwmi win32_partition | % { $_ | fl * }
-オシーン