Я ищу надежный метод для обнаружения существования KB2468871v2 в целевой системе. Если это не было установлено, функция программного обеспечения, с которым я работаю, не работает. Когда я устанавливаю на сайт, как часть установки по сценарию, я предпочитаю предварительно загружать его там, где он отсутствует, чтобы помочь клиенту избежать ошибок и т. Д.
Недавно я работал в области, где политика ИТ блокировала запросы regedit по политике, даже если у меня есть права администратора для установки программного обеспечения. Это сломало мой предыдущий рабочий скрипт reg reg, который работал нормально, чтобы обнаружить его присутствие там, а затем установить или пропустить при необходимости.
Сейчас я работаю над решением NON reg запроса, чтобы обойти проблему, но считаю, что это ненадежно. После попытки найти наличие папки где-то глубоко в ОС, чтобы добиться этого, я использую этот удобный exe отсюда http://www.asoft.be/prod_netver.html, чтобы проанализировать информацию о настройке .net в текстовый файл. Затем с помощью команды find для поиска записи KB2468871v2 и, если она существует, не устанавливайте исправление и продолжайте выполнение сценария или, если его нет, выберите 64- или 32-разрядную версию исправления соответствующим образом.
Проблема в том, что файл не регистрирует тот факт, что он установлен, отключает установщик там, где он не нужен. Он отлично работает, когда текст заполняется с помощью «Что я мог бы сделать», без использования reg, скажите мне, установлен ли KB2468871v2 на ПК или нет. Код содержит некоторые переменные для целей ведения журнала, а winbit задается линией, расположенной далее вверх по странице.
Надеюсь, что это имеет смысл, спасибо за любую информацию ....
Я пробовал команду wmic, которая перечисляет все обновления на ПК, но она не перечисляет патчи .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)