无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 12146|回复: 40
打印 上一主题 下一主题

为pe添加右键imdisk功能

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-12 22:07:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
新版pecmd支持imdisk虚拟磁盘。
我把它集成到了pe中。另外增加了右键功能。效果图如下:






做法:
首先是添加imdisk.cpl到system32文件夹下,把imdisk.sys添加到system32下的driver文件夹下。
然后是在我的REGDOC.CMD中添加如下语句:
rem 注册imdisk虚拟磁盘
reg add "HKCR\Drive\shell\ImDiskSaveImage" /f /ve /t REG_SZ /d "保存ImDisk虚拟磁盘"
reg add "HKCR\Drive\shell\ImDiskSaveImage\command" /f /ve /t REG_SZ /d "rundll32.exe imdisk.cpl,RunDLL_SaveImageFile %%L"
reg add "HKCR\Drive\shell\ImDiskUnmount" /f /ve /t REG_SZ /d "卸载ImDisk虚拟磁盘"
reg add "HKCR\Drive\shell\ImDiskUnmount\command" /f /ve /t REG_SZ /d "rundll32.exe imdisk.cpl,RunDLL_RemoveDevice %%L"
reg add "HKLM\SOFTWARE\Classes\Ultraiso\shell\ImDiskMountFile" /f /ve /t REG_SZ /d "加载ImDisk虚拟磁盘"
reg add "HKLM\SOFTWARE\Classes\Ultraiso\shell\ImDiskMountFile\command" /f /ve /t REG_SZ /d "rundll32.exe imdisk.cpl,RunDLL_MountFile %%L"
reg add "HKLM\SOFTWARE\Classes\Winimage\shell\ImDiskMountFile" /f /ve /t REG_SZ /d "加载ImDisk虚拟磁盘"
reg add "HKLM\SOFTWARE\Classes\Winimage\shell\ImDiskMountFile\command" /f /ve /t REG_SZ /d "rundll32.exe imdisk.cpl,RunDLL_MountFile %%L"
2#
 楼主| 发表于 2009-3-12 22:09:26 | 只看该作者
这个右键可以生成许多盘符,也能够很方便的卸载掉。
不过我奇怪的是:论坛好像有网友说是要把imdsksvc.exe、imdisk.exe集成进去,为什么我没有加进去一样可以用?
那个imdsksvc.exe又是做什么用?

imdisk.rar (29.57 KB, 下载次数: 407)
附一个汉化版的imdisk.cpl。版本是1.1.3.刚刚汉化的,借用了不知名的大侠的汉化成果。极少地方没有汉化,应该不影响使用。

[ 本帖最后由 yidawpf 于 2009-3-12 22:14 编辑 ]
回复

使用道具 举报

3#
发表于 2009-3-12 22:12:21 | 只看该作者
LZ先进了一步.学习了.
回复

使用道具 举报

4#
发表于 2009-3-12 22:30:27 | 只看该作者
谢谢分享,试试看了。
回复

使用道具 举报

5#
发表于 2009-3-12 22:35:17 | 只看该作者
考虑了下.仅上述步骤.可以吗.

注册表文件.不改?
回复

使用道具 举报

6#
 楼主| 发表于 2009-3-12 22:48:10 | 只看该作者
原帖由 66369 于 2009-3-12 22:35 发表
考虑了下.仅上述步骤.可以吗.

注册表文件.不改?

我的一级内核已经添加了老九提供的注册表文件。
所以我不清楚是不是必须的。
回复

使用道具 举报

7#
发表于 2009-3-13 08:40:06 | 只看该作者
汉化的IMDISK.CPL收下了,谢谢分享
回复

使用道具 举报

8#
发表于 2009-3-13 08:53:20 | 只看该作者
这是个好东西,谢谢楼主了!
回复

使用道具 举报

9#
 楼主| 发表于 2009-3-13 09:05:17 | 只看该作者
原帖由 chenall 于 2009-3-13 08:40 发表
汉化的IMDISK.CPL收下了,谢谢分享

您是无忧我非常佩服的一位大侠。您对imdisk的研究也比较早。
能够回答我2楼的问题吗?
回复

使用道具 举报

10#
发表于 2009-3-13 09:58:02 | 只看该作者
IMDISKSVC.EXE我也不知是是作什么用的.在我的PE中也没有集成这个文件.
IMDISK.EXE相当于IMDISK.CPL的命令行程序.
回复

使用道具 举报

11#
 楼主| 发表于 2009-3-13 10:41:05 | 只看该作者
原帖由 chenall 于 2009-3-13 09:58 发表
IMDISKSVC.EXE我也不知是是作什么用的.在我的PE中也没有集成这个文件.
IMDISK.EXE相当于IMDISK.CPL的命令行程序.

谢谢指导!
回复

使用道具 举报

12#
发表于 2009-3-13 11:22:07 | 只看该作者
不错,回去也加进去......
回复

使用道具 举报

13#
发表于 2009-3-13 12:57:32 | 只看该作者
原帖由 chenall 于 2009-3-13 08:40 发表
汉化的IMDISK.CPL收下了,谢谢分享


nn2nn以前发过一个imdisk.wim组件,XP、PE通用,点击即可用,也支持右键加载、卸载、保存虚拟磁盘。但IMDISK.CPL没有汉化。
楼主提供的汉化IMDISK.CPL也收下了,谢谢分享。
回复

使用道具 举报

14#
 楼主| 发表于 2009-3-13 13:03:05 | 只看该作者
这个还是有部分内容没有汉化,主要是我用资源黑客修改的时候没有看到那些英语,不知道怎么汉化其余部分。
回复

使用道具 举报

15#
发表于 2009-3-13 13:04:01 | 只看该作者
呵呵 看起来最近imdisk开始流行起来了
谢谢楼主分享
回复

使用道具 举报

16#
发表于 2009-3-13 13:38:01 | 只看该作者
原帖由 yidawpf 于 2009-3-12 22:09 发表
这个右键可以生成许多盘符,也能够很方便的卸载掉。
不过我奇怪的是:论坛好像有网友说是要把imdsksvc.exe、imdisk.exe集成进去,为什么我没有加进去一样可以用?
那个imdsksvc.exe又是做什么用?

56266
...


imdsksvc.exe是一个叫做Helper service for ImDisk Virtual Disk Driver.的服务,应该没什么用的

下面是imdisk.inf的内容:

[Version]
signature = "$Windows NT$"
Provider = "Olof Lagerkvist"
DriverVer = 05/30/2007,1,00,03,0009


[SourceDisksNames]
1 = "ImDisk Virtual Disk Driver Installation disk"


[SourceDisksFiles.x86]
imdisk.sys = 1,sys\i386
imdsksvc.exe = 1,svc\i386
imdisk.cpl = 1,cpl\i386
imdisk.exe = 1,cli\i386
imdisk.inf = 1


[SourceDisksFiles.ia64]
imdisk.sys = 1,sys\ia64
imdsksvc.exe = 1,svc\ia64
imdisk.cpl = 1,cpl\ia64
imdisk.exe = 1,cli\ia64
imdisk.inf = 1


[SourceDisksFiles.amd64]
imdisk.sys = 1,sys\amd64
imdsksvc.exe = 1,svc\amd64
imdisk.cpl = 1,cpl\amd64
imdisk.exe = 1,cli\amd64
imdisk.inf = 1


[DestinationDirs]
ImDiskExeFiles = 11
ImDiskSysFiles = 12
ImDiskInfFiles = 17


[DefaultInstall.NT]
CopyFiles = ImDiskSysFiles, ImDiskExeFiles, ImDiskInfFiles
AddReg = ImDiskAddReg
DelReg = ImDiskDelOldReg


[DefaultUninstall.NT]
DelFiles = ImDiskSysFiles, ImDiskExeFiles, ImDiskInfFiles
DelReg = ImDiskDelReg


[DefaultInstall.NT.Services]
AddService = ImDisk, , ImDskDrv
AddService = ImDskSvc, , ImDskSvc


[DefaultUninstall.NT.Services]
DelService = ImDisk
DelService = ImDskSvc


[ImDiskExeFiles]
imdisk.exe
imdisk.cpl
imdsksvc.exe


[ImDiskSysFiles]
imdisk.sys


[ImDiskInfFiles]
imdisk.inf


[ImDiskAddReg]
HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ImDisk", "DisplayName", 0, "ImDisk Virtual Disk Driver"
HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ImDisk", "UninstallString", 0, "rundll32.exe setupapi.dll,InstallHinfSection DefaultUninstall 132 %17%\imdisk.inf"
HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ImDisk", "DisplayIcon", 0, "%11%\imdisk.cpl"
HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ImDisk", "EstimatedSize", 65537, 3635
HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ImDisk", "Size", 0, ""

HKCR, "*\shell\ImDiskMountFile", , 0, "Mount as ImDisk Virtual Disk"
HKCR, "*\shell\ImDiskMountFile\command", , 0, "rundll32.exe imdisk.cpl,RunDLL_MountFile %%L"

HKCR, "Drive\shell\ImDiskUnmount", , 0, "Unmount ImDisk Virtual Disk"
HKCR, "Drive\shell\ImDiskUnmount\command", , 0, "rundll32.exe imdisk.cpl,RunDLL_RemoveDevice %%L"

HKCR, "Drive\shell\ImDiskSaveImage", , 0, "Save disk contents as image file"
HKCR, "Drive\shell\ImDiskSaveImage\command", , 0, "rundll32.exe imdisk.cpl,RunDLL_SaveImageFile %%L"


[ImDiskDelOldReg]
HKCR, "*\shell\ImDiskMountFileWriteable"


[ImDiskDelReg]
HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ImDisk"

HKCR, "*\shell\ImDiskMountFile"

HKCR, "*\shell\ImDiskMountFileWriteable"

HKCR, "Drive\shell\ImDiskUnmount"

HKCR, "Drive\shell\ImDiskSaveImage"


[ImDskDrv]
DisplayName = "ImDisk Virtual Disk Driver"
Description = "Disk emulation driver"
ServiceType = 1
StartType = 3
ErrorControl = 0
ServiceBinary = %12%\imdisk.sys


[ImDskSvc]
DisplayName = "ImDisk Virtual Disk Driver Helper"
Description = "Helper service for ImDisk Virtual Disk Driver."
ServiceType = 16
StartType = 3
ErrorControl = 0
ServiceBinary = %11%\imdsksvc.exe
回复

使用道具 举报

17#
发表于 2009-3-13 13:41:32 | 只看该作者
看来对于启动后自动加载是有用的吧
回复

使用道具 举报

18#
发表于 2009-3-13 13:53:59 | 只看该作者
刚刚去主页看了一下,原来这个是有用的,下面是原文及机器翻译的内容:

The install package also contains a user-mode helper service that enables the virtual disk driver to forward I/O requests to other computers on the network.

安装包中还包含一个用户模式的辅助服务,使虚拟磁盘驱动着I / O请求到网络上的其他计算机。
回复

使用道具 举报

19#
 楼主| 发表于 2009-3-13 13:58:05 | 只看该作者
原帖由 0cat0 于 2009-3-13 13:53 发表
刚刚去主页看了一下,原来这个是有用的,下面是原文及机器翻译的内容:

The install package also contains a user-mode helper service that enables the virtual disk driver to forward I/O requests to  ...


也就是说用于网络的。
回复

使用道具 举报

20#
发表于 2009-3-13 14:44:13 | 只看该作者
顶了,
不知道把 imdisk.sys 和imdisk.cpl 放入我的pe 二级内核并用regsvr32注册之是否可行。这样就不必改动一级内核了。
回复

使用道具 举报

21#
 楼主| 发表于 2009-3-13 14:51:26 | 只看该作者
原帖由 dos时代菜鸟 于 2009-3-13 14:44 发表
顶了,
不知道把 imdisk.sys 和imdisk.cpl 放入我的pe 二级内核并用regsvr32注册之是否可行。这样就不必改动一级内核了。


xp下是可行的。pe下不记得了。
回复

使用道具 举报

22#
发表于 2009-3-13 15:05:45 | 只看该作者

回复 #21 dos时代菜鸟 的帖子

可以放到pe外核。
回复

使用道具 举报

23#
发表于 2009-3-13 15:18:48 | 只看该作者
不知道应该怎么样啊??
回复

使用道具 举报

24#
发表于 2009-3-14 01:44:08 | 只看该作者
原帖由 yidawpf 于 2009-3-12 22:09 发表
这个右键可以生成许多盘符,也能够很方便的卸载掉。
不过我奇怪的是:论坛好像有网友说是要把imdsksvc.exe、imdisk.exe集成进去,为什么我没有加进去一样可以用?
那个imdsksvc.exe又是做什么用?

56266
...


imdsksvc.exe :ImDisk 的服务管理工具,ImDisk 服务检测、开始停止 ImDisk 可以通过它来操作,一般安装后这样的工具很少人会用到的,可以不要。
imdisk.exe :ImDisk 的命令行工具,批处理用它建立虚拟盘等。
回复

使用道具 举报

25#
发表于 2009-3-14 08:13:45 | 只看该作者
原来 imdisk 需要 在启动 lsass 进程前注册到注册表中。
imdisk虚拟盘.rar (39.4 KB, 下载次数: 163) 解压缩放入 一级内核 system32 中,并在 startpe.cmd 中调用imdisk.cmd 就可以实现pe支持imdisk功能了,同时具有lz的右键功能。呵呵。
回复

使用道具 举报

26#
发表于 2009-3-14 10:15:49 | 只看该作者
原帖由 dos时代菜鸟 于 2009-3-14 08:13 发表
原来 imdisk 需要 在启动 lsass 进程前注册到注册表中。
把 56356 解压缩放入 一级内核 system32 中,并在 startpe.cmd 中调用imdisk.cmd 就可以实现pe支持imdisk功能了,同时具有lz的右键功能。呵呵。



也试了.发觉里边的REG文件.比老九提供的小.没成功.也不知........

把老九的REG.加进*.SI_以后.成功.
回复

使用道具 举报

27#
 楼主| 发表于 2009-3-14 10:23:45 | 只看该作者
原帖由 dos时代菜鸟 于 2009-3-14 08:13 发表
原来 imdisk 需要 在启动 lsass 进程前注册到注册表中。
把 56356 解压缩放入 一级内核 system32 中,并在 startpe.cmd 中调用imdisk.cmd 就可以实现pe支持imdisk功能了,同时具有lz的右键功能。呵呵。

那个注册表可以去掉,合到批处理中:
  1. reg add "HKLM\SYSTEM\ControlSet001\Services\ImDisk" /f /v "Type" /t REG_DWORD /d 1
  2. reg add "HKLM\SYSTEM\ControlSet001\Services\ImDisk" /f /v "Start" /t REG_DWORD /d 1
  3. reg add "HKLM\SYSTEM\ControlSet001\Services\ImDisk" /f /v "ErrorControl" /t REG_DWORD /d 0
  4. reg add "HKLM\SYSTEM\ControlSet001\Services\ImDisk" /f /v "ImagePath" /t REG_EXPAND_SZ /d "system32\DRIVERS\imdisk.sys"
  5. reg add "HKLM\SYSTEM\ControlSet001\Services\ImDisk" /f /v "DisplayName" /t REG_SZ /d "ImDisk Virtual Disk Driver"
  6. reg add "HKLM\SYSTEM\ControlSet001\Services\ImDisk" /f /v "Description" /t REG_SZ /d "Disk emulation driver"
  7. reg add "HKCR\Drive\shell\ImDiskSaveImage" /f /ve /t REG_SZ /d "保存ImDisk虚拟磁盘"
  8. reg add "HKCR\Drive\shell\ImDiskSaveImage\command" /f /ve /t REG_SZ /d "rundll32.exe imdisk.cpl,RunDLL_SaveImageFile %%L"
  9. reg add "HKCR\Drive\shell\ImDiskUnmount" /f /ve /t REG_SZ /d "卸载ImDisk虚拟磁盘"
  10. reg add "HKCR\Drive\shell\ImDiskUnmount\command" /f /ve /t REG_SZ /d "rundll32.exe imdisk.cpl,RunDLL_RemoveDevice %%L"
  11. reg add "HKLM\SOFTWARE\Classes\Ultraiso\shell\ImDiskMountFile" /f /ve /t REG_SZ /d "加载ImDisk虚拟磁盘"
  12. reg add "HKLM\SOFTWARE\Classes\Ultraiso\shell\ImDiskMountFile\command" /f /ve /t REG_SZ /d "rundll32.exe imdisk.cpl,RunDLL_MountFile %%L"
  13. reg add "HKLM\SOFTWARE\Classes\Winimage\shell\ImDiskMountFile" /f /ve /t REG_SZ /d "加载ImDisk虚拟磁盘"
  14. reg add "HKLM\SOFTWARE\Classes\Winimage\shell\ImDiskMountFile\command" /f /ve /t REG_SZ /d "rundll32.exe imdisk.cpl,RunDLL_MountFile %%L"
复制代码

[ 本帖最后由 yidawpf 于 2009-3-14 10:54 编辑 ]
回复

使用道具 举报

28#
发表于 2009-3-14 10:52:30 | 只看该作者

回复 #28 yidawpf 的帖子

你要验证下.
运行:

PECMD RAMD ImDisk,L64,NTFS,B:

看看出现了B盘.才对.

最稳妥的就是.加老九REG到*.SI_    再引入一楼的...
回复

使用道具 举报

29#
 楼主| 发表于 2009-3-14 10:54:58 | 只看该作者
原帖由 66369 于 2009-3-14 10:52 发表
你要验证下.
运行:

PECMD RAMD ImDisk,L64,NTFS,B:

看看出现了B盘.才对.

最稳妥的就是.加老九REG到*.SI_    再引入一楼的...

我用的是老九的修改注册表的办法。
运行你说的命令就可以生成B盘。
回复

使用道具 举报

30#
发表于 2009-3-14 11:02:01 | 只看该作者
原帖由 yidawpf 于 2009-3-14 10:54 发表

我用的是老九的修改注册表的办法。
运行你说的命令就可以生成B盘。




可以终结IMDISK加入PE的问题了.

以后要做的.是运用IMDISK问题了.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-8-8 01:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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