6

有没有办法判断磁盘是否有 GPT 或带有 powershell 的 MBR 分区?

4

4 回答 4

10

如果您使用的是 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 磁盘,它们在相应的列中有一个星号。

于 2016-02-29T02:35:45.783 回答
7

使用 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 "*"}}
于 2010-10-01T19:37:40.697 回答
0

要确定任何磁盘是否具有 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。我搜索了一段时间,对于我的目的来说已经足够了。为了比较 Josh 使用 WMI 的脚本输出,这里是输出..

DiskIndex                                     GPT
---------                                     ---
        0                                   False
        1                                   False
        2                                   False
于 2011-11-22T18:10:14.423 回答
-1

不,PowerShell 没有任何用于此的本机内置命令。顾名思义,PowerShell 是一个外壳程序。它带有一组很好的有用的通用 cmdlet,但像这样的专业化留给外部本机命令(如 diskpart)、模块和/或管理单元。

由于您总是会在找到 powershell 的地方找到 diskpart.exe,因此请使用它。

如果您打算单独使用 PowerShell,那么 WMI 可能会有所帮助。看一下输出:

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

-Oisin

于 2010-10-01T18:21:12.203 回答