Existe-t-il un moyen de savoir si un disque a un GPT ou une partition MBR avec PowerShell?Détecter les partitions GPT et MBR avec Powershell
Répondre
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 "*"}}
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
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
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 .
Je regardais les appels de bibliothèque WMI ou .net. Je verrai à propos de l'analyse de la sortie de diskpart.exe – Josh
jetez un oeil à la sortie de: gwmi win32_partition | % {$ _ | fl *} – x0n
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