2010-10-01 3 views

Répondre

6

utilisant WMI

gwmi -query "Select * from Win32_DiskPartition WHERE Index = 0" | Select-Object DiskIndex, @{Name="GPT";Expression={$_.Type.StartsWith("GPT")}} 

En utilisant 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 "*"}} 
0

Non. PowerShell ne dispose pas de commandes intégrées natives pour cela. PowerShell, comme son nom l'indique, est un shell. Il est livré avec un bon ensemble de cmdlets génériques utiles mais la spécialisation comme celle-ci est laissée aux commandes natives externes (comme diskpart), aux modules et/ou aux snapins.

Puisque vous allez toujours trouver diskpart.exe où vous trouvez powershell, utilisez-le.

Si vous avez l'intention d'utiliser PowerShell seul, WMI pourrait peut-être vous aider. Jetez un oeil à la sortie:

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

-Oisin

+0

Je regardais les appels de bibliothèque WMI ou .net. Je verrai à propos de l'analyse de la sortie de diskpart.exe – Josh

+1

jetez un oeil à la sortie de: gwmi win32_partition | % {$ _ | fl *} – x0n

+3

Je pense que cette réponse est * techniquement * correcte, mais cela manque le but de la question. Je suggère d'incorporer votre commentaire dans votre réponse. – vmrob

0

Pour savoir si un disque a un MBR ou un GPT c'est très facile .. Démarrer powershell. Exécuter .. diskpart, appuyez sur ENTRÉE, exécutez .. liste disque, appuyez sur ENTRÉE. Voici ma sortie de l'ordinateur:

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 

Vous obtiendrez une entrée oui, je pense , pour Dyn ou GPT si votre disque est dynamique ou le type de table de partition est Gpt respectivement!. J'ai cherché pendant un certain temps et assez est suffisant pour mes fins. Pour comparer la sortie du script par Josh en utilisant WMI, voici la sortie ..

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

Si vous êtes sur Windows 8, Windows Server 2012 ou plus récent, vous pouvez utiliser l'un des applets de commande de stockage pour vérifier ceci:

Get-Disk 

la sortie de cette commande sera formaté comme:

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 

Notez que la colonne de droite indique le style de partition qui est la donnée que vous recherchez. Si vous utilisez Windows 7, Windows Server 2008 R2 ou une version antérieure, vous devez utiliser diskpart ou WMI pour obtenir ces informations. Je préfère utiliser diskpart. Type de

diskpart 

suivie

list disk 

La sortie ressemblera:

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 

Notez que le disque 0 et 1 sont les deux disques GPT, et ils ont un astérisque dans la colonne appropriée .