识别KB2468871v2 .net修补程序安装

时间:2018-06-27 10:20:52

标签: .net batch-file cmd

我正在寻找一种可靠的方法来检测目标系统上KB2468871v2的存在。如果尚未安装,则无法使用我使用的软件的功能。当我在现场安装时,作为脚本安装的一部分,我希望将其预加载到缺少的地方,以帮助客户端避免错误等。

最近,即使我具有安装软件的管理员权限,我也一直在IT策略按策略阻止regedit查询的区域中工作。这破坏了我以前的工作reg查询脚本,该脚本可以很好地检测到该脚本是否存在,然后根据需要进行安装或跳过。

我现在正在研究NON reg查询解决方案来解决该问题,但发现它不可靠。在尝试找到操作系统深处某个文件夹的存在以实现此目的之后,我从这里http://www.asoft.be/prod_netver.html使用此便捷的exe将.net设置信息解析为文本文件。然后使用find命令搜索KB2468871v2条目,如果存在,请忽略该补丁程序的安装并继续执行脚本,或者如果不存在该脚本,请选择64位或32位版本的补丁程序。

问题是文件无法记录已安装的事实,从而使安装程序在不需要它的地方跳闸。在文本确实填充了“我可以使用的东西”的情况下,它工作得很好,无需使用reg,告诉我KB2468871v2是否已安装在PC上。该代码包含一些用于记录目的的变量,并且winbit由页面上方的一行设置。

希望如此,谢谢您提供任何信息。...

我尝试了一个wmic命令,该命令列出了PC上的所有更新,但没有列出.net补丁,如果可以的话,这样的事情比较理想。

:KB2468871
CLS
echo.
echo      :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo      ::                  -- KB2468871 Update Check --                   ::
echo      :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo.
(ping -n 3 127.0.0.1>nul)
dotnet.exe C:\Temp\Microsoft_Net.txt /extended
findstr /C:"KB2468871v2" C:\Temp\Microsoft_Net.txt >nul
if %errorlevel% == 0 (echo KB2468871 Okay >> %log% & echo KB2468871 Okay & goto install) ELSE (goto patchnet)

:patchnet
CLS
echo.
echo      :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo      ::                     -- KB2468871 Required --                    ::
echo      :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo.
IF %winbit%==x64 (echo 64_KB2468871 Needed >> %log% & echo 64_KB2468871 Needed & "NDP40-KB2468871-v2-x64.exe" /norestart /quiet) ELSE (
echo 32_KB2468871 Needed >> %log% & echo 32_KB2468871 Needed & "NDP40-KB2468871-v2-x86.exe" /norestart /quiet)

0 个答案:

没有答案