簡體   English   中英

使用Powershell檢測GPT和MBR分區

[英]Detect GPT and MBR partitions with Powershell

有沒有辦法判斷磁盤是否有帶PowerShell的GPT或MBR分區?

如果您使用的是Windows 8,Windows Server 2012或更高版本,則可以使用其中一個存儲cmdlet來檢查:

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 "*"}}

不,PowerShell沒有任何本機內置命令。 PowerShell,顧名思義,是一個shell。 它附帶了一組有用的通用cmdlet,但像這樣的專門化留給外部本機命令(如diskpart),模塊和/或管理單元。

由於您總是會找到找到powershell的diskpart.exe,因此請使用它。

如果您打算單獨使用PowerShell,那么WMI可能會有所幫助。 看一下輸出:

PS> gwmi win32_partition | % { $_ | fl * }

-Oisin

要查明是否有任何磁盤具有MBR或GPT,這非常簡單。啟動PowerShell。 運行.. diskpart,按ENTER鍵,運行..列表磁盤,按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,如果你的硬盤是動態的或分區表型分別為GPT。 我搜索了一段時間,足夠我的目的。 為了比較Josh使用WMI編寫的腳本輸出,這里是輸出..

DiskIndex                                     GPT
---------                                     ---
        0                                   False
        1                                   False
        2                                   False

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM