У меня есть несколько томов (как сейчас почти все): в Windows они в конечном итоге указаны как C:, D: и так далее. Как я могу перечислить все это на Unix-машине с помощью "ls/mnt/" с Powershell?
Список всех устройств, разделов и томов в Powershell
Ответ 1
Чтобы получить все диски файловой системы, вы можете использовать следующую команду:
gdr -PSProvider 'FileSystem'
gdr
является псевдонимом для Get-PSDrive
, который включает все "виртуальные диски" для реестра и т.д.
Ответ 2
Get-Volume
вы получите: DriveLetter, FileSystemLabel, FileSystem, DriveType, HealthStatus, SizeRemaining и Size
Ответ 3
В Windows Powershell:
Get-PSDrive
[System.IO.DriveInfo]::getdrives()
wmic diskdrive
wmic volume
Также утилита dskwipe: http://smithii.com/dskwipe
dskwipe.exe -l
Ответ 4
Во-первых, в Unix вы используете mount
, а не ls /mnt
: многие вещи не установлены в /mnt
.
Во всяком случае, есть команда mountvol
DOS, которая продолжает работать в Powershell, и там определенная Powershell Get-PSDrive
.
Ответ 5
Это довольно старый, но я нашел следующее замечание:
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
Без фильтрующих свойств в моей тестовой системе 4319.4196мс до 1777.7237мс. Если мне не нужен объект PS-Drive, я буду придерживаться WMI.
EDIT: Я думаю, что у нас есть победитель: PS N: > (measure-command {[System.IO.DriveInfo]:: getdrives() |% {$ _. Name} | out-host}). To talmilliseconds 110.9819
Ответ 6
Хотя это не "powershell" специфический... вы можете легко перечислить диски и разделы с помощью 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
Ответ 7
У нас есть несколько томов на диск (некоторые из них монтируются в подкаталогах на диске). Этот код показывает список точек монтирования и томов. Очевидно, вы также можете извлечь свободное пространство и так далее:
gwmi win32_volume|where-object {$_.filesystem -match "ntfs"}|sort {$_.name} |foreach-object {
echo "$(echo $_.name) [$(echo $_.label)]"
}
Ответ 8
Запустите команду:
Get-PsDrive -PsProvider FileSystem
Для получения дополнительной информации см.:
Ответ 9
Функция PS: > get-psdrive