【发布时间】:2023-03-20 13:51:02
【问题描述】:
我尝试在 Windows 7 x64 环境中安装驱动程序,方法是使用 cmd 和由脚本制作的 nsis 安装程序
例如,我从 cmd 执行:
InfDefaultInstall C:\kit\driver\win7-64\my_driver.inf
来自 nsis 我做(这是脚本中的行):
Exec 'InfDefaultInstall $INSTDIR\driver\win7-64\my_driver.inf'
inf 文件应该在 Windows\system32\drivers 文件夹中复制一个 .sys 文件并在注册表中写入一些内容
问题是,它发生在 cmd 中,如果使用 nsis 安装程序则不会发生(我的意思是它看起来好像正在执行此操作,但 .sys 文件没有到达它应该去的地方)
另外,在卸载时我从 nsis 脚本中执行:
Delete '$WINDIR\system32\drivers\my_driver.sys'
此命令不会删除 sys 文件(因为我在安装后运行了 cmd 行命令,所以它去了应该的位置)
==
使用管理员帐户运行的所有测试,禁用 UAC,还尝试在安装程序上右键单击以管理员身份运行,但它不会复制它
==
我在 windows xp 上试过这个
Exec 'rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 $INSTDIR\driver\win7-64\my_driver.inf'
并且完美运行(来自 cmd 和 nsis 脚本)
也在win7上试过这个命令,我得到了同样的不工作结果。 还在 vista x86 上尝试过,所以我认为这不是架构问题,而是类似于权限或与 uac 相关的问题(尽管未启用 uac)
【问题讨论】: