Как узнать размер свободного и занятого пространства диска в PowerShell
Get-Volume для просмотра свойств логических разделов дисков
Просмотреть объём свободного и занятого места каждого логического диска вы можете командлетом
Get-Volume
Значение полей следующее:
- DriveLetter — буква диска (или тома)
- FriendlyName — метка диска
- FileSystemType — тип файловой системы
- DriveType — тип диска (Fixed это постоянный диск, а Removable это съёмный диск, например, внешний USB диск или флешка)
- HealthStatus — статус здоровья
- OperationalStatus — статус работы
- SizeRemaining — оставшийся размер (свободное место на диске)
- Size — общий размер диска
Как узнать количество свободного места на определённом диске
Вы можете получить информацию о конкретном диске, для этого укажите его букву с опцией -DriveLetter:
Get-Volume -DriveLetter C
Как вывести только размер свободного места на диске
Если вам нужен только данные о свободном месте на диске, то используйте следующую конструкцию:
(Get-Volume -DriveLetter C).SizeRemaining
Предыдущая команда выведет размер свободной области к байтах, чтобы перевести в гигабайты и терабайты используйте следующие конструкции (не забудьте указать букву интересующего вас диска вместо «C»):
(Get-Volume -DriveLetter C).SizeRemaining/1GB (Get-Volume -DriveLetter C).SizeRemaining/1TB
Как просмотреть размер неразмеченных дисков
Диски с неразмеченными областями, например, новые диски или диски с неподдерживаемой файловой системой (например диски Linux) не отображаются предыдущими командами.
Смотрите также: Почему Windows не видит новый диск
Для просмотра размера всех дисков, в том числе без буквы, используйте команду:
Get-Disk
Вы увидите общий размер дисков, даже если они ещё не размечены.
Get-PSDrive – универсальный командлет для просмотра свойств всех типов дисков
Командлет Get-PSDrive получает диски в текущем сеансе. Вы можете получить конкретный диск или все диски в сеансе.
Этот командлет получает следующие типы дисков:
- Логические диски Windows на компьютере, включая диски, подключённые к общим сетевым ресурсам.
- Диски, предоставляемые поставщиками PowerShell (например, диски Certificate:, Function:, и Alias:), а также диски HKLM: и HKCU:, предоставляемые поставщиком реестра Windows PowerShell.
- Временные диски, указанные в сеансе, и постоянные подключённые сетевые диски, которые вы создаёте с помощью командлета New-PSDrive.
Начиная с Windows PowerShell 3.0, параметр Persist командлета New-PSDrive может создавать подключённые сетевые диски, которые сохраняются на локальном компьютере и доступны в других сеансах.
Кроме того, начиная с Windows PowerShell 3.0, когда к компьютеру подключается внешний диск, Windows PowerShell автоматически добавляет PSDrive в файловую систему, представляющую новый диск. Вам не нужно перезапускать Windows PowerShell. Точно так же, когда внешний диск отключается от компьютера, Windows PowerShell автоматически удаляет PSDrive, представляющий удалённый диск.
Итак, запустим Get-PSDrive без опций:
Get-PSDrive
Вывод довольно обширный, возможно не вся информация вам требуется.
Для сокращения выводимых данных можно указать интересующий диск:
Get-PSDrive C
Теперь проще разобраться и найти интересующие поля, связанные с количеством занятого и свободного пространства на диске:
- Used — использовано места на диске
- Free — свободно места на диске
Чтобы вывести информацию только о дисках файловой системы, используйте команду:
Get-PSDrive -PSProvider FileSystem
Чтобы вывести только информацию об используемом и свободном пространстве определённого диска выполните команду:
Get-PSDrive C | Select-Object Used,Free
Чтобы сделать вывод более читаемым (выведет только количество свободного пространства на диске):
Get-PSDrive C | Select-Object @{Expression={$_.Free/1GB}}
Следующая команда выведет количество свободного и используемого пространства на диске:
Get-PSDrive C | Select-Object @{Expression={$_.Free/1GB}},@{Expression={$_.Used/1GB}}
Для получения информации об используемом и свободном пространстве диска удалённого компьютера используйте следующую команду (необходим Powershell Remoting):
Invoke-Command -ComputerName SRV2 {Get-PSDrive C} | Select-Object PSComputerName,Used,Free
Связанные статьи:
- Замена chkdsk в PowerShell для исправления ошибок диска (100%)
- Как узнать текущий каталог в командной строке Windows. Аналог pwd в PowerShell (50%)
- Аналог cd и chdir в PowerShell. Как поменять текущую рабочую папку в PowerShell (50%)
- Как в PowerShell найти файлы большого размера (с помощью Get-Childitem) (50%)
- Как в PowerShell и Get-ChildItem найти только папки (50%)