Как получить информацию о жестких дисках с использованием PowerShell?

  • 23 августа 2023 г. 7:47
Ответы на вопрос 3
Для получения информации о типе диска (HDD или SSD) с использованием PowerShell, можно использовать класс Win32_PhysicalMedia. Вот пример кода:

```
# Получение полного названия системного диска
$systemDisk = (Get-WmiObject Win32_LogicalDisk | Where-Object {$_.DeviceID -eq "C:"}).VolumeName

# Получение информации о типе диска
$diskType = (Get-WmiObject -Namespace "root\CIMv2" -Class Win32_PhysicalMedia).MediaType

# Проверка, является ли системный диск HDD или SSD
if ($diskType -contains "Fixed hard disk media"){
    $diskType = "HDD"
}
elseif ($diskType -contains "Solid State Disk"){
    $diskType = "SSD"
}

# Вывод результатов
Write-Host "Полное название системного диска: $systemDisk"
Write-Host "Тип диска: $diskType"
```

Этот код будет выводить полное название системного диска и тип диска (HDD или SSD). Обратите внимание, что название системного диска будет отображаться только если диск имеет метку тома.
1. Метод, который позволяет определить, является ли SSD или нет, написан на языке C#.
2. Этот метод работает как с PowerShell версии 5.1, так и с версией 7.3.
3. Он не имеет никаких штрафов при поиске.
4. Для его работы требуются административные права, так как он использует функцию "Nominal media rotation rate".
5. Ниже приведен полный код метода, который можно скопировать для сохранности. Обратите внимание, что он не адаптирован для использования в PowerShell, его просто нужно вставить целиком.
- Показать вывод Get-Host или $PSVersionTable.
- Для обновления родного PowerShell в Windows 7 до версии 5.1, используйте кросс-платформенный вариант.
- Возможно использование VBScript для получения информации о дисковом пространстве.
- Рекомендуется обернуть код на VBScript в блок On Error Resume Next.
- Создайте объект WMI Service и используйте его для получения информации о дисковом пространстве.
- Используйте запрос "Select * from Win32_DiskDrive" для получения информации о дисковых устройствах.
- Для каждого полученного объекта Win32_DiskDrive выведите информацию о различных свойствах:
  - Доступность (Availability)
  - Байтов на сектор (BytesPerSector)
  - Возможности (Capabilities)
  - Описания возможностей (CapabilityDescriptions)
  - Название (Caption)
  - Метод сжатия (CompressionMethod)
  - Код ошибки менеджера конфигурации (ConfigManagerErrorCode)
  - Пользовательская конфигурация менеджера конфигурации (ConfigManagerUserConfig)
  - Имя класса создания (CreationClassName)
  - Размер блока по умолчанию (DefaultBlockSize)
  - Описание (Description)
  - Идентификатор устройства (DeviceID)
  - Очищены ошибки (ErrorCleared)
  - Описание ошибки (ErrorDescription)
  - Методология ошибки (ErrorMethodology)
  - Индекс (Index)
  - Дата установки (InstallDate)
  - Тип интерфейса (InterfaceType)
  - Последний код ошибки (LastErrorCode)
  - Производитель (Manufacturer)
  - Максимальный размер блока (MaxBlockSize)
  - Максимальный размер носителя (MaxMediaSize)
  - Загруженность носителя (MediaLoaded)
  - Тип носителя (MediaType)
  - Минимальный размер блока (MinBlockSize)
  - Модель (Model)
  - Имя (Name)
  - Необходимость очистки (NeedsCleaning)
  - Количество поддерживаемых носителей (NumberOfMediaSupported)
  - Разделы (Partitions)
  - Идентификатор PNP-устройства (PNPDeviceID)
  - Возможности управления питанием (PowerManagementCapabilities)
  - Поддержка управления питанием (PowerManagementSupported)
  - SCSI-шина (SCSIBus)
  - SCSI-логическое устройство (SCSILogicalUnit)
  - SCSI-порт (SCSIPort)
  - SCSI-идентификатор цели (SCSITargetId)
  - Секторов на дорожку (SectorsPerTrack)
  - Размер (Size)
  - Статус (Status)
  - Информация о состоянии (StatusInfo)
  - Имя класса создания системы (SystemCreationClassName)
  - Имя системы (SystemName)
  - Общее количество цилиндров (TotalCylinders)
  - Общее количество головок (TotalHeads)
  - Общее количество секторов (TotalSectors)
  - Общее количество дорожек (TotalTracks)
  - Дорожек на цилиндр (TracksPerCylinder)
Похожие вопросы