如何检测是否使用NSIS安装了windows update(或KB update)?

如何检测是否使用NSIS安装了windows update(或KB update)?,nsis,silent-installer,windows-update,Nsis,Silent Installer,Windows Update,要执行我的windows应用程序,windows计算机需要一些预安装的windows更新(如KB2999226-我需要检查此更新)。我需要使用NSIS以静默方式使用我的应用程序安装程序安装此更新 如何检查windows已使用NSIS安装了特定更新。 我试过这个,但不起作用。它无法检查预安装的更新 我的windows应用程序将在windows 7 SP1及更高版本和windows server 2012及更高版本上运行。因此,我需要检查所有这些版本中的更新。要检查是否使用NSIS安装了KB更新,我

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

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

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


我的windows应用程序将在windows 7 SP1及更高版本和windows server 2012及更高版本上运行。因此,我需要检查所有这些版本中的更新。

要检查是否使用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

这基本上是两个问题。检查是否安装了上述更新的官方方法是什么?您如何在NSIS中实现此方法。@Anders:ya。。实际上,我已经尝试使用“bat”文件安装更新,但无法静默安装。我要安装更新的bat文件代码是:echo off start“wusa”$temp\WindowsUpdate\KB2937592-x86.msu。我的第二个首要任务是安装更新。主要任务是检查更新是否已经安装。