Liste de tous les périphériques, partitions et volumes dans Powershell
j'ai plusieurs volumes (comme presque tout le monde de nos jours): sur Windows ils finissent par être spécifiés en C:, D: et ainsi de suite. Comment puis-je les lister sur une machine Unix avec "ls /mnt/" avec Powershell?
8 réponses
Pour obtenir tous les système de fichiers des disques, vous pouvez utiliser la commande suivante:
gdr -PSProvider 'FileSystem'
gdr
est un alias pour Get-PSDrive
, qui inclut tous les "disques virtuels" pour le registre, etc.
Get-Volume
vous obtiendrez: DriveLetter, FileSystemLabel, FileSystem, DriveType, HealthStatus, SizeRemaining et Size
Sur Windows Powershell:
Get-PSDrive
[System.IO.DriveInfo]::getdrives()
wmic diskdrive
wmic volume
aussi l'utilitaire dskwipe:http://smithii.com/dskwipe
dskwipe.exe -l
tout D'abord, sur Unix vous utilisez mount
, pas ls /mnt
: beaucoup de choses ne sont pas montés dans /mnt
.
de toute façon, il y a le mountvol
la commande DOS, qui continue à fonctionner en Powershell, et il y a la commande spécifique à la Powershell Get-PSDrive
.
C'est assez vieux, mais je trouve intéressant de noter:
PS N:\> (measure-command {Get-WmiObject -Class Win32_LogicalDisk|select -property deviceid|%{$_.deviceid}|out-host}).totalmilliseconds
...
928.7403
PS N:\> (measure-command {gdr -psprovider 'filesystem'|%{$_.name}|out-host}).totalmilliseconds
...
169.474
sans propriétés de filtrage, sur mon système d'essai, 4319.4196 ms à 1777.7237 ms. Sauf si j'ai besoin d'un objet PS-Drive retourné, je vais rester avec WMI.
modifier: Je pense que nous avons un gagnant: PS N:> (mesure-commande {[Système.IO.DriveInfo]::getdrives()|%{$_.nom}|accueil}).totalmilliseconds 110.9819
bien que ce ne soit pas spécifique à "powershell"... vous pouvez facilement lister les lecteurs et les partitions en utilisant diskpart, le volume de liste
PS C:\Dev> diskpart
Microsoft DiskPart version 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
On computer: Box
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 D DVD-ROM 0 B No Media
Volume 1 C = System NTFS Partition 100 MB Healthy System
Volume 2 G C = Box NTFS Partition 244 GB Healthy Boot
Volume 3 H D = Data NTFS Partition 687 GB Healthy
Volume 4 E System Rese NTFS Partition 100 MB Healthy
nous avons plusieurs volumes par lecteur (certains sont montés sur des sous-répertoires sur le lecteur). Ce code affiche une liste des points de montage et des étiquettes de volume. Évidemment, vous pouvez aussi extraire l'espace libre et ainsi de suite:
gwmi win32_volume|where-object {$_.filesystem -match "ntfs"}|sort {$_.name} |foreach-object {
echo "$(echo $_.name) [$(echo $_.label)]"
}