List all devices, partitions and volumes in Powershell

扶醉桌前 提交于 2019-12-02 18:46:34

To get all of the file system drives, you can use the following command:

gdr -PSProvider 'FileSystem' 

gdr is an alias for Get-PSDrive, which includes all of the "virtual drives" for the registry, etc.

Get-Volume

you will get: DriveLetter, FileSystemLabel, FileSystem, DriveType, HealthStatus, SizeRemaining and Size

On Windows Powershell:

Get-PSDrive  [System.IO.DriveInfo]::getdrives() wmic diskdrive wmic volume 

Also the utility dskwipe: http://smithii.com/dskwipe

dskwipe.exe -l 

Firstly, on Unix you use mount, not ls /mnt: many things are not mounted in /mnt.

Anyhow, there's the mountvol DOS command, which continues to work in Powershell, and there's the Powershell-specific Get-PSDrive.

This is pretty old, but I found following worth noting:

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 

Without filtering properties, on my test system, 4319.4196ms to 1777.7237ms. Unless I need a PS-Drive object returned, I'll stick with WMI.

EDIT: I think we have a winner: PS N:> (measure-command {[System.IO.DriveInfo]::getdrives()|%{$_.name}|out-host}).to‌​talmilliseconds 110.9819

Though this isn't 'powershell' specific... you can easily list the drives and partitions using diskpart, list volume

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 

We have multiple volumes per drive (some are mounted on subdirectories on the drive). This code shows a list of the mount points and volume labels. Obviously you can also extract free space and so on:

gwmi win32_volume|where-object {$_.filesystem -match "ntfs"}|sort {$_.name} |foreach-object {   echo "$(echo $_.name) [$(echo $_.label)]" } 

Run command:

Get-PsDrive -PsProvider FileSystem 

For more info see:

streetparade

PS Function:> get-psdrive

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!