有没有办法判断磁盘是否有带PowerShell的GPT或MBR分区?
答案 0 :(得分:6)
使用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 "*"}}
答案 1 :(得分:6)
如果您使用的是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磁盘,并且在相应的列中有星号。
答案 2 :(得分:0)
没有。 PowerShell没有任何本机内置命令。 PowerShell,顾名思义,是一个shell。它附带了一组有用的通用cmdlet,但像这样的专门化留给外部本机命令(如diskpart),模块和/或管理单元。
由于您总是会找到找到powershell的diskpart.exe,请使用它。
如果您打算单独使用PowerShell,那么WMI可能会有所帮助。看看输出:
PS> gwmi win32_partition | % { $_ | fl * }
-Oisin
答案 3 :(得分:0)
要了解任何磁盘是否有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,那么对于Dyn或Gpt,您将获得一个yes条目,我认为 !, 我搜索了一段时间,足够我的目的。为了比较Josh使用WMI编写的脚本输出,这里是输出..
DiskIndex GPT
--------- ---
0 False
1 False
2 False