首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用powershell检查硬盘是eide还是sata

如何使用powershell检查硬盘是eide还是sata
EN

Stack Overflow用户
提问于 2011-03-19 20:56:02
回答 4查看 11K关注 1票数 1

我想知道是否有任何win32类可以检测硬盘是eide还是sata。提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-19 21:53:30

没有直接的方法可以找到它。但是,您可以使用Win32的标题属性

_

DiskDrive并对其进行解析,以查看您是否有ATA盘或SCSI盘。在我的系统上,SATA磁盘有一个标题

..。

执行此操作的方法是:

代码语言:javascript
复制
Get-WMIObject -Class Win32_DiskDrive | Select Caption, Index

您可以解析

属性以查找它是否包含ATA或SCSI。

票数 2
EN

Stack Overflow用户

发布于 2011-03-19 23:10:26

中提到的

其他答案

驱动器的标题(即型号名称)可能包含此信息,您可以导航WMI对象关联,直到您到达具有更明确的名称/标题/其他属性的设备。

保持

使用视图打开|在开发时通过连接打开设备将使事情变得更容易。

导航WMI对象图的关键是

“联营公司”

查询。

因此(使用大量的别名和其他快捷方式来简化这一点:我会在我计划重用的东西中避免这种情况):

代码语言:javascript
复制
gwmi win32_DiskDrive |
  %{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)} where resultclass = Win32_PnpEntity"}

将会得到

每个磁盘驱动器的。

在第一个(出于探索目的)磁盘驱动器上对另一个级别重复此操作,以找出存在哪种关联:

代码语言:javascript
复制
gwmi win32_DiskDrive |
  %{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)} where resultclass = Win32_PnpEntity" |
    %{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)}"}} | fl __CLASS,__RELPATH

显示了WMI类的混合:

代码语言:javascript
复制
__CLASS   : Win32_SystemDriver
__RELPATH : Win32_SystemDriver.Name="disk"

__CLASS   : Win32_ComputerSystem
__RELPATH : Win32_ComputerSystem.Name="hostname"

__CLASS   : Win32_IDEController
__RELPATH : Win32_IDEController.DeviceID="PCIIDE\\IDECHANNEL\\4&5ECF4F&0&2"

__CLASS   : CIM_DataFile
__RELPATH : CIM_DataFile.Name="c:\\windows\\system32\\drivers\\disk.sys"

__CLASS   : Win32_DiskDrive
__RELPATH : Win32_DiskDrive.DeviceID="\\\\.\\PHYSICALDRIVE0"

最后一个就是回到磁盘驱动器,每个设备都与一个计算机系统相关联。但那就是

对象看起来很有趣。

它有一个

属性的值,但这里的所有实例都是37 ("IDE"),并且两个控制器通道都有实例

控制器:

代码语言:javascript
复制
PS[64bit] C:\bin\PowerShell> gwmi win32_idecontroller | ft -auto -wrap caption,description

caption                                  description
-------                                  -----------
ATA Channel 1                            IDE Channel
ATA Channel 0                            IDE Channel
ATA Channel 1                            IDE Channel
Standard AHCI 1.0 Serial ATA Controller  Standard AHCI 1.0 Serial ATA Controller
Standard AHCI 1.0 Serial ATA Controller  Standard AHCI 1.0 Serial ATA Controller
Standard Dual Channel PCI IDE Controller Standard Dual Channel PCI IDE Controller
ATA Channel 0                            IDE Channel
ATA Channel 1                            IDE Channel
ATA Channel 2                            IDE Channel
ATA Channel 3                            IDE Channel
ATA Channel 4                            IDE Channel
ATA Channel 5                            IDE Channel
ATA Channel 0                            IDE Channel

所以这不会像到达一个

..。

返回并扩展

关联于

对于我的磁盘:

代码语言:javascript
复制
gwmi win32_DiskDrive |
  %{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)} where resultclass = Win32_PnpEntity" |
    %{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)}  where resultclass = Win32_IDEController"}} |
  fl Caption,Description
代码语言:javascript
复制
caption     : ATA Channel 2
description : IDE Channel

这就是SATA通道,该通道会与控制器关联吗?和简化:

不需要内部管道:

代码语言:javascript
复制
gwmi win32_DiskDrive |
  %{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)} where resultclass = Win32_PnpEntity"} |
  %{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)}  where resultclass = Win32_IDEController"} |
  %{gwmi -query "ASSOCIATORS OF {$($_.__RELPATH)}  where resultclass = Win32_IDEController"} |
  fl __CLASS,__RELPATH.Caption,Description

这一步什么也没有找到,只是稍微探索一下(捕获

从一个查询粘贴到另一个查询以控制流水线)表示以下关联:

代码语言:javascript
复制
DiskDrive --> PnpDevice --> IDEContoller --> PnpDevice --> IDEController

应该会得到结果。避免循环(因为IDEController有两个关联的PnpDevice对象)留作练习。

一旦到达真正的控制器,将需要解析标题。

坏消息

重复查询另一个系统上的控制器,得到以下三个实例

尽管有

四个

控制器(1个IDE和3个SATA),这可能与其中一个作为RAID运行的非平凡映射有关?

当然,SATA本质上具有与IDE相同的逻辑(编程)接口,以使新的硬件与软件协同工作( PCI和PCI-Express也是如此),这意味着操作系统实际上不需要知道。

票数 9
EN

Stack Overflow用户

发布于 2021-02-28 04:10:42

我知道,这个任务有点老了,但是使用另一个WMI对象怎么样:

代码语言:javascript
复制
Get-WmiObject -Class MSFT_PhysicalDisk -Namespace root\Microsoft\Windows\Storage  | Select FriendlyName, MediaType, BusType

BusType 2代表ATAPI,3代表ATA,11代表SATA。更多的是USB、SCSI或SSD。据维基百科

https://en.wikipedia.org/wiki/Parallel

_

ATA

ATA和ATAPI都是硬盘的并行接口(IDE / EIDE)。

据我所知,这个对象从Windows7开始就可以使用了,并提供了许多有趣的价值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5362199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档