Предполагается, что Windows 10, так как вы не упомянули ОС и CMDLETS в Windows 10, намного лучше.* См. Внизу версию для Windows 7.
Для информации о диске я предпочитаю использовать Get-PhysicalDisk, например, например:
$DiskInfo = foreach ($disk in Get-PhysicalDisk) {
[string]$name = $disk.FriendlyName
[string]$type = $disk.MediaType
[int]$capacity = $disk.size / 1GB
[pscustomobject]@{
"Type"=$type;
"Name"=$name;
"Capacity (GB)"=$capacity;
}
}
$DiskInfo
В моем окружении, где у меня есть один SSDи один механический жесткий диск вернет:
Name Type Capacity (GB)
---- ---- -------------
SAMSUNG MZ7TY256HDHP-000L7 SSD 238
ST500LX025-1U717D HDD 466
Если вы хотели получить информацию только для SSD, например, вы можете сделать это:
$DiskInfo = foreach ($disk in Get-PhysicalDisk | Where-Object {$_.MediaType -eq "SSD"} ) {
[string]$name = $disk.FriendlyName
[string]$type = $disk.MediaType
[int]$capacity = $disk.size / 1GB
[pscustomobject]@{
"Type"=$type;
"Name"=$name;
"Capacity (GB)"=$capacity;
}
}
$DiskInfo
, который возвращает только SSD:
Type Name Capacity (GB)
---- ---- -------------
SSD SAMSUNG MZ7TY256HDHP-000L7 238
Объяснение: Подключен диск Foreach, имя хранилища, тип носителя и емкость в переменных.* Разделите емкость байта на 1 ГБ, чтобы получить лучшее число для просмотра.По-прежнему в Foreach создайте пользовательский объект на каждой итерации, содержащий 3 переменные.
Все вместе, вы можете затем вывести свою переменную DiskInfo, которая содержит все объекты.
Если в Windows 7Тип носителя недоступен, поэтому вы не можете его использовать.Вместо этого вы можете сделать:
$DiskInfo = foreach ($disk in Get-WmiObject -Class Win32_DiskDrive) {
[string]$name = $disk.model
[int]$capacity = $disk.size / 1GB
[pscustomobject]@{
"Name"=$name;
"Capacity (GB)"=$capacity;
}
}
$DiskInfo
, который будет возвращать что-то вроде:
Name Capacity (GB)
---- -------------
SAMSUNG MZ7TY256HDHP-000L7 238
ST500LX025-1U717D 466