有没有办法判断磁盘是否有 GPT 或带有 powershell 的 MBR 分区?
4 回答
如果您使用的是 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 "*"}}
要确定任何磁盘是否具有 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
不,PowerShell 没有任何用于此的本机内置命令。顾名思义,PowerShell 是一个外壳程序。它带有一组很好的有用的通用 cmdlet,但像这样的专业化留给外部本机命令(如 diskpart)、模块和/或管理单元。
由于您总是会在找到 powershell 的地方找到 diskpart.exe,因此请使用它。
如果您打算单独使用 PowerShell,那么 WMI 可能会有所帮助。看一下输出:
PS> gwmi win32_partition | % { $_ | fl * }
-Oisin