web-dev-qa-db-fra.com

Arrêt de toutes les mises à jour automatiques Windows 10

Nous avons mis à niveau certaines machines vers Windows 10 et avons réalisé que certaines mises à jour étaient mises à jour si nécessaire. Cependant, j’ai réalisé qu’il n’y avait pas d’option disponible pour arrêter le téléchargement de la même manière que celle sur Windows 7 et 8.1. Le seul moyen d'arrêter le téléchargement était d'arrêter le service Windows Update .

Ma question est la suivante: est-ce que quelqu'un sait comment arrêter les mises à jour automatiques ou si le service est la seule solution?

72
Izzy

si vous avez l'édition Pro, ouvrez l'éditeur de règles de groupe (gpedit.msc) } _ recherchez l'entrée Configure automatic updates, située à l'adresse:

computer configuration → administrative templates → windows components → windows update

enter image description here

et sélectionnez Notify for download and notify for install.

Lorsque Windows détecte de nouvelles mises à jour une notification de pain grillé est affichée .

enter image description here

Vous pouvez également utiliser l'utilitaire de résolution des problèmes à partir de Update KB3073930 pour désactiver certaines mises à jour problématiques afin qu'elles ne soient plus installées.

enter image description here

enter image description here

C’est la manière officielle de Microsoft d’empêcher l’installation de pilotes et de mises à jour indésirables.

Mais il existe un outil tiers appelé Windows Update MiniTool qui permet de sélectionner les mises à jour pouvant être installées et de bloquer les mises à jour comme dans les versions antérieures de Windows.

enter image description here

Une alternative à la mise à jour Windows standard Ce que vous pouvez faire:
• Vérifier les mises à jour
• Télécharger les mises à jour
• Installation de mises à jour
• Suppression des mises à jour installées
Masquage des mises à jour non désirées
• Obtenez des liens directs vers les fichiers de mise à jour * .cab/* .Exe/* .Psf
• Afficher l'historique des mises à jour
Configurer les mises à jour automatiques
• Cet outil ressemble au module externe PowerShell PSWindowsUpdate, mais comporte des fonctionnalités beaucoup plus avancées et conviviales.
• L'outil utilise et utilise la même infrastructure WU, tous les téléchargements se font par le biais de WU il ne s'agit pas d'un téléchargeur.

L'utilisateur (slavanap } _ a posté un deuxième outil dans un commentaire qui permet d'installer de manière sélective les mises à jour. Il s’appelle _ { Windows10 Manual Update et est disponible sur github } _:

enter image description here .

Dans la mise à jour des créateurs Windows 10, il existe une option pour arrêter les mises à jour Windows pendant 35 jours:

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

sous Paramètres App où sont les options de Windows Update.

41
magicandre1981

L’un des aspects les plus controversés de Windows 10 est la décision de Microsoft de rendre les mises à jour obligatoires. Si vous possédez des éditions Windows 10 Pro, Enterprise ou Education, vous pouvez différer les mises à jour, mais vous ne pouvez pas les rejeter d'emblée.

Si vous n'êtes pas satisfait de l'installation forcée par Microsoft de mises à jour sur votre système sans votre mot à dire, vous pouvez bloquer cette fonction à l'aide de la W10Privacy.

Si vous n’avez jamais entendu parler de ce programme avant de le vérifier, il vous permet de contrôler les nombreuses fonctions de confidentialité de Windows 10, ce qui vous permet d’empêcher le système d’exploration de fouiller ce que vous faites. Les options sont codées par couleur afin que vous puissiez voir en un coup d'œil si vous pouvez changer/désactiver ou non quelque chose de sûr.

Dans W10Privacy 2 , vous pouvez maintenant configurer le programme pour désactiver le mécanisme de mise à jour de Windows 10 et le remplacer par le sien. Les utilisateurs peuvent choisir les mises à jour à installer et celles à ignorer. Tout le monde ne devrait pas le faire, mais vous pouvez facilement inverser les étapes si vous en aviez besoin.

Avant de pouvoir utiliser cette fonction, vous devez télécharger des composants supplémentaires. Suivez ces étapes:

  • Téléchargez W10Privacy 2 et décompressez-le dans un dossier de votre disque dur.
  • Téléchargez PsExec (partie du paquet PsTools ) et copiez-le dans le dossier W10Privacy.
  • Téléchargez le module Windows Update PowerShell à partir de Technet et décompressez-le dans un sous-dossier du dossier W10Privacy.
  • Cliquez avec le bouton droit sur W10Privacy.exe et choisissez Exécuter en tant qu'administrateur dans le menu contextuel. Choisissez de créer un point de restauration du système. Cela vaut également la peine de faire une sauvegarde complète du système (juste au cas où).
  • Allez à Extras> Mises à jour Windows pour gérer les options. Il y a six cases à cocher différentes. Aucun n'est activé par défaut. Elles sont:
  • Le module de mise à jour PSWindows existe (il doit être préalablement fourni par l'utilisateur dans le dossier W10Privacy).
  • PsExec.exe dans le dossier W10Privacy (doit être fourni par l'utilisateur). W10Privacy adaptation du module de mise à jour PSWindows.
  • Configurez le faux serveur WSUS.

  • W10Privacy est situé dans un chemin/dossier sans espaces. Ne considérez pas les pilotes dans Update Search.

  • En supposant que vous souhaitiez gérer les mises à jour manuellement, cochez les cinq premières options. La sixième option vous permet de décider si vous souhaitez répertorier les pilotes avec les mises à jour. C'est toi qui décides.
  • Cliquez sur Définir les paramètres modifiés, puis sur le bouton Commencer à vérifier les mises à jour. Toutes les nouvelles mises à jour non encore installées s'affichent et vous pouvez choisir l'action à entreprendre.

 Screenshot

Une fois que vous avez pris en charge vos mises à jour, lancez le logiciel régulièrement et vérifiez que vous ne manquez aucune mise à jour importante.

 enter image description here

Crédits:

  1. Comment obtenir un contrôle total sur les mises à jour automatiques de Windows 10
11
xavier_fakerat

Avec l’aide de @Ramhound, j’ai réussi à comprendre comment arrêter les mises à jour automatiques sous Windows 10.

Veuillez noter que ceci s'applique à Windows 10 Pro car c'est la version que j'utilise.

Pour arrêter les mises à jour Autmatic, vous pouvez procéder comme suit:

  1. Paramètres ouverts
  2. Cliquez sur Update & security
  3. Cliquez sur Advanced options enter image description here
  4. Assurez-vous que l'option Defer upgrades est cochée  enter image description here
  5. Fermez la fenêtre des paramètres et le tour est joué!

Mise à jour

Comme mentionné dans les commentaires de @Vinayak, l'option de report est désormais disponible pour les utilisateurs à domicile. Informations complémentaires ici

7
Izzy

Pour les utilisateurs particuliers de Windows 10

Essayez la méthode suivante à partir de Windows Central . Fondamentalement, vous désactiverez le service de redémarrage, pas le service de mise à jour. Vous pouvez ensuite redémarrer à tout moment. Veuillez noter que vous avez besoin de privilèges d'administrateur, mais je suppose que vous l'avez déjà depuis que vous utilisez Windows Home Edition.

  1. Dans une fenêtre de l'Explorateur Windows, renommez le fichier: C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot (en supposant que votre %windir% est C:\) en Reboot.old. _ {Notez que vous serez invité à accéder à l'administrateur ici.} _
  2. Créez un répertoire nommé Reboot dans C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\. Cela empêchera Windows de recréer un fichier portant le même nom. _ {Notez que vous serez invité à accéder à l'administrateur ici.} _
  3. Redémarrez la machine. Cela réinitialisera tous les services et empêchera le démarrage du service de redémarrage.

Veuillez noter que ceci n'est pas promu par Microsoft. Mais là encore, vous ne contrôlez pas non plus votre propre planning de démarrage, alors prenez ce MS! Sérieusement, si vous ne savez pas ce que vous faites, comprenez les risques que vous courez en suivant les instructions à partir d'Internet. C’est certainement assez simple pour que la compréhension de Windows 95 puisse expliquer ce qui se passe ici.

5
Sablefoste

 windows_update_toggle
Refonte massive de fichiers batch précédents bascule suite en script unique avec blocage des meilleures pratiques!
Regardez-le en action

Interface utilisateur dynamique du menu contextuel du menu contextuel du bureau avec des bascules pour tout!
Activer/désactiver tous les blocs, Renouveler (à partir de Pastebin) ou désinstaller les options de script

Masquer/Afficher/Installer les listes de mises à jour avec counter!
Les listes sont mises à jour automatiquement chaque fois que Windows vous harcèle via MusNotification!

Bloque indépendamment les mises à niveau, les installations automatiques, les téléchargements, le service
IFEO Blocage sécurisé sans changement de propriétaire destructif, suppression de fichiers ni suppression de tâches

Concentration sur les mises à jour de Defender fonctionnant indépendamment
Désactiver les mises à jour automatiques de Windows Mayhem ne sacrifiera pas la couche de protection intégrée,
pas comme les autres -DIY- "gestion" des mises à jour

windows_update_toggle.bat

@set @version=10.0 /* &title Windows Update Toggle
@echo off &set "verbose="
echo.
echo      ---------------------------------------------------------------------
echo     :                  Windows Update Toggle v10.0 final                  :
echo     :---------------------------------------------------------------------:
echo     :      Block/Enable Upgrades, Installs, Downloads(!), Service(!)      :
echo     :         Disable/Enable Reporting, Speech, SearchUI, Defender        :
echo     :        Hide/Unhide/Apply update lists with count and max size       :
echo     :       Preset for Defender updates and Store downloads working       :
echo     :                                                                     :
echo     :     Toggle from the comfort of Desktop right-click context menu     :
echo      ---------------------------------------------------------------------
echo.
:: AveYo, 2018-05-13

if %1.==. timeout /t 10 &call wscript /e:JScript "%~f0" runas setup &exit/b &rem : no arguments, run setup elevated
if %1.==shift. shift &shift &rem : if loaded by WScript, shift args to prevent loop and restore %0
if %1.==. echo ERROR! &timeout /t 5 &exit/b : must have at least one arg

:: Setup executable blocking via ifeo
set notifier=EOSNotify MusNotification
set upgrader=Windows10UpgraderApp Windows10Upgrade WindowsUpdateBox SetupHost setupprep
set installer=wuauclt
set reporter=wermgr wsqmcons DiagTrackRunner DiagnosticsHub.StandardCollector.Service CompatTelRunner
set speecher=SpeechRuntime SpeechModelDownload
set searcher=SearchUI

set "exe=%notifier% %upgrader% %installer% %reporter%"
set "noop=%SystemRoot%\system32\systray.exe"
set "ifeo=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
set "menu=HKCR\DesktopBackground\Shell\WUT"
set "f0=%SystemRoot%\windows_update_toggle.bat"
set "task=wscript.exe /e:JScript \"%f0%\" schtasks WUT"
set "DefMUS={MicrosoftUpdateServer|MMPC|InternalDefinitionUpdateServer}"
set "DefMMPC={MMPC|MicrosoftUpdateServer|InternalDefinitionUpdateServer}"
set ".=>nul 2>nul"
for /f "tokens=2 delims=1234567890" %%# in ('shutdown /?^|findstr /bc:"E"') do set "[T]=%%#" &rem : cosmetic usage in menus
if defined verbose (echo on &set ".=" &set "window=") else set "window=hide"
call :%~1 %2 %3 %4 %5 %6 %7 %8 %9 &rem : launch secondary functions below dinamically, passing next args
echo.
echo Done! Use the Desktop right-click context menu to toggle, renew or uninstall
if "%~1"=="setup" (pause) else if defined verbose timeout /t 5
exit/b : End of main script, functions below

:refresh context menu
echo %0 %*
call :reg_query "HKLM\SOFTWARE\WUT.bat" NoBlock noblock
if "%noblock%"=="Enable" exit/b
call :reg_query "%menu%0pending" MUIVerb pending
if defined pending exit/b
for %%# in ("1hide" "2unhide" "3apply") do reg delete "%menu%%%~#" /f %.%
reg add "%menu%0pending" /v MUIVerb /d "Pending.." /f %.%
reg add "%menu%0pending" /v SubCommands /d "" /f %.%
call :reg_query "HKLM\SOFTWARE\WUT.bat" NoRefresh norefresh
if "%norefresh%"=="Disable" start "WUT" wscript /e:JScript "%f0%" WUTRefresh
call :status SetupHost
reg add "%menu%\Shell\3Upgrades"   /v MUIVerb /d "Upgrades %[T]% [setuphost]    %toggle%" /f %.%
reg add "%menu%\Shell\3Upgrades\command" /ve /d "%task%\upgrades" /f %.%
call :status wuauclt
reg add "%menu%\Shell\4Installs"   /v MUIVerb /d "Installs %[T]% [wuauclt]    %toggle%" /f %.%
reg add "%menu%\Shell\4Installs\command" /ve /d "%task%\installs" /f %.%
for /f "tokens=3" %%# in ('sc qc TrustedInstaller ^| find /I "WUTblocked"') do set "blocked=%%#"
if /i "%blocked%"=="[WUTblocked]" (set "toggle=blocked") else set "toggle=enabled"
reg add "%menu%\Shell\5Downloads"  /v MUIVerb /d "Downloads ( ! ) %[T]% [trustedinstaller]    %toggle%" /f %.%
reg add "%menu%\Shell\5Downloads\command" /ve /d "%task%\downloads" /f %.%
for /f "tokens=3" %%# in ('sc qc wuauserv ^| find /I "WUTblocked"') do set "blocked=%%#"
if /i "%blocked%"=="rpcss[WUTblocked]" (set "toggle=blocked") else set "toggle=enabled"
reg add "%menu%\Shell\6Service"    /v MUIVerb /d "Service ( ! ) %[T]% [wuauserv]    %toggle%" /f %.%
reg add "%menu%\Shell\6Service\command" /ve /d "%task%\service" /f %.%
call :status wermgr
reg add "%menu%\Shell\81Report"    /v MUIVerb /d "Report    %[T]% %toggle%" /f %.%
reg add "%menu%\Shell\81Report\command" /ve /d "%task%\report" /f %.%
call :status SpeechRuntime
reg add "%menu%\Shell\82Speech"    /v MUIVerb /d "Speech    %[T]% %toggle%" /f %.%
reg add "%menu%\Shell\82Speech\command" /ve /d "%task%\speech" /f %.%
call :status SearchUI
reg add "%menu%\Shell\83Search"    /v MUIVerb /d "SearchUI  %[T]% %toggle%" /f %.%
reg add "%menu%\Shell\83Search\command" /ve /d "%task%\search" /f %.%
set "defstatus=if((Get-MpPreference).DisableRealtimeMonitoring){write-Host stopped}else{write-Host enabled}"
for /f "delims=" %%# in ('call powershell.exe -c "%defstatus%;"') do set "toggle=%%#"
reg add "%menu%\Shell\84Defender"  /v MUIVerb /d "Defender  %[T]% %toggle%" /f %.%
reg add "%menu%\Shell\84Defender\command" /ve /d "%task%\defender" /f %.%
if "%norefresh%"=="Enable" reg delete "%menu%0pending" /f %.%
exit/b

:toggle WUT
echo %0 %*
call :reg_query "HKLM\SOFTWARE\WUT.bat" NoBlock noblock
if "%noblock%"=="Disable" (set "toggle=Enable") else set "toggle=Disable"
for %%# in (NoBlock NoRefresh) do reg add "HKLM\SOFTWARE\WUT.bat" /v %%# /d "%toggle%" /f %.%
:: Generate WUT main context menu
for %%# in ("" "0pending" "1hide" "2unhide" "3apply") do reg delete "%menu%%%~#" /f %.%
reg add "%menu%" /v MUIVerb /d "Windows Update Toggle" /f %.%
reg add "%menu%" /v Icon /d "appwiz.cpl,5" /f %.%
reg add "%menu%" /v SubCommands /d "" /f %.%
reg add "%menu%\Shell\9Setup" /v MUIVerb /d "windows_update_toggle.bat v10.0" /f %.%
reg add "%menu%\Shell\9Setup" /v SubCommands /d "" /f %.%
reg add "%menu%\Shell\9Setup\Shell\1Toggle" /v MUIVerb /d "%toggle%" /f %.%
reg add "%menu%\Shell\9Setup\Shell\2Renew"  /v MUIVerb /d "Renew" /f %.%
reg add "%menu%\Shell\9Setup\Shell\3Remove" /v MUIVerb /d "Remove" /f %.%
reg add "%menu%\Shell\9Setup\Shell\1Toggle\command" /ve /d "%task%\toggle" /f %.%
reg add "%menu%\Shell\9Setup\Shell\2Renew\command"  /ve /d "%task%\renew" /f %.%
reg add "%menu%\Shell\9Setup\Shell\3Remove\command" /ve /d "%task%\remove" /f %.%
if "%toggle%"=="Disable" (
 reg add "%menu%\Shell\1Refresh" /v MUIVerb /d "Refresh" /f %.%
 reg add "%menu%\Shell\1Refresh\command" /ve /d "%task%\refresh" /f %.%
 reg add "%menu%\Shell\2Lists" /v MUIVerb /d "Hide / Unhide / Apply %[T]% enabled" /f %.%
 reg add "%menu%\Shell\2Lists\command" /ve /d "%task%\lists" /f %.%
 reg add "%menu%\Shell\7Repair"     /v MUIVerb /d "Troubleshooter" /f %.%
 reg add "%menu%\Shell\7Repair\command" /ve /d "%task%\repair" /f %.%
)
:: Disabling automatic updates hinders Defender, so get definitions from MMPC first
if "%toggle%"=="Enable" ( set "DefSig=%DefMUS%" ) else set "DefSig=%DefMMPC%"
start "WUT:MpPref" wscript /e:JScript "%~f0" cmd "powershell.exe -c `Set-MpPreference -SignatureFallbackOrder %DefSig%;`"
:: Default services
sc config wuauserv type= share depend= rpcss %.%
sc config TrustedInstaller type= own depend= / %.%
:: Toggle ifeo exe blocking
for %%# in (%exe% %speech% %search%) do reg delete "%ifeo%\%%#.exe" /f %.%
if "%toggle%"=="Enable" exit/b WUT disabled, so skip the code below
for %%# in (%exe%) do reg add "%ifeo%\%%#.exe" /v Debugger /d "%noop%" /f %.% &taskkill /im "%%#.exe" /t /f %.%
:: WUTRefresh hijacking
for %%# in (MusNotification EOSNotify) do reg add "%ifeo%\%%#.exe" /v Debugger /d "%SystemRoot%\WUTRefresh.bat" /f %.%
call :refresh menu
exit/b

:hide update
echo %0 %*
call :reg_query "%menu%1hide\Shell\%~1" MUIVerb updatefound
echo -%updatefound%
if not defined updatefound exit/b
call wscript /e:JScript "%f0%" hide "%updatefound%"
exit/b

:unhide update
echo %0 %*
call :reg_query "%menu%2unhide\Shell\%~1" MUIVerb updatefound
echo -%updatefound%
if not defined updatefound exit/b
call wscript /e:JScript "%f0%" unhide "%updatefound%"
exit/b

:apply update
echo %0 %*
call :reg_query "%menu%3apply\Shell\%~1" MUIVerb updatefound
echo -%updatefound%
if not defined updatefound exit/b
:: Temporarily unblock downloads and installs
call :reg_query "%ifeo%\wuauclt.exe" Debugger installs_blocked
for /f "tokens=3" %%# in ('sc qc TrustedInstaller ^| find /I "WUTblocked"') do set "downloads_blocked=%%#"
call wscript /e:JScript "%f0%" apply "%updatefound%"
:: Restore block
if defined installs_blocked reg add "%ifeo%\wuauclt.exe" /v Debugger /d "%noop%" /f %.% &taskkill /im "wuauclt.exe" /t /f %.%
if defined downloads_blocked sc config TrustedInstaller type= own depend= [WUTblocked] %.%
exit/b

:lists
echo %0 %*
call :reg_query "HKLM\SOFTWARE\WUT.bat" NoRefresh norefresh
if "%norefresh%"=="Disable" ( set "norefresh=Enable" &set "toggle=disabled") else set "norefresh=Disable" &set "toggle=enabled"
reg add "HKLM\SOFTWARE\WUT.bat" /v NoRefresh /d "%norefresh%" /f %.%
reg add "%menu%\Shell\2Lists" /v MUIVerb /d "Hide / Unhide / Apply %[T]% %toggle%" /f %.%
reg add "%menu%\Shell\1Refresh" /v MUIVerb /d "Refresh" /f %.%
reg add "%menu%\Shell\1Refresh\command" /ve /d "%task%\refresh" /f %.%
if "%norefresh%"=="Enable" (
 reg delete "%menu%0pending" /f %.% &reg delete "%menu%1hide" /f %.% &reg delete "%menu%2unhide" /f %.%
 reg delete "%menu%3apply" /f %.% &reg delete "%menu%\Shell\1Refresh" /f %.%
)
call :refresh lists
exit/b

:upgrades
echo %0 %*
call :flip SetupHost
reg add "%menu%\Shell\3Upgrades"   /v MUIVerb /d "Upgrades %[T]% [setuphost]    %toggle%" /f %.%
for %%# in (%upgrader%) do if defined block (
 reg delete "%ifeo%\%%#.exe" /f %.%
) else (
 reg add "%ifeo%\%%#.exe" /v Debugger /d "%noop%" /f %.% &taskkill /im "%%#.exe" /t /f %.%
)
exit/b

:installs
echo %0 %*
call :flip wuauclt
reg add "%menu%\Shell\4Installs"   /v MUIVerb /d "Installs %[T]% [wuauclt]    %toggle%" /f %.%
for %%# in (%installer%) do if defined block (
 do reg delete "%ifeo%\%%#.exe" /f %.% &start "wt" wscript /e:JScript "%f0%" WUTRefresh
) else (
 reg add "%ifeo%\%%#.exe" /v Debugger /d "%SystemRoot%\WUTRefresh.bat" /f %.% &taskkill /im "%%#.exe" /t /f %.%
)
exit/b

:downloads
echo %0 %*
call :reg_query "%menu%3apply" MUIVerb pending
set "reboot=%pending:reboot=%"
if defined pending if "%pending%"=="%reboot%" set "pending="
if defined pending (
 sc config TrustedInstaller type= own depend= / %.%
 reg add "%menu%\Shell\5Downloads" /v MUIVerb /d "Downloads ( ! ) %[T]% [trustedinstaller]    reboot?" /f %.%
 exit/b
)
for /f "tokens=3" %%# in ('sc qc TrustedInstaller ^| find /I "WUTblocked"') do set "blocked=%%#"
if /i "%blocked%"=="[WUTblocked]" (set "blocked=/") else set "blocked=[WUTblocked]"
net stop TrustedInstaller /y %.%
for /f "tokens=3" %%# in ('sc queryex TrustedInstaller ^| find /i "PID"') do set "pid=%#"
if not "%pid%"=="0" taskkill /pid %pid% /f %.%
sc config TrustedInstaller type= own depend= %blocked% %.%
tasklist /svc | find /i "TrustedInstaller" %.%
if errorlevel 1 net start TrustedInstaller /y %.%
if errorlevel 1 (set "toggle=blocked") else set "toggle=enabled"
reg add "%menu%\Shell\5Downloads" /v MUIVerb /d "Downloads ( ! ) %[T]% [trustedinstaller]    %toggle%" /f %.%
if "%toggle%"=="enabled" start "WUT" wscript /e:JScript "%f0%" WUTRefresh
exit/b

:service
echo %0 %*
for /f "tokens=3" %%# in ('sc qc wuauserv ^| find /I "WUTblocked"') do set "blocked=%%#"
if /i "%blocked%"=="rpcss[WUTblocked]" (set "blocked=rpcss") else set "blocked=rpcss[WUTblocked]"
net stop wuauserv /y %.%
for /f "tokens=3" %%# in ('sc queryex wuauserv ^| find /i "PID"') do set "pid=%#"
if not "%pid%"=="0" taskkill /pid %pid% /f %.%
sc config wuauserv type= share depend= %blocked% %.%
tasklist /svc | find /i "wuauserv" %.%
if errorlevel 1 net start wuauserv /y %.%
if errorlevel 1 (set "toggle=blocked") else set "toggle=enabled"
reg add "%menu%\Shell\6Service" /v MUIVerb /d "Service ( ! ) %[T]% [wuauserv]    %toggle%" /f %.%
if "%toggle%"=="enabled" start "WUT" wscript /e:JScript "%f0%" WUTRefresh
exit/b

:repair
echo %0 %*
:: Restore services (undo only the changes made by this script, not whatever blocking was done by other means)
sc config wuauserv type= share depend= rpcss %.%
sc config TrustedInstaller type= own depend= / %.%
:: Remove any IFEO blocking done by past scripts
set eo=DiagnosticsHub.StandardCollector.Service WindowsUpdateElevatedInstaller LocationNotificationWindows InstallAgentUserBroker
set eo=%eo% UpdateNotificationMgr DataUsageLiveTileTask Windows10UpgraderApp WindowsActionDialog SpeechModelDownload WerFaultSecure
set eo=%eo% GetCurrentRollback WindowsUpdateBox Windows10Upgrade TrustedInstaller MusNotification DiagTrackRunner CompatTelRunner
set eo=%eo% WinREBootApp64 WinREBootApp32 UNPUXLauncher SpeechRuntime MusNotifyIcon PilotshubApp InstallAgent dstokenclean wsqmcons
set eo=%eo% disksnapshot osrssupdate wuapihost WaaSMedic UsoClient UNPUXHost SIHClient setupprep SetupHost osrssinst EOSNotify wusa
set eo=%eo% WerFault TiWorker SearchUI DWTRIG20 dusmtask dmclient appidtel wuauclt wermgr DFDWiz remsh reach HxTsr DWWIN DW20 GWX
for %%# in (%eo%) do reg delete "%ifeo%\%%#.exe" /f %.%
:: Restore notification hijacking
>"%SystemRoot%\WUTRefresh.bat" echo/@start "WUTRefresh" /min wscript.exe /e:JScript "%f0%" WUTRefresh
for %%# in (MusNotification EOSNotify) do reg add "%ifeo%\%%#.exe" /v Debugger /d "%SystemRoot%\WUTRefresh.bat" /f %.%
:: Remove pending instance safeguard
reg delete "HKLM\SOFTWARE\WUT.bat" /v Pending /f %.%
:: Refresh menu
call :refresh repair
:: Open Update Diagnostic
start "wud" msdt.exe /id WindowsUpdateDiagnostic %.%
:: Open official update troubleshooter page
start https://support.Microsoft.com/en-us/help/4027322/windows-update-troubleshooter %.%
exit/b

:report
echo %0 %*
call :flip wermgr
reg add "%menu%\Shell\81Report"    /v MUIVerb /d "Report    %[T]% %toggle%" /f %.%
for %%# in (%reporter%) do if defined block ( reg delete "%ifeo%\%%#.exe" /f %.% ) else (
 reg add "%ifeo%\%%#.exe" /v Debugger /d "%noop%" /f %.% &taskkill /im "%%#.exe" /t /f %.%
)
exit/b

:speech
echo %0 %*
call :flip SpeechRuntime
reg add "%menu%\Shell\82Speech"    /v MUIVerb /d "Speech    %[T]% %toggle%" /f %.%
for %%# in (%speecher%) do if defined block ( reg delete "%ifeo%\%%#.exe" /f %.% ) else (
 reg add "%ifeo%\%%#.exe" /v Debugger /d "%noop%" /f %.% &taskkill /im "%%#.exe" /t /f %.%
)
exit/b

:search
echo %0 %*
call :flip SearchUI
reg add "%menu%\Shell\83Search"    /v MUIVerb /d "SearchUI  %[T]% %toggle%" /f %.%
for %%# in (%searcher%) do if defined block ( reg delete "%ifeo%\%%#.exe" /f %.% ) else (
 reg add "%ifeo%\%%#.exe" /v Debugger /d "%noop%" /f %.% &taskkill /im "%%#.exe" /t /f %.%
)
exit/b

:defender
echo %0 %*
set "s10=$t=1;$toggle='stopped'; if((Get-MpPreference).DisableRealtimeMonitoring){$t=0;$toggle='enabled';}"
set "s11=Set-MpPreference -DisableRealtimeMonitoring $t"
set "s12=Set-MpPreference -DisableBehaviorMonitoring $t"
set "s13=Set-MpPreference -DisableIOAVProtection $t"
set "s14=write-Host $toggle"
for /f "delims=" %%# in ('call powershell.exe -c "%s10%;%s11%;%s12%;%s13%;%s14%;"') do set "toggle=%%#"
reg add "%menu%\Shell\84Defender"  /v MUIVerb /d "Defender  %[T]% %toggle%" /f %.%
exit/b

:update_defender - triggered from WScript to get definitions from MMPC, regardless of updates being blocked
tasklist /FI "IMAGENAME eq MpCmdRun.exe" | find ".exe" %.%
if not errorlevel 1 exit/b
pushd %ProgramFiles%\Windows Defender
call MpCmdRun.exe -removedefinitions -dynamicsignatures
call MpCmdRun.exe -SignatureUpdate -MMPC
exit/b

:setup
echo %0 %*
pushd %SystemRoot%
if /i "%~f0"=="%f0%" (set "initial_setup=") else copy /y "%~f0" "%f0%" %.%
:: Create WUTUndo for emergencies
 >WUTUndo.bat echo/pushd %%~dp0system32\config
>>WUTUndo.bat echo/reg load HKLM\WUTUndo1 SOFTWARE
>>WUTUndo.bat echo/set "koff=HKLM\WUTUndo1\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" ^&set "kon=%ifeo%"
>>WUTUndo.bat echo/for %%%%B in (%exe%) do for %%%%K in ("%%koff%%" "%%kon%%") do reg delete "%%%%~K\%%%%B.exe" /f 2^>nul
>>WUTUndo.bat echo/reg unload HKLM\WUTUndo1
>>WUTUndo.bat echo/reg load HKLM\WUTUndo2 SYSTEM
>>WUTUndo.bat echo/for %%%%K in (WUTUndo2 SYSTEM) do (
>>WUTUndo.bat echo/ reg delete "HKLM\%%%%~K\ControlSet001\Services\TrustedInstaller" /v DependOnService /f 2^>nul
>>WUTUndo.bat echo/ reg delete "HKLM\%%%%~K\CurrentControlSet\Services\TrustedInstaller" /v DependOnService /f 2^>nul
>>WUTUndo.bat echo/)
>>WUTUndo.bat echo/reg unload HKLM\WUTUndo2
:: Create WUTRefresh to Hijack update notifications and refresh context menu in addition to preventing forced reboots
>WUTRefresh.bat echo/@start "WUTRefresh" /min wscript.exe /e:JScript "%f0%" WUTRefresh
:: Create tasks to run context menu entries with proper access and no output window
start "WUT" wscript /e:JScript "%~f0" cmd "call `%~f0` setup_schtasks"
:: WUT options
for %%# in (NoBlock NoRefresh) do reg add "HKLM\SOFTWARE\WUT.bat" /v %%# /d "Enable" /f %.%
call :toggle blocking
exit/b

:setup_schtasks - no stalling separate process
set "strun=wscript.exe /e:JScript \"%f0%\" run%window%"
for %%t in (refresh lists upgrades installs downloads service repair report speech search defender toggle renew remove) do (
 schtasks /create /ru "%username%" /sc once /tn "WUT\%%t" /tr "%strun% %%t" /st "00:00:00" /it /rl highest /f %.%
)
for %%t in (hide unhide apply) do for /l %%n in (101,1,116) do (
 schtasks /create /ru "%username%" /sc once /tn "WUT\%%t\%%n" /tr "%strun% %%t %%n" /st "00:00:00" /it /rl highest /f %.%
)
exit/b

:renew
echo %0 %*
echo Renewing from internet - old version saved as %SystemRoot%\WUT.old
pushd %SystemRoot%
if exist WUT.new del /f /q WUT.new %.%
call wscript /e:JScript "%~f0" renew "https://Pastebin.com/raw/gNsLEWJe" "%SystemRoot%\WUT.new"
if exist WUT.new copy /y "%f0%" WUT.old %.% &copy /y WUT.new "%f0%" %.% &del /f /q WUT.new %.%
start "WUT" "%f0%" setup renew %.%
exit/b

:remove
echo %0 %*
for %%# in (NoBlock NoRefresh) do reg add "HKLM\SOFTWARE\WUT.bat" /v %%# /d "Disable" /f %.%
call :toggle off
reg delete "HKLM\SOFTWARE\WUT.bat" /f %.%
for %%# in ("" "0pending" "1hide" "2unhide" "3apply") do reg delete "%menu%%%~#" /f %.%
for %%t in (refresh lists upgrades installs downloads service repair report speech search defender toggle renew remove) do (
 schtasks /delete /tn "WUT\%%t" /f %.%
)
for %%t in (hide unhide apply) do for /l %%n in (101,1,116) do schtasks /delete /tn "WUT\%%t\%%n" /f %.%
for %%t in (hide unhide apply) do schtasks /delete /tn "WUT\%%t" /f %.%
schtasks /delete /tn "WUT" /f %.%
sc config wuauserv type= share depend= rpcss %.%
sc config TrustedInstaller type= own depend= / %.%
pushd %SystemRoot%
del /f /q WUT.bat WUT.old DefenderManualUpdate.bat WUTRefresh.bat WUTUndo.bat "%f0%" %.%
exit/b

:flip %1:exe
call :reg_query "%ifeo%\%~1.exe" Debugger block
if defined block (set "toggle=enabled") else set "toggle=blocked"
exit/b

:status %1:exe
call :reg_query "%ifeo%\%~1.exe" Debugger block
if defined block (set "toggle=blocked") else set "toggle=enabled"
exit/b

:reg_query %1:KeyName %2:ValueName %3:OutputVariable %4:other_options[example: "/t REG_DWORD"]
setlocal & for /f "skip=2 delims=" %%s in ('reg query "%~1" /v "%~2" /z 2^>nul') do set "rq=%%s" & call set "rv=%%rq:*)    =%%"
endlocal & set "%~3=%rv%" & exit/b &rem                                         AveYo: call :reg_query "HKCU\MyKey" "MyValue" MyVar

::---------------------------------------------------------------------------------------------------------------------------------
:JScript_functions                                                                 AveYo: Switch syntax highlighter to 'javascript'
::-------------------------------------------------------------------------------------------------------------------------------*/
f0=WSH.ScriptFullName; run=WSH.Arguments(0); args=''; for(i=1;i<WSH.Arguments.length;i++) args+=' "'+WSH.Arguments(i)+'"';
function sex(exe,args){WSH.CreateObject('Shell.Application').ShellExecute(exe,args,'','',0);}; function reg(s){ sex('reg.exe',s); }

// Open external commands in new hidden cmd instance - backquotes replaced to quotes
if (run=='cmd') sex('cmd','/c '+args.replace(/`/g,'"'));

// Context menu entries trigger - elevated with no popups
if (run=='schtasks') sex('SCHTASKS.EXE','/Run /TN '+args);

// Shift to CMD if loaded by WScript - pass arguments, prevent loop, run as admin at setup, hide window at context-menu
function cmd(adm,win){WSH.CreateObject('Shell.Application').ShellExecute('cmd','/c call "'+f0+'" shift "'+f0+'"'+args,'',adm,win);}
if (run=='run') cmd('',1); if (run=='runhide') cmd('',0); if (run=='runas') cmd('runas',1); if (run=='runashide') cmd('runas',0);

if (run=='renew') {
  // renew script over internet
  try{
  downloader=WSH.CreateObject("WinHttp.WinHttpRequest.5.1");
  if (downloader===null) downloader=WSH.CreateObject("WinHttp.WinHttpRequest");
  if (downloader===null) downloader=WSH.CreateObject("MSXML2.ServerXMLHTTP");
  if (downloader===null) downloader=WSH.CreateObject("Microsoft.XMLHTTP");
  downloader.Open("GET",WSH.Arguments(1),false); downloader.Send(); oASI=downloader.ResponseBody(); downloader=undefined;
  oASO=WSH.CreateObject("ADODB.Stream"); oASO.type=1; oASO.Mode=3; oASO.Open; oASO.Write(oASI); oASI=undefined;
  oASO.SaveToFile(WSH.Arguments(2)); oASO.Close();
  }catch(e){} // supress all errors since we're working with com objects
}

// WUT Hide/Unhide/Apply lists
if (run=='WUTRefresh' || run=='hide' || run=='unhide' || run=='apply') {
  SRP=GetObject("winmgmts:StdRegProv"); pending=SRP.GetStringValue(2147483650,'SOFTWARE\\WUT.bat','Pending');
  if (pending===0) WSH.quit(); else SRP.SetStringValue(2147483650,'SOFTWARE\\WUT.bat','Pending','yes'); // prevent instances
  k='HKCR\\DesktopBackground\\Shell\\WUT'; hk=k+'1hide'; uk=k+'2unhide'; ik=k+'3apply'; pk=k+'0pending';           // set list keys
  reg('delete "'+hk+'" /f'); reg('delete "'+uk+'" /f'); reg('delete "'+ik+'" /f');                               // delete previous
  reg('add "'+pk+'" /v MUIVerb /d "Pending.." /f'); reg('add "'+pk+'" /v SubCommands /d "" /f');             // add Pending.. entry
  // Check for updates
  count=0; wuthide=[]; wutunhide=[];
  try{
  session=WSH.CreateObject("Microsoft.Update.Session"); reboot=WSH.CreateObject("Microsoft.Update.SystemInfo").RebootRequired;
  searcher=session.CreateUpdateSearcher();
  sresult=searcher.Search("IsInstalled=0"); Updatelist=sresult.Updates; count=sresult.Updates.Count;
  for(i=0;i<count;i++) {
    itemTitle=Updatelist.Item(i).Title;
    minsize=Updatelist.Item(i).MinDownloadSize; maxsize=Updatelist.Item(i).MaxDownloadSize; wutsize='';
    if (maxsize > 1073741824) wutsize=' ['+Math.round(minsize/10737418.24)/100+' - '+Math.round(maxsize/10737418.24)/100+'GB]';
    else if (maxsize > 1048576) wutsize=' ['+Math.round(minsize/10485.76)/100+' - '+Math.round(maxsize/10485.76)/100+'MB]';
    else if (maxsize > 1024) wutsize=' ['+Math.round(minsize/10.24)/100+' - '+Math.round(maxsize/10.24)/100+'KB]';
    else if (maxsize > 0) wutsize=' ['+(minsize)+' - '+(maxsize)+'B]';
    wutTitle=Updatelist.Item(i).Title + wutsize;
    if (run=='apply' && WSH.Arguments(1).indexOf(itemTitle) > -1) {
      // Add matching entry to UpdateColl
      UpdateColl=WSH.CreateObject("Microsoft.Update.UpdateColl"); UpdateColl.Add(Updatelist.Item(i));
      // Download update
      downloader=session.CreateUpdateDownloader(); downloader.Updates=UpdateColl; dresult=downloader.Download();
      if (dresult.ResultCode==2) {
        // Unblock apply
        sex('sc','config TrustedInstaller type= own depend= /');
        KeyPath='SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\wuauclt.exe';
        SRP.DeleteKey(2147483650,KeyPath);
        WSH.Sleep(1000);
        //Apply update
        installer=session.CreateUpdateInstaller(); installer.Updates=UpdateColl; iresult=installer.Install();
        if (iresult.ResultCode==2) continue;
      }
    }
    // hide and unhide are very simple bool flip compared to apply
    if (run=='hide' && WSH.Arguments(1).indexOf(itemTitle) > -1) {
      Updatelist.Item(i).IsHidden=true; wutunhide.Push(wutTitle); continue;
    }
    if (run=='unhide' && WSH.Arguments(1).indexOf(itemTitle) > -1) {
      Updatelist.Item(i).IsHidden=false; wuthide.Push(wutTitle); continue;
    }
    // Trigger :update_defender to manually refresh definitions from MMPC
    if (Updatelist.Item(i).IsHidden===false && itemTitle.indexOf('(Definition') > -1) {
      sex('cmd','/c call "'+f0+'" update_defender');
    }
    // Sorting lists
    if (Updatelist.Item(i).IsHidden) wutunhide.Push(wutTitle); else wuthide.Push(wutTitle);
  }
  // Generate Hide context menu
  if (wuthide.length>0){
    for(i=101,n=wuthide.length+101;i<n;i++) {
      reg('add "'+hk+'\\Shell\\'+i+'" /v MUIVerb /d "'+wuthide[i-101]+'" /f');
      reg('add "'+hk+'\\Shell\\'+i+'\\command" /ve /d "wscript.exe /e:JScript \\"'+f0+'\\" schtasks WUT\\hide\\'+i+'" /f');
    }
    reg('add "'+hk+'" /v SubCommands /d "" /f');
    reg('add "'+hk+'" /v MUIVerb /d "Hide '+"\t"+wuthide.length+'" /f');
  }
  // Generate Unhide context menu
  if (wutunhide.length>0){
    for(i=101,n=wutunhide.length+101;i<n;i++) {
      reg('add "'+uk+'\\Shell\\'+i+'" /v MUIVerb /d "'+wutunhide[i-101]+'" /f');
      reg('add "'+uk+'\\Shell\\'+i+'\\command" /ve /d "wscript.exe /e:JScript \\"'+f0+'\\" schtasks WUT\\unhide\\'+i+'" /f');
    }
    reg('add "'+uk+'" /v SubCommands /d "" /f');
    reg('add "'+uk+'" /v MUIVerb /d "Unhide '+"\t"+wutunhide.length+'" /f');
  }
  // Generate Apply context menu
  if (wuthide.length>0){
    for(i=101,n=wuthide.length+101;i<n;i++) {
      reg('add "'+ik+'\\Shell\\'+i+'" /v MUIVerb /d "'+wuthide[i-101]+'" /f');
      reg('add "'+ik+'\\Shell\\'+i+'\\command" /ve /d "wscript.exe /e:JScript \\"'+f0+'\\" schtasks WUT\\apply\\'+i+'" /f');
    }
    reg('add "'+ik+'" /v SubCommands /d "" /f');
    reg('add "'+ik+'" /v MUIVerb /d "Apply '+"\t"+((reboot) ? 'must reboot' : wuthide.length)+'" /f');
  }
  }catch(e){} // supress all errors since we're working with com objects
  reg('delete "'+pk+'" /f'); SRP.DeleteValue(2147483650,'SOFTWARE\\WUT.bat','Pending'); // Remove Pending.. temporary entry
}
//

Dernière mise à jour pour la version 10.0 finale. Code mis à jour sur le lien Pastebin ci-dessus.

4
AveYo

Désactiver le service de mise à jour

  1. Win+R > services.msc
  2. Double-cliquez sur Windows Update et définissez le type de démarrage sur Désactivé. Pour le réactiver, retournez aux services et changez-le en automatique.

Source: Comment contrôler les mises à jour de Windows 1

2
Ooker

Dans mon cas, je veux non seulement contrôler le moment où les mises à jour de Windows sont publiées, mais également limiter le contrôle de toutes les applications installées sur leurs mises à jour en ligne.

Voici donc ma solution simple: 1. Bloquez l'accès Internet pour l'hôte côté routeur. Aucun des programmes ou services installés sur l'hôte ne peut accéder à Internet. Les mises à jour de Windows sont également bloquées.

  1. Installez un serveur proxy Squid sur un réseau local et attribuez le proxy aux applications qui leur permettent d'accéder à Internet. Ne définissez pas de proxy sur le Panneau de configuration | Option Internet, car il s’agit d’un proxy global, qui annule l’étape 1.

La plupart des applications prennent en charge les paramètres de proxy par application, tels que Chrome, Firefox, Tous les types de jeux, etc.

  1. Pour les applications qui ne prennent pas en charge les paramètres de proxy local, utilisez NAS cloud fold en tant que proxy proxy. Par exemple, les combinaisons Office 365 ne prennent pas en charge le proxy par programme. Vous pouvez ensuite configurer une NAS Synchronisation dans le cloud (par exemple, Synology NAS dispose de la synchronisation dans le cloud pour synchroniser OneDrive) afin de synchroniser les éléments de contenu d'un NAS, puis vous utiliserez ce pli en tant que pli local d'Office 365. Les avantages supplémentaires de cette méthode sont que vous obtenez une réponse très rapide sur les gros fichiers, car vous utilisez la vitesse du réseau local pour accéder à OneDrive.

En faisant cela, l'accès à Internet de votre ordinateur est grandement contrôlé par vous-même, personne ne peut vous gâcher.

Lorsque vous souhaitez mettre à jour Windows, définissez Panneau de configuration | Option Internet pour utiliser votre proxy local, donc Windows peut mettre à jour votre système d'exploitation. Après cela, désactivez immédiatement le proxy global pour que votre ordinateur soit à nouveau en paix.

1
Jack Wu

Enfin trouvé une solution permanente qui vient de fonctionne

Après avoir essayé littéralement tous astuce dans le livre, j'ai toujours été battu par Windows Update. J'ai essayé toutes les solutions ici, ainsi que des tonnes d'autres sources, et Windows a constamment trouvé le moyen de contrecarrer mes projets.

jusqu'à il y a environ 6 mois ...

J'ai trouvé une solution permanente pour désactiver TOUTES les mises à jour Windows à jamais, que le service ou autre soit en cours d'exécution. J'ai découvert cette méthode avec l'aide de nombreuses sources différentes qui traitaient de nombreuses choses différentes. Dans l’ensemble, j’ai trouvé cette méthode moi-même en utilisant des éléments d’information utilisés pour faire des choses qui n’étaient pas toutes liées à cela, mais cela fonctionne. Et ça marcheabsolument magnifique.

  1. Installer Proxy DNS acrylique à partir de ici

Il s’agit essentiellement d’une version optimisée du fichier hosts de Windows qui vous permet d’ajouter des fonctions telles que des caractères génériques, ce qui est nécessaire dans notre cas en raison des nombreuses sources que Windows obtient de ses mises à jour.

  1. Suivez les instructions ici pour que l’acrylique commence à faire son travail dans Win 10. Jolies choses simples.

  2. Allez dans votre menu de démarrage et cliquez sur " Modifier le fichier d’hôtes acrylique " sous Tous les programmes, affiché ici

  3. Ajoutez ces lignes au bas du fichier hosts, sans le signe # devant.

0.0.0.0 windowsupdate.Microsoft.com
0.0.0.0 * .windowsupdate.Microsoft.com
0.0.0.0 * .update.Microsoft.com
0.0.0.0 windowsupdate.com
0.0.0.0 * .windowsupdate.com
0.0.0.0 download.windowsupdate.com
0.0.0.0 download.Microsoft.com
0.0.0.0 * .download.windowsupdate.com
0.0.0.0 wustat.windows.com
0.0.0.0 ntservicepack.Microsoft.com
0.0.0.0 stats.Microsoft.com

Maintenant, le bas du fichier devrait ressembler à this . Enregistrez et fermez le fichier.

  1. Ouvrez le gestionnaire de tâches, allez dans l'onglet Services, cliquez sur "Ouvrir les services" en bas, sélectionnez Proxy DNS acrylique et cliquez ce bouton avec le cercle rouge pour redémarrer le service .

TERMIN&EACUTE;

Maintenant, votre ami Acrylic devrait avoir votre dos et garder constamment un œil attentif sur les tactiques de Big Brother de Microsoft pour s’assurer qu’ils ne peuvent pas vous forcer à installer des mises à jour qui dérangent complètement votre PC qu’ils ont au moins un quart du temps, ils le faisaient à la fois sur mon ordinateur personnel et sur mon Surface Pro qui est censé être le PC BUILT pour Windows, non ??? Cmon, Microsoft!

  1. Assurez-vous qu'il fonctionne en envoyant une requête ping sur l'un des sites Web figurant dans le code ci-dessus. Ouvrez cmd et tapez

ping windowsupdate.Microsoft.com

Si ceux-ci sont vos résultats, vous serez dorés à partir de maintenant !!

Remarque: d'après mon expérience, cela n'a pas du tout ralenti mon PC. En outre, il ne redirige pas le trafic Internet en dehors des requêtes vers les sources utilisées par Windows pour mettre à jour ou vérifier les mises à jour, ce qui est très similaire au fichier hosts. Il utilise également essentiellement le même format que le fichier hosts. Cela a également permis de désactiver avec succès la réinstallation des fichiers indésirables que Windows continue de placer sur mon ordinateur et qui affiche un écran couleur géant indiquant quelque chose du type "vous devez mettre à jour ou votre ordinateur va imploser". Évidemment, je ne me souviens pas de la mise en garde car cela fait si longtemps que je ne l’ai pas reçue (en raison d’un blocage total réussi il ya 6 mois environ), mais c’est la chose la plus agaçante que j’ai jamais vue.

1
Jackary Smith

L'état de Windows Update - à partir de 2019

Microsoft s’est efforcé de rendre Windows Update inévitable. C’est pourquoi les méthodes traditionnelles ne fonctionnent plus ou ne fonctionnent que pendant un temps limité.

Microsoft a ajouté des services système impossibles à désactiver dont le but est de mettre à jour Windows. Parmi ceux-ci, le service Update Orchestrator , chargé de télécharger, d’installer et de vérifier les mises à jour. S'il est arrêté, l'ordinateur ne peut plus télécharger et installer les mises à jour. C'est pourquoi il ne peut être désactivé que pour la session en cours et sera réactivé au prochain redémarrage.

Le service chargé de rendre Windows Update impossible à arrêter est le nouveau Windows Update Medic Service , chargé de maintenir Windows Update en fonctionnement. C’est ce service qui annule toutes les méthodes traditionnelles de blocage de Windows Update. Ainsi, on découvre périodiquement et de manière inattendue que les paramètres de Windows Update ont été réinitialisés à leurs valeurs d’origine et que Windows est revenu à imposer des mises à jour à l’utilisateur.

Le service Windows Update Medic ne peut pas être désactivé du tout. Toute tentative en ce sens se terminera par le message "Accès refusé".

Néanmoins, il existe un produit tiers pouvant bloquer totalement Windows Update: Windows Update Blocker . Ce produit gratuit est portable et peut désactiver/activer Windows Update en un seul clic. En fait, il peut également bloquer tout autre service Windows non bloquable. Il est rapporté que travaille toujours en 2018.

L'utilisation d'un produit tiers peut s'avérer plus sûre à long terme que de compter sur des fonctionnalités semi-documentées de Windows, susceptibles de changer sans préavis. Certains produits plus gratuits peuvent être trouvés dans cette réponse of mien, qui utilise l’API de Windows qui permet à tout programme d’opposer son veto à un arrêt imminent.

1
harrymc

Désactiver toutes les mises à jour Windows par PowerShell

(exécutez PowerShell en tant qu'administrateur)

Clear-Host

$WindowsUpdatePath = "HKLM:SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\"
$AutoUpdatePath = "HKLM:SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU"

If(Test-Path -Path $WindowsUpdatePath) {
    Remove-Item -Path $WindowsUpdatePath -Recurse
}

New-Item $WindowsUpdatePath -Force
New-Item $AutoUpdatePath -Force

Set-ItemProperty -Path $AutoUpdatePath -Name NoAutoUpdate -Value 1

Get-ScheduledTask -TaskPath "\Microsoft\Windows\WindowsUpdate\" | Disable-ScheduledTask

takeown /F C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator /A /R
icacls C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator /grant Administrators:F /T

Get-ScheduledTask -TaskPath "\Microsoft\Windows\UpdateOrchestrator\" | Disable-ScheduledTask

Stop-Service wuauserv
Set-Service wuauserv -StartupType Disabled

Write-Output "All Windows Updates were disabled"
0
frakon

Deux ans plus tard et des milliards d’œuvres non enregistrées perdues par le mécanisme de mise à jour de Microsoft, il existe enfin une mise à jour majeure qui résout le problème.

Windows 10 Creators Update maintenant disponible ( Téléchargement direct )

Après l’installation de la mise à jour, l’utilisateur finira par demander à nouveau (comme ceux insignifiants plus de 20 ans auparavant) s’il souhaite que la mise à jour soit appliquée:

 win10 new old update message

Parfois, je me demande qui est derrière ces décisions ...

Après la mise à jour, vous avez plus d'options concernant les temps de mise à jour. Pour les arrêter, sélectionnez Paramètres Windows Update> Options avancées> Suspendre les mises à jour> ON .

 pause updates

Sous Options de redémarrage, vous trouverez également une nouvelle option pour les notifications de mise à jour:

 notification updates

0
Kai Noack