找回密码
 加入
搜索
查看: 9809|回复: 12

[系统综合] 请教关于WinPE下如何获取硬盘信息

  [复制链接]
发表于 2011-4-23 23:55:32 | 显示全部楼层 |阅读模式
悬赏45金钱已解决
本帖最后由 norby 于 2011-4-25 19:22 编辑

我就这么点钱,全拿出来了。

问题其实和AU3本身的关系不大,主要是PE环境和WMI的操作。

我的目的是要实现在PE下获取硬盘的详细信息,包括硬盘型号、全部分区、盘符、卷标、文件系统、容量、可用空间等信息,包括未指定盘符的分区及卷标,例如Win7下默认的100MB隐藏分区。
AU3内置的函数没法获取这些信息(好像是,反正帮助文件里面没查到)
我之前是使用WMI来获取信息,而且很麻烦,用了四个类,Win32_DiskDrive、Win32_logicaldisk、Win32_LogicalDiskToPartition、Win32_DiskPartition,不过最终也没实现获取未指定盘符的分区的卷标这个功能。
好不容易实现了部分功能,兴高采烈的放到PE下测试,结果只有Win32_DiskDrive对象能够使用,而且信息不全,比如硬盘型号就获取不到。其他的全都不能用。差点吐血。

我使用的是Win7 PE,版本号6.1。已经确认PE系统已经正常识别了所有的硬盘和分区。
我估计可能是因为PE下加载的WMI控件不完全,但是我又不会使用其他方法,所以悬赏求助。
方法不限,只要能达到目的。

另外,我是刨根问底儿栏目组的,所以希望大家不吝赐教,关于系统底层的线索越多越好。

敬谢!

最佳答案

查看完整内容

_WinAPI_GetDiskFreeSpaceEx _WinAPI_GetDriveBusType _WinAPI_GetDriveType _WinAPI_GetDriveGeometryEx _WinAPI_GetDriveNumber
发表于 2011-4-23 23:55:33 | 显示全部楼层
_WinAPI_GetDiskFreeSpaceEx
_WinAPI_GetDriveBusType
_WinAPI_GetDriveType
_WinAPI_GetDriveGeometryEx
_WinAPI_GetDriveNumber
 楼主| 发表于 2011-4-24 01:08:55 | 显示全部楼层
又是你!?
爱死你了!

不过好像还是不能获取隐藏分区和卷标
其实关键问题就在隐藏分区上,否则直接用DriveGetLabel之类的内置函数就够了。
而且WMI还能判断是否为引导区,这几点对于防止用户误将系统区格式化很重要,所以我才要极力实现这几个功能。
另外,_WinAPI_GetDriveGeometryEx在Win7下报错
我大致扫了一眼,_WinAPI函数里面,对获取磁盘信息的函数只有这么几个
发表于 2011-4-24 08:59:32 | 显示全部楼层
 楼主| 发表于 2011-4-24 11:37:08 | 显示全部楼层
WMI,头疼
API,头疼...
下载30块,头疼...
攒钱中...
 楼主| 发表于 2011-4-24 11:50:52 | 显示全部楼层
本帖最后由 norby 于 2011-4-24 11:56 编辑

先下载《纯AU3读硬盘分析分区 -返回数组 及卷.au3》
再下载《SetUI.au3》
再下载《SetupAPI.au3》
再下载《LocalSecurityAuthority.au3》
收费复收费,收费何其多......

我到不是抱怨什么,不过这种模式对AU3的发展真的利大于弊吗?
 楼主| 发表于 2011-4-24 11:53:22 | 显示全部楼层
最终结果是:
ReDim $Partition[UBound($Partition) - 1][5]
ReDim $Partition[^ ERROR

我自己慢慢刨坟吧,往祖坟上刨,先结账给分
 楼主| 发表于 2011-4-24 12:27:55 | 显示全部楼层
程序报错是因为我的笔记本上有读卡器,被识别为硬盘
而没有分区信息,导致程序在重新定义数组时出错。
即:ReDim $Partition[0][5]

继续刨坟,找隐藏分区的卷标......

评分

参与人数 1金钱 +50 收起 理由
3mile + 50 精神可嘉

查看全部评分

 楼主| 发表于 2011-4-24 12:50:01 | 显示全部楼层
之前不能用_WinAPI_GetDriveGeometryEx,是因为权限的原因...
Win7下万恶的账户控制...

顺便提醒一下大家,处理硬件信息一般都需要较高的权限,用Win7的用户别忘了使用“以管理员身份运行”
发表于 2011-4-24 13:57:20 | 显示全部楼层
_WinAPI_AdjustTokenPrivileges
发表于 2011-4-24 17:30:35 | 显示全部楼层
楼主的研究精神真的值得佩服。
 楼主| 发表于 2011-4-25 19:19:26 | 显示全部楼层
最终结果是【放弃】
工期太紧了,只得另辟捷径,在Win7 PE中加载完整版的WMI
但是太TMD不甘心了,有时间一定要恶补一下API

结贴前特别感谢一下3mile!
 楼主| 发表于 2011-4-25 19:23:06 | 显示全部楼层
为什么不能修改主题了?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-24 01:12 , Processed in 0.086406 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表