系统小技巧:为MSI文件添加两个实用右键菜单项

CFan 电脑爱好者 2021-11-23 08:56应用 标签:菜单 技巧 文件 系统

MSI是微软Windows Install数据包文件格式,许多程序的安装文件以这种格式提供。如果我们需要使用MSI文件中所包含的一些有用文件时(例如图片、图标文件、说明文件等),不执行该文件的安装过程能否提取所需文件?此外,如果某个MSI程序需要以管理员身份安装以获得软件的高级功能,我们如何才能像使用EXE程序的右键菜单命令那样,选择以管理员身份运行?其实,只需给MSI文件添加两个实用的右键菜单项即可。

1. 添加MSI文件的“提取”选项

我们知道,Windows通过msiexec应用程序处理MSI包,msiexec应用程序是Windows安装程序的一部分,它是一个内置工具,支持许多命令行开关。我们可以利用该命令及其相关的文件提取开关,为MSI文件添加右键提取文件的选项。

小知识:关于msiexec命令

首先,我们可以通过运行“msiexec /?”命令来了解msiexec应用程序及其选项的使用用法。在“运行”对话框中执行此命令后,即可打开msiexec命令的使用帮助信息窗口(图1)。

2014A-MSI-1

其中,与我们所需内容相关的选项是/a。尽管它被程序的帮助系统描述为“管理安装 - 在网络上安装产品”,但它可以用于将单个MSI包的内容提取出来。具体使用的命令格式如下:

msiexec /a "path\to\package.msi" /qb TARGETDIR="path\to\the\destination\folder"

在上述命令中,TARGETDIR=是每个MSI包的公共属性关键词,用来指定MSI包内容的目标文件夹。开关“/qb”告诉Windows安装程序在执行过程中显示基本界面,它将显示一个带有“取消”按钮和进度条的对话框。

基于上述程序命令,我们可以通过注册表编辑器,将该命令以一个Extract选项的形式,添加到MSI文件的右键菜单中。具体方法如下:

首先,启动注册表编辑器,依次定位到“HKEY_CLASSES_ROOT\Msi.Package\shell”;然后,在shell下创建一个名为“Extract”的新子项,并将其“(默认)”值改为“提取”(图2)。

2014A-MSI-2

接下来,在Extract项下再新建一个名为Command的子项。并将其“(默认)”值设为如下命令串(图3):

msiexec.exe /a "%1" /qb TARGETDIR="%1 Contents"

2014A-MSI-3

之后,关闭注册表编辑器。在文件资源管理器中右键单击一个MSI包,在右键菜单中将会发现“提取”项目(图4)。选择它之后,就会在当前文件夹中创建一个新的目录“包名称.msi Contents”,其中存储有提取MSI包的内容(图5)。

2014A-MSI-4

小提示:

如果觉得上述注册表操作步骤比较麻烦,或初学者担心操作注册表的安全问题,也可以使用我们为您准备的注册表文件(压缩包中有两个文件,下载链接:https://pan.baidu.com/s/1jQGIBBSZ_zd6VvsPpb_Ygg 提取码: gjhk),下载后执行“Add Extract Command to MSI Context Menu.reg”文件,导入到注册表中,即可自动生成提取文件的MSI右键菜单Extract选项。若需要取消MSI右键菜单Extract选项,只需执行“Remove Extract Command to MSI Context Menu.reg”注册表文件即可。

2014A-MSI-5

2. 添加“以管理员身份运行”选项

如果需要给MSI添加以管理员身份运行的右键选项,可以先在注册表编辑器中定位到上述同一分支,然后右键点击shell,选择“新建→项”,把新建的项重命名为“runas”。选中runas项,然后在右侧窗口中双击“默认”字符串值,在弹出的“编辑字符串”窗口中,把数值数据修改成“以管理员身份运行”,确定(图6)。

2014A-MSI-6

接下来,在“runas”项下再新建一个“command”项,将其“默认”字符串值的数值数据修改成“msiexec /i "%1"”(图7)。最后关闭注册表编辑器。

2014A-MSI-7

这样,再在MSI安装包上点击右键,就会发现右键菜单中已经出现“以管理员身份运行”的选项了(图8)。

2014A-MSI-8

小提示:

上述技巧适用于Windows 10、Windows 8和Windows 7。