List of Windows 7 telemetry updates to avoid

Discussion in 'privacy general' started by Stefan Froberg, Aug 24, 2015.

  1. jolt2

    jolt2 Registered Member

    Joined:
    Dec 31, 2011
    Posts:
    14
    Location:
    USA
    Has anyone kept up with which updates are safe and which ones to avoid since this all started to today? Where can I find a full, updated list of updates to avoid? Will this list get updated every month that Microsoft sends out new updates? I have removed the updates in question that were talked about but I have not updated Windows since because I just do not trust Windows updates anymore. Should I not update Windows anymore?
     
  2. MisterB

    MisterB Registered Member

    Joined:
    May 31, 2013
    Posts:
    1,193
    Location:
    Southern Rocky Mountains USA
    Security updates at least. I am running updates but more carefully. I always have had updates set to wait until I go though the list and hide the ones I don't want. MS is really pushing Windows 10 now so there is a new version of the Windows 10 upgrade update. I haven't gotten it and I think not having some of the earlier updates installed might have something to do with it.
     
  3. TheKid7

    TheKid7 Registered Member

    Joined:
    Jul 22, 2006
    Posts:
    3,502
    Does anyone have any updates/additions to this list?

    I have a Windows 8 64 bit Laptop which had not been updated for about 5 months. I added the Registry fix which is 'supposed' to block OS Updates. Only one of the 'Important' Updates are in the list above ('KB2976978').

    I had already installed the Security Updates for NetFramework and Silverlight before doing the Registry fix. Hopefully non of these updates had anything in them.

    Thanks in Advance.
     
  4. N3306TX

    N3306TX Registered Member

    Joined:
    Feb 4, 2016
    Posts:
    1
    Looks like Microsoft has issued more spyware updates in their February 2016 release.

    3112343 - update enables support for additional upgrade scenarios from Windows 7 to Windows 10, and ... "improves the ability of Microsoft to monitor the quality of the upgrade experience." (Marked as Important)
    3123862 - update adds capabilities to some computers that lets users easily learn about Windows 10 or start an upgrade to Windows 10. (Marked as Optional)
     
  5. TheWindBringeth

    TheWindBringeth Registered Member

    Joined:
    Feb 29, 2012
    Posts:
    2,155
    Code:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Windows Update Notes</title>
    <style type="text/css">
    table.data {border-collapse:collapse;}
    table.data td, table.data th {text-align:left; border:1px solid black; padding:3px;}
    table.data th {background-color:#7C96C3; color:white;}
    table.data tr:nth-child(odd) td {background-color:#F5F5FF;}
    td {vertical-align:top; white-space:nowrap;}
    td.cmdDesc {padding-right:8px;}
    div.hdr {font-weight:bold; margin-bottom:6px;}
    div.topgap {margin-top:8px;}
    div#footnotes {visibility:hidden;}
    </style>
    <script type="text/javascript">
    var verInfoStr = 'Windows Update Notes - Feb 25 2016';
    
    var updatesByYearTbl = [
      [ '979198', '2009'],
      ['2492172', '2010'],
      ['2662694', '2011'],
      ['2800436', '2012'],
      ['2921911', '2013'],
      ['3028013', '2014'],
      ['3132806', '2015'],
      [ '894199', '2016'],
    ];
    
    var updatesOfInterestTbl = [
      //  KB      Replaces    7    8    UC   Description
      [ '971033',        '', 'Y', ' ', ' ', 'Update for Windows Activation Technologies'],
      ['2876229',        '', 'Y', 'Y', ' ', 'Skype for Microsoft Update'],
      ['2902907',        '', ' ', ' ', ' ', 'NOT FOUND, possibly Microsoft Security Essentials related'],
      ['2952664',        '', 'Y', ' ', ' ', 'Compatibility update for upgrading Windows 7'],
      ['2976978',        '', ' ', 'Y', ' ', 'Compatibility update for Windows 8.1 and Windows 8 '],
      ['2976987',        '', ' ', ' ', ' ', 'NOT FOUND, looks like it might be a typo'],
      ['2977759',        '', 'Y', ' ', ' ', 'Compatibility update for upgrading Windows 7'],
      ['2990214',        '', 'Y', ' ', 'Y', 'Update that enables you to upgrade from Windows 7 to a later version of Windows'],
      ['3008188',        '', ' ', 'Y', 'Y', 'November 2014 Windows Update client improvements in Windows 8.1 or Windows Server 2012 R2'],
      ['3008273',        '', ' ', 'Y', 'Y', 'An update to enable an automatic update from Windows 8 to Windows 8.1'], 
      ['3012973',        '', ' ', ' ', ' ', 'NOT FOUND, but reported to be the Upgrade to Windows 10 Pro'],
      ['3015249',        '', ' ', ' ', ' ', 'NOT FOUND, no ideas either'],
      ['3021917',        '', 'Y', ' ', ' ', 'Update to Windows 7 SP1 for performance improvements'],
      ['3022345',        '', 'Y', 'Y', ' ', 'Update for customer experience and diagnostic telemetry'],
      ['3035583',        '', 'Y', 'Y', ' ', 'Update installs Get Windows 10 app in Windows 8.1 and Windows 7 SP1'],
      ['3044374', '3008188', ' ', 'Y', 'Y', 'Update that enables you to upgrade from Windows 8.1 to Windows 10'],
      ['3046480',        '', 'Y', 'Y', ' ', 'Update helps to determine whether to migrate the .NET Framework 1.1 when you upgrade Windows 8.1 or Windows 7'],
      ['3050265', '2990214', 'Y', ' ', 'Y', 'Windows Update Client for Windows 7: June 2015'],
      ['3050267', '3044374', ' ', 'Y', 'Y', 'Windows Update Client for Windows 8.1: June 2015'],
      ['3063822',        '', ' ', ' ', ' ', 'NOT FOUND, possibly Microsoft Security Essentials related'],
      ['3065987', '3050265', 'Y', ' ', 'Y', 'Windows Update Client for Windows 7 and Windows Server 2008 R2: July 2015'],
      ['3065988', '3050267', ' ', 'Y', 'Y', 'Windows Update Client for Windows 8.1 and Windows Server 2012 R2: July 2015'],
      ['3068707',        '', ' ', ' ', ' ', 'NOT FOUND, but reported to be telemetry related'],
      ['3068708', '3022345', 'Y', 'Y', ' ', 'Update for customer experience and diagnostic telemetry'],
      ['3072318',        '', ' ', 'Y', ' ', 'Update for Windows 8.1 OOBE to upgrade to Windows 10'],
      ['3075249',        '', 'Y', 'Y', ' ', 'Update that adds telemetry points to consent.exe in Windows 8.1 and Windows 7'],
      ['3075851', '3065987', 'Y', ' ', 'Y', 'Windows Update Client for Windows 7 and Windows Server 2008 R2: August 2015'],
      ['3075853', '3065988', ' ', 'Y', 'Y', 'Windows Update Client for Windows 8.1 and Windows Server 2012 R2: August 2015'],
      ['3080149', '3022345', 'Y', 'Y', ' ', 'Update for customer experience and diagnostic telemetry'],
      ['3083324', '3075851', 'Y', ' ', 'Y', 'Windows Update Client for Windows 7 and Windows Server 2008 R2: September 2015'],
      ['3083325', '3075853',  '', 'Y', 'Y', 'Windows Update Client for Windows 8.1 and Windows Server 2012 R2: September 2015'],
      ['3083710', '3083324', 'Y', ' ', 'Y', 'Windows Update Client for Windows 7 and Windows Server 2008 R2: October 2015'],
      ['3083711', '3083325', ' ', 'Y', 'Y', 'Windows Update Client for Windows 8.1 and Windows Server 2012 R2: October 2015'],
      ['3090045',        '', 'Y', 'Y', ' ', 'Windows Update for reserved devices in Windows 8.1 or Windows 7 SP1'],
      ['3112336',        '', ' ', 'Y', 'Y', 'Windows Update Client for Windows 8.1 and Windows Server 2012 R2: December 2015'],
      ['3112343',        '', 'Y', ' ', 'Y', 'Windows Update Client for Windows 7 and Windows Server 2008 R2: December 2015'],
      ['3123862',        '', 'Y', 'Y', 'Y', 'Updated capabilities to upgrade Windows 8.1 and Windows 7'],
      ['3135445',        '', 'Y', ' ', 'Y', 'Windows Update Client for Windows 7 and Windows Server 2008 R2: February 2016'],
      ['3135449',        '', ' ', 'Y', 'Y', 'Windows Update Client for Windows 8.1 and Windows Server 2012 R2: February 2016'],
      //  KB      Replaces    7    8    UC   Description 
    ];
    
    var cmdsTbl = [
      ['Uninstall an update',                     'wusa /uninstall /kb:3035583'],
      ['Uninstall an update',                     'wusa /uninstall /kb:3035583 /quiet /norestart'],
      ['Check for installed update (PowerShell)', 'get-hotfix -id KB3035583'],
      ['Check for installed update',              'wmic qfe where HotFixID="KB3035583" list /format:list'],
      ['Show installed updates',                  'wmic qfe list /format:htable > "%USERPROFILE%/Desktop/InstalledUpdates.html"'],
      ['Show installed updates of interest',      'wmic qfe where ({hotFixIdOrList}) list /format:htable > "%USERPROFILE%/Desktop/InstalledUpdatesOfInterest.html"'],
      ['Show Scheduled Tasks Table',              'schtasks /query /v > "%USERPROFILE%/Desktop/ScheduledTasks.txt"'],
      ['Show Scheduled Tasks',                    'schtasks /query /v /fo LIST > "%USERPROFILE%/Desktop/ScheduledTasks.txt"'],
      ['Check for Scheduled Task',                'schtasks /query /v /fo LIST /tn "\\Microsoft\\Windows\\Customer Experience Improvement Program\\Consolidator"'],
      ['Change Scheduled Task',                   'schtasks /change /TN "\\Microsoft\\Windows\\Customer Experience Improvement Program\\Consolidator" /DISABLE'],
    ];
    
    var searchUrlTemplates = [
    // These are for reference only.  They don't point to working search engines
    // ['S1', 'http://www.example.com/search?q={searchTerms}&foo={searchTerms}'],
    // ['S2', 'http://www.example.org/search?q={searchTerms}'],
    ];
    
    var kbUrlTemplate = 'https://support.microsoft.com/kb/{kb}';
    
    function getSearchLinks(kb) {
      var html = '';
      for(var i=0; i<searchUrlTemplates.length; i++) {
        if(i > 0)
          html += ' ';
        var text = searchUrlTemplates[i][0];
        var href = searchUrlTemplates[i][1].replace(/{searchTerms}/g, kb);
        html += '<a href="' + href + '">' + text + '</a>';
      }
      return(html);
    }
    
    function escapeHtml(str) {
      var div = document.createElement('div');
      div.appendChild(document.createTextNode(str));
      return div.innerHTML;
    };
    
    function showupdatesByYear() {
      var tbl = updatesByYearTbl;
      var html = '';
      for(var i=0; i<tbl.length; i++) {
        if(i > 0)
          html += ', ';
        html += '<a href="' + kbUrlTemplate.replace(/{kb}/g, tbl[i][0]) + '" target="_blank">' + tbl[i][1] + '</a>';
      }
      document.getElementById("updatesByYearHdr").innerHTML = "Description of Software Update Services and Windows Server Update Services changes in content for:";
      document.getElementById("updatesByYear").innerHTML = html;
    }
    
    function showupdatesOfInterest() {
      var tbl = updatesOfInterestTbl;
      var html = '<table class="data">';
      html += '<tr>'
      html += '<th>Search</th><th>KB</th><th>Replaces</th><th>Win7</th><th>Win8</th><th>UpdateClient</th><th>Description</th></tr>';
      for(var i=0; i<tbl.length; i++) {
        html += '<tr>';
        html += '<td>' + getSearchLinks('KB' + tbl[i][0]) + '</td>';
        html += '<td><a href="' + kbUrlTemplate.replace(/{kb}/g, tbl[i][0]) + '" target="_blank">KB' + tbl[i][0] + '</a></td>';
        html += '<td>'
        if(tbl[i][1] !== '') {
          html += '<a href="' + kbUrlTemplate.replace(/{kb}/g, tbl[i][0]) + '" target="_blank">KB' + tbl[i][1] + '</a>';
        }
        html += '</td>';
        html += '<td style="text-align:center">' + tbl[i][2] + '</td>';
        html += '<td style="text-align:center">' + tbl[i][3] + '</td>';
        html += '<td style="text-align:center">' + tbl[i][4] + '</td>';
        html += '<td>' + escapeHtml(tbl[i][5]) + '</td>';
        html += '</tr>';
      }
      html += '</table>';
      document.getElementById("updatesOfInterestHdr").innerHTML = 'Updates Of Interest:';
      document.getElementById("updatesOfInterest").innerHTML = html;
    }
    
    function showMiscCmds() {
      var tbl = cmdsTbl;
      var html = '<table class="cmds">';
      for(var i=0; i<tbl.length; i++) {
        html += '<tr><td class="cmdDesc">' + tbl[i][0] + ':</td><td>' + escapeHtml(tbl[i][1]) + '</td></tr>';
      }
      html += '</table>';
      tbl = updatesOfInterestTbl;
      var hotFixIdOrList = '';
      for(var i=0; i<tbl.length; i++) {
        if(i > 0) {
          hotFixIdOrList += ' OR ';
        }
        hotFixIdOrList += 'HotFixID="KB' + tbl[i][0] + '"';
      }
      document.getElementById("miscCmdsHdr").innerHTML = "Miscellaneous Commands:";
      document.getElementById("miscCmds").innerHTML = html.replace(/{hotFixIdOrList}/g, hotFixIdOrList);
    }
    
    function showNotes() {
      document.getElementById("footnotesHdr").innerHTML = "Footnotes:";
      document.getElementById("footnotes").style.visibility="visible";
    }
    
    function init() {
      document.title = verInfoStr;
      document.getElementById("verInfoStr").innerHTML = verInfoStr;
      showupdatesByYear();
      showupdatesOfInterest();
      showMiscCmds();
      showNotes();
    }
    </script>
    </head>
    <body onload="init();">
    <noscript>This page requires javascript</noscript>
    <div id="updatesByYearHdr" class="hdr"></div>
    <div id="updatesByYear"></div>
    <div id="updatesOfInterestHdr" class="hdr topgap"></div>
    <div id="updatesOfInterest"></div>
    <div id="miscCmdsHdr" class="hdr topgap"></div>
    <div id="miscCmds"></div>
    <div id="footnotesHdr" class="hdr topgap"></div>
    <div id="footnotes">
    <div>(1) My Updates Of Interest list should not be construed as a recommended block list.</div>
    <div>(2) Search links can be added to the Updates Of Interest table by modifying the searchUrlTemplates array.</div>
    <div>(3) Adapt this page and/or its lists to suit your own purposes :)</div>
    </div>
    <div id="verInfoStr" class="hdr topgap"></div>
    </body>
    </html>
    
     
  6. TheWindBringeth

    TheWindBringeth Registered Member

    Joined:
    Feb 29, 2012
    Posts:
    2,155
    Some prototype code, for mantra, that checks for specific updates and prompts for their removal. Read rems, proceed as though it hasn't been properly tested on all platforms.

    Code:
    @rem Version 0.4
    @echo off
    SetLocal EnableDelayedExpansion
    echo.
    
    rem WARNING: You must adjust the check calls (down below) to suit your purposes.
    
    rem mode=0: Just scan for updates.  Provide no option to uninstall those that are found.
    rem mode=1: Prompt to uninstall found updates, but only pretend to uninstall (for testing and speedbump)
    rem mode=2: Prompt to uninstall found updates and uninstall them (for production use)
    set mode=1
    
    rem Allow mode to be adjusted via cmdline argument
    if not "%1%"=="" (
      if "%1"=="0" (
        set mode=0
        goto :proceed1
      )
      if "%1"=="1" (
        set mode=1
        goto :proceed1
      )
      if "%1"=="2" (
        set mode=2
        goto :proceed1
      )
      echo Invalid mode argument
      goto :error
    )
    
    :proceed1
    set modeDesc=Invalid mode
    if "%mode%"=="0" (
      set modeDesc=Mode 0 - Just scan for updates of interest
      goto :proceed2
    )
    if "%mode%"=="1" (
      set modeDesc=Mode 1 - Scan for updates of interest and PRETEND to uninstall those selected
      goto :proceed2
    )
    if "%mode%"=="2" (
      set modeDesc=Mode 2 - Scan for updates of interest and uninstall those selected
      goto :proceed2
    )
    echo !modeDesc!
    goto :error
    
    :proceed2
    echo !modeDesc!
    echo.
    set updatesOfInterestFound=0
    set updatesOfInterestUninstalled=0
    
    rem Using a temp file to decrease database queries and thereby increase speed
    set installedUpdatesListFile=%TEMP%\__InstalledUpdatesListFile.txt
    if exist "%installedUpdatesListFile%" (
      del /Q /F "%installedUpdatesListFile%"
      if exist "%installedUpdatesListFile%" (
        echo Can't delete %installedUpdatesListFile%
        goto :error
      )
    )
    for /f "delims= " %%i in ('wmic qfe get hotfixid') do (
      if not "%%i"=="HotFixID" (
        echo %%i>> %installedUpdatesListFile%
      )
    )
    
    rem You must adjust this list of calls to suit your purposes.  Don't uninstall
    rem updates unless you've researched them and understand the consequences.
    call :check 971033  "Update for Windows Activation Technologies"
    call :check 2876229 "Skype for Microsoft Update"
    call :check 2902907 "NOT FOUND, possibly Microsoft Security Essentials related"
    call :check 2952664 "Compatibility update for upgrading Windows 7"
    call :check 2976978 "Compatibility update for Windows 8.1 and Windows 8 "
    call :check 2976987 "NOT FOUND, looks like it might be a typo"
    call :check 2977759 "Compatibility update for upgrading Windows 7"
    call :check 2990214 "Update that enables you to upgrade from Windows 7 to a later version of Windows"
    call :check 3008188 "November 2014 Windows Update client improvements in Windows 8.1 or Windows Server 2012 R2"
    call :check 3008273 "An update to enable an automatic update from Windows 8 to Windows 8.1']"
    call :check 3012973 "NOT FOUND, but reported to be the Upgrade to Windows 10 Pro"
    call :check 3015249 "NOT FOUND, no ideas either"
    call :check 3021917 "Update to Windows 7 SP1 for performance improvements"
    call :check 3022345 "Update for customer experience and diagnostic telemetry"
    call :check 3035583 "Update installs Get Windows 10 app in Windows 8.1 and Windows 7 SP1"
    call :check 3044374 "Update that enables you to upgrade from Windows 8.1 to Windows 10"
    call :check 3046480 "Update helps to determine whether to migrate the .NET Framework 1.1 when you upgrade Windows 8.1 or Windows 7"
    call :check 3050265 "Windows Update Client for Windows 7: June 2015"
    call :check 3050267 "Windows Update Client for Windows 8.1: June 2015"
    call :check 3063822 "NOT FOUND, possibly Microsoft Security Essentials related"
    call :check 3065987 "Windows Update Client for Windows 7 and Windows Server 2008 R2: July 2015"
    call :check 3065988 "Windows Update Client for Windows 8.1 and Windows Server 2012 R2: July 2015"
    call :check 3068707 "NOT FOUND, but reported to be telemetry related"
    call :check 3068708 "Update for customer experience and diagnostic telemetry"
    call :check 3072318 "Update for Windows 8.1 OOBE to upgrade to Windows 10"
    call :check 3075249 "Update that adds telemetry points to consent.exe in Windows 8.1 and Windows 7"
    call :check 3075851 "Windows Update Client for Windows 7 and Windows Server 2008 R2: August 2015"
    call :check 3075853 "Windows Update Client for Windows 8.1 and Windows Server 2012 R2: August 2015"
    call :check 3080149 "Update for customer experience and diagnostic telemetry"
    call :check 3083324 "Windows Update Client for Windows 7 and Windows Server 2008 R2: September 2015"
    call :check 3083325 "Windows Update Client for Windows 8.1 and Windows Server 2012 R2: September 2015"
    call :check 3083710 "Windows Update Client for Windows 7 and Windows Server 2008 R2: October 2015"
    call :check 3083711 "Windows Update Client for Windows 8.1 and Windows Server 2012 R2: October 2015"
    call :check 3090045 "Windows Update for reserved devices in Windows 8.1 or Windows 7 SP1"
    call :check 3112336 "Windows Update Client for Windows 8.1 and Windows Server 2012 R2: December 2015"
    call :check 3112343 "Windows Update Client for Windows 7 and Windows Server 2008 R2: December 2015"
    call :check 3123862 "Updated capabilities to upgrade Windows 8.1 and Windows 7"
    call :check 3135445 "Windows Update Client for Windows 7 and Windows Server 2008 R2: February 2016"
    call :check 3135449 "Windows Update Client for Windows 8.1 and Windows Server 2012 R2: February 2016"
    
    goto :end
    
    :check
    set kbNum=%1
    set kbStr=KB%kbNum%
    set kbDesc=%2
    
    findstr /r "^%kbStr%$" %installedUpdatesListFile% >nul
    if "%errorlevel%"=="0" (
      echo Found: %kbStr%  %kbDesc%
      set /a updatesOfInterestFound=%updatesOfInterestFound%+1
      if not "%mode%"=="0" (
        set input=n
        set /p input="Uninstall? (Y for Yes, anything else for No): "
        if /i "!input!"=="y" (
          set uninstallCmd=wusa /uninstall /kb:%kbNum% /quiet /norestart
          if "%mode%"=="1" (
            echo Pretending to run: !uninstallCmd!
          )
          if "%mode%"=="2" (
            echo Uninstalling: %kbStr%
            !uninstallCmd!
            rem ToDo: Add error checking
          )
          set /a updatesOfInterestUninstalled=%updatesOfInterestUninstalled%+1
        )
        echo.
      )
    )
    exit /b 0
    
    :error
    endlocal
    exit /b 1
    
    :end
    if exist "%installedUpdatesListFile%" (
      del /Q /F "%installedUpdatesListFile%"
      if exist "%installedUpdatesListFile%" (
        echo Can't delete %installedUpdatesListFile%
      )
    )
    echo.
    echo Updates of interest found: %updatesOfInterestFound%
    if not "%updatesOfInterestFound%"=="0" (
      echo Updates of interest uninstalled: %updatesOfInterestUninstalled%
      if not "%updatesOfInterestUninstalled%"=="0" (
        echo A restart may be necessary.
        if "%mode%"=="1" (
          echo.
          echo WARNING: Mode 1, so we only PRETENDED to uninstall updates.
          echo.
          pause
        )
      )
    )
    endlocal
    exit /b 0
    
    Edit: Bumped to 0.3, 0.4
     
    Last edited: Mar 1, 2016
  7. mantra

    mantra Registered Member

    Joined:
    Jan 25, 2005
    Posts:
    5,496
    WOW TheWindBringeth ,works for w8.1 and 7

    great really appreciate it !
    thanks TheWindBringeth
     
  8. TheWindBringeth

    TheWindBringeth Registered Member

    Joined:
    Feb 29, 2012
    Posts:
    2,155
    @mantra: Did you actually use it to remove one or more updates? Behavior seemed OK? I left the removal code disabled, mostly because I don't want to mess with my Windows 7 systems at the moment and I haven't had time to look into error checking options.
     
  9. mantra

    mantra Registered Member

    Joined:
    Jan 25, 2005
    Posts:
    5,496
    hi TheWindBringeth
    i run the script as administrator and removed every updates it did find !!
    i removed all the updates included by the script
    under w8 , there is an update that could not uninstall , but it's impossible to uninstall , i check a lot , anyway it's not a big deal
    thanks a lot really for the script
    can i use on my friend's desktop/laptop too?
     
  10. TheWindBringeth

    TheWindBringeth Registered Member

    Joined:
    Feb 29, 2012
    Posts:
    2,155
    @mantra: I performed several edits to my previous post to update the code. Use the latest version.

    The code is free, and free to use wherever you want. However, it is YOUR responsibility to 1) review the source, 2) Adjust the list of updates checked for, 3) Understand the implications of uninstalling those updates. Especially if you are going to use the tool to modify someone else's computer.
     
    Last edited: Mar 1, 2016
  11. mantra

    mantra Registered Member

    Joined:
    Jan 25, 2005
    Posts:
    5,496
    @TheWindBringeth
    thanks a lot!
     
  12. TheWindBringeth

    TheWindBringeth Registered Member

    Joined:
    Feb 29, 2012
    Posts:
    2,155
    Your welcome. Let me know if you have any problems with the code itself.
     
  13. TheWindBringeth

    TheWindBringeth Registered Member

    Joined:
    Feb 29, 2012
    Posts:
    2,155
    What update is that?
     
  14. mantra

    mantra Registered Member

    Joined:
    Jan 25, 2005
    Posts:
    5,496
    hi
    it's KB3044374 , under w8.1 it's impossible to unintall , i tried several ways
     
  15. TheWindBringeth

    TheWindBringeth Registered Member

    Joined:
    Feb 29, 2012
    Posts:
    2,155
    Interesting. Looking at my Windows Update Notes, I notice that said update replaces an earlier one and is also replaced by later one(s):

    KB3008188 replaced by:
    KB3044374 replaced by:
    KB3050267 replaced by:
    KB3065988 replaced by:
    KB3075853 replaced by:
    KB3083325 replaced by:
    KB3083711

    Which brings up a topic I once intended to bring up, but I can't remember if I ever did. If KB2 replaces KB1, and KB3 replaces KB2, and the client machine has been kept up to date, will it only have KB3 installed? If that is the case and is *always* the case, I think you could approach removal in any order. On the other hand, if there are situations where replacement isn't so neat, you might need to uninstall in a particular order such as most-recently-installed-first order(?).

    FWIW, that batch I created performs check calls in order of KB number (lowest -> highest), because I just copied then edited a paste from my Windows Update Notes.

    Generally, many would argue that it is best to do close/deactivate/remove/uninstall steps in reverse order. I don't know if that would make a difference here(?). Dependencies might complicate things even further, in some cases(?).
     
    Last edited: Mar 1, 2016
  16. TheWindBringeth

    TheWindBringeth Registered Member

    Joined:
    Feb 29, 2012
    Posts:
    2,155
    Microsoft buried a Get Windows 10 ad generator inside this month's Internet Explorer security patch for Windows 7 and 8.1
    http://www.infoworld.com/article/30...update-is-not-a-security-update.html#comments

     
  17. TheWindBringeth

    TheWindBringeth Registered Member

    Joined:
    Feb 29, 2012
    Posts:
    2,155
  18. amarildojr

    amarildojr Registered Member

    Joined:
    Aug 8, 2013
    Posts:
    2,070
    Location:
    Brasil
  19. amarildojr

    amarildojr Registered Member

    Joined:
    Aug 8, 2013
    Posts:
    2,070
    Location:
    Brasil
    I can't find KB3035583 on a freshly installed W7. I'm looking at autopatcher list. Did Microsoft remove this update?
     
  20. monkeylove

    monkeylove Registered Member

    Joined:
    Dec 10, 2013
    Posts:
    63
  21. Kerodo

    Kerodo Registered Member

    Joined:
    Oct 5, 2004
    Posts:
    7,877
    No, and they keep re-releasing it all the time. I think it falls into the "Optional" or "Recommended" category. Check there....
     
  22. TheWindBringeth

    TheWindBringeth Registered Member

    Joined:
    Feb 29, 2012
    Posts:
    2,155
  23. MisterB

    MisterB Registered Member

    Joined:
    May 31, 2013
    Posts:
    1,193
    Location:
    Southern Rocky Mountains USA
    Interesting. I always manually uncheck the 664 update and hide it. I also delete the contents of the "/software distribution/download" folder after updates are applied. This is just to save disk space and make backup images smaller and faster. In any case, I haven't been bothered by GWX updates since I removed the questionable updates last June and I haven't installed them at all in the two Windows 7 installs I've done since then.
     
  24. mantra

    mantra Registered Member

    Joined:
    Jan 25, 2005
    Posts:
    5,496
  25. TheWindBringeth

    TheWindBringeth Registered Member

    Joined:
    Feb 29, 2012
    Posts:
    2,155
    Code:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Windows Update Notes</title>
    <style type="text/css">
    table.data {border-collapse:collapse;}
    table.data td, table.data th {text-align:left; border:1px solid black; padding:3px;}
    table.data th {background-color:#7C96C3; color:white;}
    table.data tr:nth-child(odd) td {background-color:#F5F5FF;}
    td {vertical-align:top; white-space:nowrap;}
    td.cmdDesc {padding-right:8px;}
    div.hdr {font-weight:bold; margin-bottom:6px;}
    div.topgap {margin-top:8px;}
    div#footnotes {visibility:hidden;}
    </style>
    <script type="text/javascript">
    var verInfoStr = 'Windows Update Notes - Mar 24 2016';
    
    var updatesByYearTbl = [
      [ '979198', '2009'],
      ['2492172', '2010'],
      ['2662694', '2011'],
      ['2800436', '2012'],
      ['2921911', '2013'],
      ['3028013', '2014'],
      ['3132806', '2015'],
      [ '894199', '2016'],
    ];
    
    var updatesOfInterestTbl = [
      //  KB      Replaces    7    8    UC   Description
      [ '971033',        '', 'Y', ' ', ' ', 'Update for Windows Activation Technologies'],
      ['2876229',        '', 'Y', 'Y', ' ', 'Skype for Microsoft Update'],
      ['2902907',        '', ' ', ' ', ' ', 'NOT FOUND, possibly Microsoft Security Essentials related'],
      ['2922324',        '', ' ', ' ', ' ', 'NOT FOUND, no ideas either'],
      ['2952664',        '', 'Y', ' ', ' ', 'Compatibility update for upgrading Windows 7'],
      ['2976978',        '', ' ', 'Y', ' ', 'Compatibility update for Windows 8.1 and Windows 8 '],
      ['2976987',        '', ' ', ' ', ' ', 'NOT FOUND, looks like it might be a typo'],
      ['2977759',        '', 'Y', ' ', ' ', 'Compatibility update for upgrading Windows 7'],
      ['2990214',        '', 'Y', ' ', 'Y', 'Update that enables you to upgrade from Windows 7 to a later version of Windows'],
      ['3008188',        '', ' ', 'Y', 'Y', 'November 2014 Windows Update client improvements in Windows 8.1 or Windows Server 2012 R2'],
      ['3008273',        '', ' ', 'Y', 'Y', 'An update to enable an automatic update from Windows 8 to Windows 8.1'],  
      ['3012973',        '', ' ', ' ', ' ', 'NOT FOUND, possibly the Upgrade to Windows 10 Pro'],
      ['3015249',        '', ' ', ' ', ' ', 'NOT FOUND, no ideas either'],
      ['3021917',        '', 'Y', ' ', ' ', 'Update to Windows 7 SP1 for performance improvements'],
      ['3022345',        '', 'Y', 'Y', ' ', 'Update for customer experience and diagnostic telemetry'],
      ['3035583',        '', 'Y', 'Y', ' ', 'Update installs Get Windows 10 app in Windows 8.1 and Windows 7 SP1'],
      ['3044374', '3008188', ' ', 'Y', 'Y', 'Update that enables you to upgrade from Windows 8.1 to Windows 10'],
      ['3046480',        '', 'Y', 'Y', ' ', 'Update helps to determine whether to migrate the .NET Framework 1.1 when you upgrade Windows 8.1 or Windows 7'],
      ['3050265', '2990214', 'Y', ' ', 'Y', 'Windows Update Client for Windows 7: June 2015'],
      ['3050267', '3044374', ' ', 'Y', 'Y', 'Windows Update Client for Windows 8.1: June 2015'],
      ['3063822',        '', ' ', ' ', ' ', 'NOT FOUND, possibly Microsoft Security Essentials related'],
      ['3064683',        '', ' ', 'Y', ' ', 'Windows 8.1 OOBE modifications to reserve Windows 10'],
      ['3065987', '3050265', 'Y', ' ', 'Y', 'Windows Update Client for Windows 7 and Windows Server 2008 R2: July 2015'],
      ['3065988', '3050267', ' ', 'Y', 'Y', 'Windows Update Client for Windows 8.1 and Windows Server 2012 R2: July 2015'],
      ['3068707',        '', ' ', ' ', ' ', 'NOT FOUND, but reported to be telemetry related'],
      ['3068708', '3022345', 'Y', 'Y', ' ', 'Update for customer experience and diagnostic telemetry'],
      ['3072318',        '', ' ', 'Y', ' ', 'Update for Windows 8.1 OOBE to upgrade to Windows 10'],
      ['3075249',        '', 'Y', 'Y', ' ', 'Update that adds telemetry points to consent.exe in Windows 8.1 and Windows 7'],
      ['3075851', '3065987', 'Y', ' ', 'Y', 'Windows Update Client for Windows 7 and Windows Server 2008 R2: August 2015'],
      ['3075853', '3065988', ' ', 'Y', 'Y', 'Windows Update Client for Windows 8.1 and Windows Server 2012 R2: August 2015'],
      ['3080149', '3022345', 'Y', 'Y', ' ', 'Update for customer experience and diagnostic telemetry'],
      ['3081954',        '', 'Y', ' ', ' ', 'Update for Work Folders improvements in Windows 7 SP1'],
      ['3083324', '3075851', 'Y', ' ', 'Y', 'Windows Update Client for Windows 7 and Windows Server 2008 R2: September 2015'],
      ['3083325', '3075853',  '', 'Y', 'Y', 'Windows Update Client for Windows 8.1 and Windows Server 2012 R2: September 2015'],
      ['3083710', '3083324', 'Y', ' ', 'Y', 'Windows Update Client for Windows 7 and Windows Server 2008 R2: October 2015'],
      ['3083711', '3083325', ' ', 'Y', 'Y', 'Windows Update Client for Windows 8.1 and Windows Server 2012 R2: October 2015'],
      ['3090045',        '', 'Y', 'Y', ' ', 'Windows Update for reserved devices in Windows 8.1 or Windows 7 SP1'],
      ['3112336',        '', ' ', 'Y', 'Y', 'Windows Update Client for Windows 8.1 and Windows Server 2012 R2: December 2015'],
      ['3112343',        '', 'Y', ' ', 'Y', 'Windows Update Client for Windows 7 and Windows Server 2008 R2: December 2015'],
      ['3123862',        '', 'Y', 'Y', ' ', 'Updated capabilities to upgrade Windows 8.1 and Windows 7'],
      ['3135445',        '', 'Y', ' ', 'Y', 'Windows Update Client for Windows 7 and Windows Server 2008 R2: February 2016'],
      ['3135449',        '', ' ', 'Y', 'Y', 'Windows Update Client for Windows 8.1 and Windows Server 2012 R2: February 2016'],
      ['3138612',        '', 'Y', ' ', 'Y', 'Windows Update Client for Windows 7 and Windows Server 2008 R2: March 2016'],
      ['3138615',        '', ' ', 'Y', 'Y', 'Windows Update Client for Windows 8.1 and Windows Server 2012 R2: March 2016'],
      ['3139929',        '', 'Y', 'Y', ' ', 'MS16-023: Security update for Internet Explorer: March 8, 2016'],
      ['3146449',        '', 'Y', 'Y', ' ', 'Updated Internet Explorer 11 capabilities to upgrade Windows 8.1 and Windows 7'],
      //  KB      Replaces    7    8    UC   Description
    ];
    
    var cmdsTbl = [
      ['Uninstall an update',                     'wusa /uninstall /kb:3035583'],
      ['Uninstall an update',                     'wusa /uninstall /kb:3035583 /quiet /norestart'],
      ['Check for installed update (PowerShell)', 'get-hotfix -id KB3035583'],
      ['Check for installed update',              'wmic qfe where HotFixID="KB3035583" list /format:list'],
      ['Show installed updates',                  'wmic qfe list /format:htable > "%USERPROFILE%/Desktop/InstalledUpdates.html"'],
      ['Show installed updates of interest',      'wmic qfe where ({hotFixIdOrList}) list /format:htable > "%USERPROFILE%/Desktop/InstalledUpdatesOfInterest.html"'],
      ['Show Scheduled Tasks Table',              'schtasks /query /v > "%USERPROFILE%/Desktop/ScheduledTasks.txt"'],
      ['Show Scheduled Tasks',                    'schtasks /query /v /fo LIST > "%USERPROFILE%/Desktop/ScheduledTasks.txt"'],
      ['Check for Scheduled Task',                'schtasks /query /v /fo LIST /tn "\\Microsoft\\Windows\\Customer Experience Improvement Program\\Consolidator"'],
      ['Change Scheduled Task',                   'schtasks /change /disable /tn "\\Microsoft\\Windows\\Customer Experience Improvement Program\\Consolidator"'],
    ];
    
    var searchUrlTemplates = [
    // These are for reference only.  They don't point to working search engines
    // ['S1', 'http://www.example.com/search?q={searchTerms}&foo={searchTerms}'],
    // ['S2', 'http://www.example.org/search?q={searchTerms}'],
    ];
    
    var kbUrlTemplate = 'https://support.microsoft.com/kb/{kb}';
    
    function getSearchLinks(kb) {
      var html = '';
      for(var i=0; i<searchUrlTemplates.length; i++) {
        if(i > 0)
          html += ' ';
        var text = searchUrlTemplates[i][0];
        var href = searchUrlTemplates[i][1].replace(/{searchTerms}/g, kb);
        html += '<a href="' + href + '">' + text + '</a>';
      }
      return(html);
    }
    
    function escapeHtml(str) {
      var div = document.createElement('div');
      div.appendChild(document.createTextNode(str));
      return div.innerHTML;
    };
    
    function showupdatesByYear() {
      var tbl = updatesByYearTbl;
      var html = '';
      for(var i=0; i<tbl.length; i++) {
        if(i > 0)
          html += ', ';
        html += '<a href="' + kbUrlTemplate.replace(/{kb}/g, tbl[i][0]) + '" target="_blank">' + tbl[i][1] + '</a>';
      }
      document.getElementById("updatesByYearHdr").innerHTML = "Description of Software Update Services and Windows Server Update Services changes in content for:";
      document.getElementById("updatesByYear").innerHTML = html;
    }
    
    function showupdatesOfInterest() {
      var tbl = updatesOfInterestTbl;
      var html = '<table class="data">';
      html += '<tr>'
      html += '<th>Search</th><th>KB</th><th>Replaces</th><th>Win7</th><th>Win8</th><th>UpdateClient</th><th>Description</th></tr>';
      for(var i=0; i<tbl.length; i++) {
        html += '<tr>';
        html += '<td>' + getSearchLinks('KB' + tbl[i][0]) + '</td>';
        html += '<td><a href="' + kbUrlTemplate.replace(/{kb}/g, tbl[i][0]) + '" target="_blank">KB' + tbl[i][0] + '</a></td>';
        html += '<td>'
        if(tbl[i][1] !== '') {
          html += '<a href="' + kbUrlTemplate.replace(/{kb}/g, tbl[i][0]) + '" target="_blank">KB' + tbl[i][1] + '</a>';
        }
        html += '</td>';
        html += '<td style="text-align:center">' + tbl[i][2] + '</td>';
        html += '<td style="text-align:center">' + tbl[i][3] + '</td>';
        html += '<td style="text-align:center">' + tbl[i][4] + '</td>';
        html += '<td>' + escapeHtml(tbl[i][5]) + '</td>';
        html += '</tr>';
      }
      html += '</table>';
      document.getElementById("updatesOfInterestHdr").innerHTML = updatesOfInterestTbl.length + ' Updates Of Interest:';
      document.getElementById("updatesOfInterest").innerHTML = html;
    }
    
    function showMiscCmds() {
      var tbl = cmdsTbl;
      var html = '<table class="cmds">';
      for(var i=0; i<tbl.length; i++) {
        html += '<tr><td class="cmdDesc">' + tbl[i][0] + ':</td><td>' + escapeHtml(tbl[i][1]) + '</td></tr>';
      }
      html += '</table>';
      tbl = updatesOfInterestTbl;
      var hotFixIdOrList = '';
      for(var i=0; i<tbl.length; i++) {
        if(i > 0) {
          hotFixIdOrList += ' OR ';
        }
        hotFixIdOrList += 'HotFixID="KB' + tbl[i][0] + '"';
      }
      document.getElementById("miscCmdsHdr").innerHTML = "Miscellaneous Commands:";
      document.getElementById("miscCmds").innerHTML = html.replace(/{hotFixIdOrList}/g, hotFixIdOrList);
    }
    
    function showNotes() {
      document.getElementById("footnotesHdr").innerHTML = "Footnotes:";
      document.getElementById("footnotes").style.visibility="visible";
    }
    
    function init() {
      document.title = verInfoStr;
      document.getElementById("verInfoStr").innerHTML = verInfoStr;
      showupdatesByYear();
      showupdatesOfInterest();
      showMiscCmds();
      showNotes();
    }
    </script>
    </head>
    <body onload="init();">
    <noscript>This page requires javascript</noscript>
    <div id="updatesByYearHdr" class="hdr"></div>
    <div id="updatesByYear"></div>
    <div id="updatesOfInterestHdr" class="hdr topgap"></div>
    <div id="updatesOfInterest"></div>
    <div id="miscCmdsHdr" class="hdr topgap"></div>
    <div id="miscCmds"></div>
    <div id="footnotesHdr" class="hdr topgap"></div>
    <div id="footnotes">
    <div>(1) My Updates Of Interest list should not be construed as a recommended block list.</div>
    <div>(2) Search links can be added to the Updates Of Interest table by modifying the searchUrlTemplates array.</div>
    <div>(3) Adapt this page and/or its lists to suit your own purposes :)</div>
    </div>
    <div id="verInfoStr" class="hdr topgap"></div>
    </body>
    </html>
    
    Code:
    @rem Version 0.5 - Mar 24 2016
    @echo off
    SetLocal EnableDelayedExpansion
    echo.
    
    rem  This batch file checks for installed updates that are of interest to
    rem  me.  It also provides a way to selectively remove each of the updates.
    rem  You should adjust the list of updates to match those that *you* are
    rem  interested in.  If you intend to uninstall any updates, please
    rem  research them first so that you understand the consequences.
    
    rem  mode=0: Just scan for updates.  Provide no option to uninstall those that are found.
    rem  mode=1: Prompt to uninstall found updates, but only pretend to uninstall (for testing)
    rem  mode=2: Prompt to uninstall found updates and uninstall them (for production use)
    set mode=0
    
    rem Allow mode to be adjusted via cmdline argument
    if not "%1%"=="" (
      if "%1"=="0" (
        set mode=0
        goto :proceed1
      )
      if "%1"=="1" (
        set mode=1
        goto :proceed1
      )
      if "%1"=="2" (
        set mode=2
        goto :proceed1
      )
      echo Invalid mode argument
      goto :error
    )
    
    :proceed1
    set modeDesc=Invalid mode
    if "%mode%"=="0" (
      set modeDesc=Mode 0 - Just scan for updates of interest
      goto :proceed2
    )
    if "%mode%"=="1" (
      set modeDesc=Mode 1 - Scan for updates of interest and PRETEND to uninstall those selected
      goto :proceed2
    )
    if "%mode%"=="2" (
      set modeDesc=Mode 2 - Scan for updates of interest and uninstall those selected
      goto :proceed2
    )
    echo !modeDesc!
    goto :error
    
    :proceed2
    echo !modeDesc!
    echo.
    set updatesOfInterestFound=0
    set updatesOfInterestUninstalled=0
    
    rem  Using a temp file to decrease database queries and thereby increase speed
    set installedUpdatesListFile=%TEMP%\__InstalledUpdatesListFile.txt
    if exist "%installedUpdatesListFile%" (
      del /Q /F "%installedUpdatesListFile%"
      if exist "%installedUpdatesListFile%" (
        echo Can't delete %installedUpdatesListFile%
        goto :error
      )
    )
    for /f "delims= " %%i in ('wmic qfe get hotfixid') do (
      if not "%%i"=="HotFixID" (
        echo %%i>> %installedUpdatesListFile%
      )
    )
    
    rem  This is the list of calls that you would adjust
    call :check 971033  " Update for Windows Activation Technologies"
    call :check 2876229 "Skype for Microsoft Update"
    call :check 2902907 "NOT FOUND, possibly Microsoft Security Essentials related"
    call :check 2922324 "NOT FOUND, no ideas either"
    call :check 2952664 "Compatibility update for upgrading Windows 7"
    call :check 2976978 "Compatibility update for Windows 8.1 and Windows 8 "
    call :check 2976987 "NOT FOUND, looks like it might be a typo"
    call :check 2977759 "Compatibility update for upgrading Windows 7"
    call :check 2990214 "Update that enables you to upgrade from Windows 7 to a later version of Windows"
    call :check 3008188 "November 2014 Windows Update client improvements in Windows 8.1 or Windows Server 2012 R2"
    call :check 3008273 "An update to enable an automatic update from Windows 8 to Windows 8.1']"
    call :check 3012973 "NOT FOUND, but reported to be the Upgrade to Windows 10 Pro"
    call :check 3015249 "NOT FOUND, no ideas either"
    call :check 3021917 "Update to Windows 7 SP1 for performance improvements"
    call :check 3022345 "Update for customer experience and diagnostic telemetry"
    call :check 3035583 "Update installs Get Windows 10 app in Windows 8.1 and Windows 7 SP1"
    call :check 3044374 "Update that enables you to upgrade from Windows 8.1 to Windows 10"
    call :check 3046480 "Update helps to determine whether to migrate the .NET Framework 1.1 when you upgrade Windows 8.1 or Windows 7"
    call :check 3050265 "Windows Update Client for Windows 7: June 2015"
    call :check 3050267 "Windows Update Client for Windows 8.1: June 2015"
    call :check 3063822 "NOT FOUND, possibly Microsoft Security Essentials related"
    call :check 3064683 "Windows 8.1 OOBE modifications to reserve Windows 10"
    call :check 3065987 "Windows Update Client for Windows 7 and Windows Server 2008 R2: July 2015"
    call :check 3065988 "Windows Update Client for Windows 8.1 and Windows Server 2012 R2: July 2015"
    call :check 3068707 "NOT FOUND, but reported to be telemetry related"
    call :check 3068708 "Update for customer experience and diagnostic telemetry"
    call :check 3072318 "Update for Windows 8.1 OOBE to upgrade to Windows 10"
    call :check 3075249 "Update that adds telemetry points to consent.exe in Windows 8.1 and Windows 7"
    call :check 3075851 "Windows Update Client for Windows 7 and Windows Server 2008 R2: August 2015"
    call :check 3075853 "Windows Update Client for Windows 8.1 and Windows Server 2012 R2: August 2015"
    call :check 3080149 "Update for customer experience and diagnostic telemetry"
    call :check 3081954 "Update for Work Folders improvements in Windows 7 SP1"
    call :check 3083324 "Windows Update Client for Windows 7 and Windows Server 2008 R2: September 2015"
    call :check 3083325 "Windows Update Client for Windows 8.1 and Windows Server 2012 R2: September 2015"
    call :check 3083710 "Windows Update Client for Windows 7 and Windows Server 2008 R2: October 2015"
    call :check 3083711 "Windows Update Client for Windows 8.1 and Windows Server 2012 R2: October 2015"
    call :check 3090045 "Windows Update for reserved devices in Windows 8.1 or Windows 7 SP1"
    call :check 3112336 "Windows Update Client for Windows 8.1 and Windows Server 2012 R2: December 2015"
    call :check 3112343 "Windows Update Client for Windows 7 and Windows Server 2008 R2: December 2015"
    call :check 3123862 "Updated capabilities to upgrade Windows 8.1 and Windows 7"
    call :check 3135445 "Windows Update Client for Windows 7 and Windows Server 2008 R2: February 2016"
    call :check 3135449 "Windows Update Client for Windows 8.1 and Windows Server 2012 R2: February 2016"
    call :check 3138612 "Windows Update Client for Windows 7 and Windows Server 2008 R2: March 2016"
    call :check 3138615 "Windows Update Client for Windows 8.1 and Windows Server 2012 R2: March 2016"
    call :check 3139929 "MS16-023: Security update for Internet Explorer: March 8, 2016"
    call :check 3146449 "Updated Internet Explorer 11 capabilities to upgrade Windows 8.1 and Windows 7"
    
    goto :end
    
    :check
    set kbNum=%1
    set kbStr=KB%kbNum%
    set kbDesc=%2
    
    findstr /r "^%kbStr%$" %installedUpdatesListFile% >nul
    if "%errorlevel%"=="0" (
      echo Found: %kbStr%  %kbDesc%
      set /a updatesOfInterestFound=%updatesOfInterestFound%+1
      if not "%mode%"=="0" (
        set input=n
        set /p input="Uninstall? (Y for Yes, anything else for No): "
        if /i "!input!"=="y" (
          set uninstallCmd=wusa.exe /uninstall /kb:%kbNum% /quiet /norestart
          if "%mode%"=="1" (
            echo Pretending to run: !uninstallCmd!
          )
          if "%mode%"=="2" (
            echo Uninstalling: %kbStr%
            !uninstallCmd!
            rem ToDo: Add error checking
          )
          set /a updatesOfInterestUninstalled=%updatesOfInterestUninstalled%+1
        )
        echo.
      )
    )
    exit /b 0
    
    :error
    endlocal
    exit /b 1
    
    :end
    if exist "%installedUpdatesListFile%" (
      del /Q /F "%installedUpdatesListFile%"
      if exist "%installedUpdatesListFile%" (
        echo Can't delete %installedUpdatesListFile%
      )
    )
    echo.
    echo Updates of interest found: %updatesOfInterestFound%
    if not "%updatesOfInterestFound%"=="0" (
      echo Updates of interest uninstalled: %updatesOfInterestUninstalled%
      if not "%updatesOfInterestUninstalled%"=="0" (
        echo A restart may be necessary.
        if "%mode%"=="1" (
          echo.
          echo WARNING: Mode 1, so we only PRETENDED to uninstall updates.
          echo.
          pause
        )
      )
    )
    endlocal
    exit /b 0
    
     
Loading...