簡體   English   中英

在Windows Vista或更高版本上從nsis安裝inf(驅動程序)

[英]install inf (driver) from nsis on windows vista or greater

我嘗試使用cmd和由腳本制作的nsis安裝程序在Windows 7 x64環境中安裝驅動程序

從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 line命令)

==

使用管理員帳戶運行的所有測試(禁用了UAC)也已嘗試在安裝程序上以admin身份右鍵單擊運行,但不會復制它

==

我在Windows XP上嘗試過

Exec 'rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 $INSTDIR\driver\win7-64\my_driver.inf'

並完美運行(來自cmd和nsis腳本)

也嘗試在win7上使用此命令,但我卻無法正常工作。 還可以在vista x86上進行嘗試,因此我不認為這是體系結構問題,而是類似權限或與uac有關的問題(盡管未啟用uac)

我懷疑這是否對您Exec 'InfDefaultInstall "$INSTDIR\\driver\\win7-64\\my_driver.inf"' ,但是您應該引用路徑: Exec 'InfDefaultInstall "$INSTDIR\\driver\\win7-64\\my_driver.inf"'

您應該包括x64.nsh文件並調用DisableX64FSRedirection宏(您可能還想使用$ sysdir而不是$ WINDIR \\ system32)

就InfDefaultInstall命令而言,也許當前目錄/工作目錄很重要,您可以使用SetOutPath在nsis中對其進行設置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM