如何使用NSIS安装或不安装Windows更新(或KB更新)?

时间:2017-09-26 12:55:35

标签: nsis silent-installer windows-update

要执行我的Windows应用程序,Windows机器需要一些预先安装的Windows更新(如KB2999226 - 我需要检查此更新)。我需要使用NSIS以静默方式安装此更新。

如何检查Windows已使用NSIS安装了特定更新。

我试过这个NSIS-Windows_Critical_Updates_Mass_Installer,但它不起作用。它无法检查预安装的更新。

我的Windows应用程序将在Windows 7 SP1及更高版本和Windows Server 2012及更高版本上运行。所以我需要检查所有这些版本的更新。

1 个答案:

答案 0 :(得分:2)

要检查是否使用NSIS安装了KB更新,我使用了以下代码:

section

clearerrors
nsExec::ExecToStack 'cmd /Q /C "%SYSTEMROOT%\System32\wbem\wmic.exe qfe get hotfixid | %SYSTEMROOT%\System32\findstr.exe "^KB2999226""'
Pop $0 ; return value (it always 0 even if an error occured)
Pop $1 ; command output
detailprint $0
detailprint $1

sectionend

要安装更新(.msu文件),我使用了以下代码。

section

clearerrors
Strcpy $strInstallPath "$temp\Updates\KB2937592-x86.msu"
Push "$temp\RunMSU.Bat"
Strcpy $0 "$temp\RunMSU.Bat"
FileOpen $0 $0 w #open file
FileSeek $0 0 END #go to end
FileWrite $0 "echo off"
FileWriteByte $0 "13"
FileWriteByte $0 "10"
FileWrite $0 "start $\"$\" wusa $\"$strInstallPath$\""
FileClose $0
Execwait "$temp\RunMSU.bat"

sectionEnd