[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 如何通过powershell中的wmi相关命令判断硬盘类型

本帖最后由 meixi 于 2024-8-11 21:40 编辑

如何通过powershell中的wmi相关命令判断硬盘类型, 和内存类型, 例如:
硬盘类型: sata, nvme
内存类型: ddr2, ddr3, ddr4

用ai都没有答对:
  1. # 硬盘类型
  2. Get-WmiObject -Class Win32_DiskDrive | Select-Object Model, InterfaceType
  3. # 内存类型
  4. Get-WmiObject -Class Win32_PhysicalMemory | ForEach-Object {
  5.     $memoryType = switch ($_.SMBIOSMemoryType) {
  6.         20 { "DDR" }
  7.         21 { "DDR2" }
  8.         22 { "DDR2 FB-DIMM" }
  9.         24 { "DDR3" }
  10.         26 { "DDR4" }
  11.         Default { "Unknown" }
  12.     }
  13.     [PSCustomObject]@{
  14.         Manufacturer = $_.Manufacturer
  15.         Capacity     = ($_.Capacity / 1GB) -as [int]
  16.         MemoryType   = $memoryType
  17.     }
  18. }
复制代码

回复 4# meixi


    试试用diskpart 不过得系统认识硬盘

TOP

PS不会。bat倒是调用diskpart可以查看接口是否sata
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=2 delims= " %%n in ('echo list disk^|diskpart') do set n=%%n
  3. for /l %%i in (0,1,%n%) do (
  4.     echo.&set l=0
  5.     for /f "delims=" %%a in ('^(echo select disk %%i ^&echo detail disk^)^|diskpart') do (
  6.         set /a l+=1
  7.         if !l! == 7 echo %%a
  8.         if !l! == 9 echo %%a
  9.     )
  10. )
  11. pause
复制代码

TOP

本帖最后由 aloha20200628 于 2024-8-12 14:51 编辑

回复 4# meixi
  1. (Get-WmiObject -Class Win32_DiskDrive).InterfaceType
  2. #或直接调用 wmic 功能
  3. wmic diskdrive get 'interfacetype,model'
复制代码

cmd窗口一行流
  1. wmic diskdrive get interfacetype,model
复制代码

TOP

回复 3# Five66


    我主要是想知道, 硬盘是sata, 还是nvme接口, 应该有更好的方法

TOP

貌似要windows powershell

硬盘 , 看名字
(Get-WmiObject -Class Win32_DiskDrive).model

内存 , 看速度
(Get-WmiObject -Class Win32_PhysicalMemory).speed

TOP

硬盘
  1. Get-PhysicalDisk | Format-List
复制代码

TOP

返回列表