Zatrzymywanie wszystkich automatycznych aktualizacji Windows 10

75

Uaktualniliśmy niektóre komputery do systemu Windows 10 i zdaliśmy sobie sprawę, że były pewne aktualizacje, które były aktualizowane w razie potrzeby. Uświadomiłem sobie jednak, że nie ma opcji zatrzymania pobierania podobnej do tej w Windows 7 i 8.1. Jedynym sposobem, w jaki mogłem zatrzymać pobieranie, było zatrzymanie usługi Windows Update .

Moje pytanie brzmi: czy ktoś zna sposób na zatrzymanie automatycznych aktualizacji lub czy zatrzymanie usługi jest jedynym rozwiązaniem?

Izzy
źródło
4
Jeśli masz system Windows 10 Home, nie można tego zrobić. Jeśli masz system Windows 10 Professional, możesz odroczyć aktualizacje o maksymalnie 8 miesięcy. jeśli masz system Windows 10 Enterprise, możesz odroczyć aktualizacje, pod warunkiem, że wskazałeś LSTB, którego chcesz użyć. Istnieje narzędzie, które można pobrać, które pozwoli Ci odroczyć poszczególne aktualizacje, jeśli spowodują problem. To pytanie zostało już zadane kilka razy. .
Ramhound
Ponadto na koniec dnia, aby otrzymywać przyszłe aktualizacje zabezpieczeń, system musi mieć wszystkie wymagane aktualizacje, nawet jeśli używasz systemu Windows 10 Professional. KB3073930 to narzędzie, które chcesz ukryć / odroczyć poszczególne aktualizacje.
Ramhound,
@Ramhound Rozumiem, że aktualizacje zabezpieczeń będą wymagane itp., Ale czasami chcesz je po prostu zatrzymać i uruchomić później. Korzystamy z wersji pro. Czy zdarzyłbyś się, gdzie mogę uzyskać narzędzie, o którym wspomniałeś w komentarzu?
Izzy
2
Zatrzymywanie i odraczanie to 2 różne rzeczy.
Moab
2
Pamiętaj, że wszystkie odpowiedzi tutaj dotyczą tylko aktualizacji z Windows Update, ale nie jest jasne, czy pytanie ma to obejmować. Wydaje się, że system Windows 10 ma dwie inne wbudowane metody aktualizacji: aktualizacje sterowników urządzeń są kontrolowane osobno (System & rarr; Zaawansowane ustawienia systemu & rarr; Sprzęt i rarr; Ustawienia instalacji urządzenia wydają się to obejmować) i automatyczna aktualizacja aplikacji Sklepu jest kontrolowana przez Sklep (myślę, że to powstrzyma również na przykład automatyczne instalowanie Candy Crush Soda Saga).
doshea

Odpowiedzi:

40

jeśli masz wersję Pro, otwórz edytor zasad grupy (gpedit.msc) i wyszukaj Configure automatic updateswpis, który znajduje się pod adresem:

computer configuration → administrative templates → windows components → windows update

wprowadź opis zdjęcia tutaj

i wybierz Notify for download and notify for install.

Gdy system Windows wykryje nowe aktualizacje , wyświetli powiadomienie toast .

wprowadź opis zdjęcia tutaj

Możesz także użyć narzędzia do rozwiązywania problemów z aktualizacji KB3073930, aby wyłączyć niektóre problematyczne aktualizacje, aby nie były ponownie instalowane.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Jest to oficjalny sposób firmy Microsoft, aby zapobiec instalacji niechcianych aktualizacji i sterowników.

Istnieje jednak narzędzie innej firmy o nazwie Windows Update MiniTool, które pozwala wybrać, które aktualizacje mogą zostać zainstalowane i pozwala blokować aktualizacje tak, jak w poprzednich wersjach systemu Windows.

wprowadź opis zdjęcia tutaj

Alternatywa dla standardowej Windows Update Co możesz zrobić:
• Sprawdź dostępność aktualizacji
• Pobierz aktualizacje
• Instalowanie aktualizacji
• Usuwanie zainstalowanych aktualizacji
Ukrywanie niechcianych aktualizacji
• Uzyskaj bezpośrednie łącza do plików aktualizacji * .cab / * .Exe / * .Psf
• Wyświetl historię aktualizacji
Konfiguruj automatyczne aktualizacje
• To narzędzie jest jak zewnętrzny moduł PowerShell PSWindowsUpdate, ale o wiele bardziej zaawansowane i przyjazne dla użytkownika funkcje
• Narzędzie opiera się i korzysta z tej samej infrastruktury WU, wszystkie pobieranie odbywa się za pośrednictwem WU to nie jest downloader

Użytkownik slavanap opublikował drugie narzędzie w komentarzu, które umożliwia selektywne instalowanie aktualizacji. Nazywa się on Windows10 Manual Update i jest dostępny na github :

wprowadź opis zdjęcia tutaj.

W aktualizacji dla twórców systemu Windows 10 istnieje możliwość zatrzymania aktualizacji systemu Windows na 35 dni:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

w aplikacji Ustawienia, w której znajdują się opcje Windows Update.

magicandre1981
źródło
2
Co jeśli masz wersję Home?
Pułkownik Panic
1
@ ColonelPanic spróbuj ustawić wartość AUOptions w HKEY_LOCAL_MACHINE \ Software \ Policies \ Microsoft \ Windows \ WindowsUpdate \ AU na 2 . czy to działa?
magicandre1981,
1
Nie sądzę, że MiniTool jest open source. Zapoznaj się z tym najprostszym rozwiązaniem, jak przeprowadzić konserwację aktualizacji systemu Windows 10 podobną do poprzednich
Wiaczesław Napadowski
3
@ magicandre1981 Sabotaż? To nie jest dokładnie „dziękuję” za naprawę martwego i ślepego zaułka.
2
-1 nie dlatego, że to twoja wina, ale dlatego, że twoja odpowiedź jest nieaktualna. System Windows ponownie włącza usługę Windows Update nawet po wszystkich klasycznych obejściach.
Mehrdad
10

Jednym z najbardziej kontrowersyjnych aspektów systemu Windows 10 jest decyzja firmy Microsoft o wprowadzeniu obowiązkowych aktualizacji. Jeśli masz wersje Windows 10 Pro, Enterprise lub Education, możesz odroczyć aktualizacje, ale nie możesz ich całkowicie odrzucić .

Jeśli nie jesteś zadowolony z wymuszonego instalowania przez Microsoft aktualizacji w swoim systemie, bez Twojej zgody, możesz zablokować tę funkcję za pomocą W10Privacy .

Jeśli nie słyszałeś o tym programie, warto go sprawdzić, ponieważ oprogramowanie zapewnia kontrolę nad wieloma funkcjami prywatności systemu Windows 10, co pozwala zapobiegać szpiegowaniu systemu operacyjnego w tym, co robisz. Opcje są oznaczone kolorami, dzięki czemu można szybko sprawdzić, czy coś można bezpiecznie zmienić / wyłączyć.

W W10Privacy 2 możesz teraz ustawić program tak, aby wyłączał własny mechanizm aktualizacji systemu Windows 10 i zastępował go własnym. Użytkownicy mogą wybrać, które aktualizacje mają zostać zainstalowane, a które zignorowane. Nie każdy powinien to robić, ale w razie potrzeby możesz łatwo cofnąć kroki.

Aby móc korzystać z tej funkcji, musisz pobrać dodatkowe składniki. Wykonaj następujące kroki:

  • Pobierz W10Privacy 2 i rozpakuj go do folderu na dysku twardym.
  • Pobierz PsExec (część pakietu PsTools ) i skopiuj go do folderu W10Privacy.
  • Pobierz moduł Windows Update PowerShell z Technet i rozpakuj go do podfolderu w folderze W10Privacy.
  • Kliknij prawym przyciskiem myszy W10Privacy.exei wybierz Uruchom jako administrator z menu kontekstowego. Wybierz punkt przywracania systemu. Warto również wykonać pełną kopię zapasową systemu (na wszelki wypadek).
  • Przejdź do Dodatki> Aktualizacje Windows, aby zarządzać opcjami. Istnieje sześć różnych pól wyboru. Żadne nie są domyślnie włączone. Oni są:
  • Istnieje moduł aktualizacji PSWindows (użytkownik musi wcześniej dostarczyć go do folderu W10Privacy).
  • PsExec.exe w folderze W10Privacy (musi być dostarczony przez użytkownika). W10Prywatność adaptacji modułu aktualizacji PSWindows.
  • Skonfiguruj fałszywy serwer WSUS.

  • W10Privacy znajduje się w ścieżce / folderze bez spacji. Nie bierz pod uwagę sterowników podczas wyszukiwania aktualizacji.

  • Zakładając, że chcesz ręcznie zarządzać aktualizacjami, sprawdź pierwsze pięć opcji. Szósta opcja pozwala zdecydować, czy wyświetlać listę sterowników obok aktualizacji. To zależy od Ciebie.
  • Kliknij opcję Ustaw zmienione ustawienia, a następnie kliknij przycisk Rozpocznij sprawdzanie dostępności aktualizacji. Zostaną wyświetlone wszystkie nowe aktualizacje, które jeszcze nie zostały zainstalowane, i możesz wybrać, jakie działania podjąć.

Zrzut ekranu

Gdy będziesz odpowiedzialny za aktualizacje, regularnie uruchom oprogramowanie i sprawdź, czy nie przegapisz żadnych ważnych aktualizacji;

wprowadź opis zdjęcia tutaj

Kredyty:

  1. Jak uzyskać całkowitą kontrolę nad automatycznymi aktualizacjami systemu Windows 10
xavier_fakerat
źródło
1
Najlepsze rozwiązanie, ponieważ całkowicie uniemożliwia systemowi Windows wyświetlanie aktualizacji.
Marcus
o nie .. Dlaczego nie ma jednego polecenia. Niech ktoś da mi drzwi, że to okno jest wysokie, żeby chodzić.
Mustkeem K,
6

Przy pomocy @Ramhound udało mi się dowiedzieć, jak zatrzymać automatyczne aktualizacje w systemie Windows 10.

Uwaga: dotyczy to systemu Windows 10 Pro, ponieważ jest to wersja, którą używam.

Aby zatrzymać automatyczne aktualizacje, możesz wykonać następujące czynności:

  1. Otwórz ustawienia
  2. Kliknij Aktualizuj i zabezpieczenia
  3. Kliknij Advanced options wprowadź opis zdjęcia tutaj
  4. Upewnij się, że Defer upgradesopcja jest zaznaczona wprowadź opis zdjęcia tutaj
  5. Zamknij okno ustawień i gotowe!

Aktualizacja

Jak wspomniano w komentarzach @Vinayak, opcja odroczenia jest teraz dostępna również dla użytkowników domowych. Więcej informacji tutaj

Izzy
źródło
Podczas gdy tam patrzysz, czy możesz sprawdzić, czy istnieje usługa aktualizacji systemu Windows, którą można po prostu wyłączyć w usługach. Wuauserv lub wuaueng.dll czy coś? dla tych, którzy mogliby użyć innej metody?
Psycogeek,
1
WuauservUsługa @Psycogeek jest dostępna i można ją zatrzymać / wyłączyć. Tak pierwotnie zatrzymałem aktualizacje
Izzy
5
Znaczna część sieci sprawia, że ​​brzmi to tak, jakby świat przestał się obracać, jeśli aktualizacje systemu Windows 10 zostaną zatrzymane :-) oraz brak przycisku w niektórych edycjach. Zakładam, że nie miałeś z tym żadnych problemów? wymarzona policja nie zaatakowała twoich koszmarów, system operacyjny nie zapadł się w piłkę i żadne zwierzęta nie ucierpiały podczas tego procesu :-) Myślę, że te pytania i odpowiedzi są dobrze zrobione i można je ponownie wykorzystać do podobnej kontroli aktualizacji W10 pytania .
Psycogeek
5
Należy pamiętać, że Microsoft się włączył, a teraz Odroczone aktualizacje są również dostępne dla użytkowników systemu Windows 10 Home .
Vinayak,
1
odroczenie zatrzymuje aktualizację do nowszej wersji, takiej jak 1511 (aktualizacja z listopada 2015 r.) lub 1607 (aktualizacja rocznicowa w lipcu 2016 r.) i zapewnia automatyczne aktualizacje starszej wersji.
magicandre1981
4

windows_update_toggle
Ogromna przeróbka poprzednich plików wsadowych zamieniła pakiet w pojedynczy skrypt z blokowaniem najlepszych praktyk!
Zobacz w akcji

Dynamiczny interfejs użytkownika menu kontekstowego pulpitu z przełącznikiem na wszystko!
Włącz / wyłącz wszystkie bloki, Odnów (z pastebin) lub odinstaluj opcje skryptu

Ukryj / Odkryj / Zainstaluj listy aktualizacji z licznikiem!
Listy są automatycznie aktualizowane, ilekroć system Windows dokucza Ci poprzez MusNotification!

Niezależnie blokuj aktualizacje kompilacji, automatyczne instalacje, pobieranie, bezpieczne blokowanie usługi
IFEO bez destrukcyjnych zmian własności, usuwania plików lub usuwania zadań

Skoncentruj się na niezależnych aktualizacjach Defender
Wyłączanie automatycznych aktualizacji systemu Windows nie poświęci wbudowanej warstwy ochronnej, w
przeciwieństwie do innych „zarządzania” aktualizacjami -DIY-

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
}
//

Ostatnia aktualizacja v10.0 wersja ostateczna. Aktualny kod na powyższym linku do pastebin.

AveYo
źródło
Czy jest szansa, że ​​możesz mi powiedzieć, w jaki sposób Twoje menu systemu Windows ma czarne tło ?!
przyszłość,
1
Jest to motyw oparty na wysokim kontraście, dostępny tutaj: pastebin.com/fA3t5Sd2
AveYo
4

Dla użytkowników domowych systemu Windows 10

Wypróbuj następującą metodę z Windows Central . Zasadniczo wyłączysz usługę ponownego uruchamiania, a nie usługę aktualizacji. Następnie możesz ponownie uruchomić komputer, kiedy tylko chcesz. Uwaga: potrzebujesz uprawnień administratora, ale zakładam, że już je masz, ponieważ używasz wersji Windows Home.

  1. Z okna Eksploratora Windows, zmienić nazwę pliku: C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot(zakładając, że %windir%IS C:\) do Reboot.old. Uwaga: tutaj zostaniesz poproszony o dostęp administratora.
  2. Utwórz katalog o nazwie Rebootw C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\. Zapobiegnie to ponownemu utworzeniu przez system Windows pliku o tej samej nazwie. Uwaga: tutaj zostaniesz poproszony o dostęp administratora.
  3. Uruchom ponownie maszynę. Spowoduje to zresetowanie wszystkich usług i zapobiegnie uruchomieniu usługi ponownego uruchamiania.

Uwaga: nie jest to promowane przez Microsoft. Ale z drugiej strony, żaden nie kontroluje twojego harmonogramu uruchamiania, więc weź to MS! Poważnie, jeśli nie wiesz, co robisz, zrozum ryzyko, które podejmujesz, postępując zgodnie z instrukcjami w Internecie. Jest to z pewnością wystarczająco proste, że zrozumienie systemu Windows 95 pomoże wyjaśnić, co się tutaj dzieje.

Sablefoste
źródło
3

Stan usługi Windows Update - początek 2019 r

Firma Microsoft dokłada wszelkich starań, aby usługa Windows Update była nieunikniona, dlatego tradycyjne metody już nie działają lub działają tylko przez ograniczony czas.

Microsoft dodaje usługi systemowe, których nie można wyłączyć, których celem jest aktualizacja systemu Windows. Najważniejszym z nich jest usługa Update Orchestrator Service , której zadaniem jest pobieranie, instalowanie i weryfikacja aktualizacji. Po zatrzymaniu komputer nie będzie już mógł pobierać i instalować aktualizacji, dlatego można go wyłączyć tylko na bieżącą sesję i zostanie on ponownie włączony przy następnym ponownym uruchomieniu.

Usługa, której zadaniem jest uniemożliwienie Windows Update, to nowa usługa Windows Update Medic , której zadaniem jest utrzymanie działania Windows Update. Jest to usługa, która cofa wszystkie tradycyjne metody blokowania Windows Update, dzięki czemu okresowo i nieoczekiwanie dowiemy się, że ustawienia Windows Update zostały zresetowane do pierwotnych wartości, a system Windows powrócił do wymuszania aktualizacji na użytkowniku.

Nie można w ogóle wyłączyć samej usługi medycznej Windows Update. Każda próba zrobienia tego zakończy się komunikatem „Odmowa dostępu”.

Niemniej jednak istnieje produkt innej firmy, który może całkowicie zablokować Windows Update: Windows Update Blocker . Ten darmowy produkt jest przenośny i może wyłączyć / włączyć Windows Update jednym kliknięciem. W rzeczywistości może również blokować dowolne inne usługi systemu Windows, których nie można zablokować. Według doniesień nadal działa w 2018 r.

Korzystanie z produktu innej firmy może na dłuższą metę być pewniejsze niż poleganie na częściowo udokumentowanych funkcjach systemu Windows, które mogą ulec zmianie bez powiadomienia. W tej mojej odpowiedzi można znaleźć więcej darmowych produktów , które wykorzystują interfejs Windows API, który pozwala dowolnemu programowi zawetować zbliżające się zamknięcie.

harrymc
źródło
2

W końcu znalazłem stałą poprawkę, która po prostu działa

Po wypróbowaniu dosłownie każdej sztuczki w książce, zawsze byłem lepszy od Windows Update. Wypróbowałem tutaj każde rozwiązanie plus mnóstwo innych źródeł, a Windows ciągle znajdował sposoby na pokrzyżowanie moich planów.

Do około 6 miesięcy temu ...

Znalazłem trwałe rozwiązanie dla WYŁĄCZENIA WSZYSTKICH aktualizacji systemu Windows na zawsze, niezależnie od tego, czy usługa lub cokolwiek innego jest uruchomione. Opracowałem tę metodę przy pomocy wielu różnych źródeł, które miały związek z wieloma różnymi rzeczami. Ogólnie rzecz biorąc, znalazłem tę metodę z wykorzystaniem kawałków innych informacji używanych do robienia rzeczy, które nie były z tym związane, ale działa. I działa absolutnie pięknie.

  1. Zainstalować akryl DNS Proxy z tutaj

Jest to w zasadzie udoskonalona wersja pliku hostów systemu Windows, który pozwala dodawać funkcje, takie jak symbole wieloznaczne, co jest w naszym przypadku konieczne ze względu na wiele źródeł, z których Windows pobiera aktualizacje.

  1. Postępuj zgodnie z instrukcjami tutaj, aby Acryl zaczął wykonywać swoją pracę w Win 10. Całkiem proste rzeczy.

  2. Przejdź do menu Start i kliknij „ Edytuj plik hostów akrylowych ” w obszarze Wszystkie programy, pokazane tutaj

  3. Dodaj te linie na dole pliku hosts, bez znaków # z przodu.

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

Teraz dno pliku powinna wyglądać jak ten . Zapisz i zamknij plik.

  1. Otwórz menedżera zadań, przejdź do karty usług, kliknij „Otwórz usługi” u dołu, wybierz Acryl DNS Proxy i kliknij ten przycisk czerwonym kółkiem, aby ponownie uruchomić usługę.

SKOŃCZONE

Teraz twój akrylowy kumpel powinien mieć twoje plecy i stale pilnować taktyki Big Brother Microsoftu, aby upewnić się, że nie mogą zmusić biednego starego do zainstalowania aktualizacji, które całkowicie psują komputer , co najmniej przez cztery razy zrobiłem to zarówno na moim domowym komputerze, jak i na moim Surface Pro, który ma być PC BUILT dla Windows, prawda? Cmon, Microsoft!

  1. Sprawdź, czy działa, wysyłając polecenie ping do dowolnej witryny w powyższym kodzie. Otwórz cmd i wpisz

ping windowsupdate.microsoft.com

Jeśli to są twoje wyniki, odtąd będziesz złoty !!

Uwaga: z mojego doświadczenia wcale to nie spowolniło mojego komputera. Nie przekierowuje również żadnego ruchu internetowego poza żądaniami do źródeł, których system Windows używa do aktualizacji lub sprawdzania aktualizacji, więc jest bardzo podobny do pliku hosts. Używa również w zasadzie tego samego formatu, co plik hosts. To z powodzeniem wyłączyło również ponowną instalację śmieci, które Windows umieszcza na moim komputerze, co daje ten gigantyczny kolorowy ekran z napisem „musisz zaktualizować, bo inaczej twój komputer się imploduje”. Oczywiście nie pamiętam, co powiedziało ostrzeżenie, ponieważ minęło tak dużo czasu, odkąd je otrzymałem (z powodu całkowicie skutecznego blokowania 6 miesięcy temu), ale była to najbardziej denerwująca rzecz, jaką kiedykolwiek widziałem.

Jackary Smith
źródło
hahahaha. o stary. ta odpowiedź jest słuszna. łał. mądry. bardzo mądry. po prostu nie mogę podkreślić, jak dobra jest ta odpowiedź. miliony ludzi przychodzą do drzwi frontowych, gdzie znajdują się setki linii obrony. ale to rozwiązanie pojawia się z boku, gdzie nie ma obrony, a budowanie obrony nie byłoby tak naprawdę możliwe ze względu na projektowanie Internetu.
Trevor Boyd Smith
jeśli masz fantazyjny router / bramę / home-networking-box z fantazyjnymi funkcjami DNS ... to możesz IMO zrobić coś podobnego.
Trevor Boyd Smith
1

Wyłącz usługę aktualizacji

  1. Win+R > services.msc
  2. Kliknij dwukrotnie Windows Update i zmień Typ uruchamiania na Wyłączony. Aby ponownie włączyć, wróć do usług i zmień je na automatyczne.

Źródło: Jak kontrolować aktualizacje systemu Windows 10

Ooker
źródło
1

W moim przypadku chcę nie tylko kontrolować, kiedy idą aktualizacje systemu Windows, ale także ograniczać wszystkie zainstalowane aplikacje poza kontrolą ich aktualizacji online.

Więc moim prostym rozwiązaniem jest: 1. Zablokuj dostęp do Internetu dla hosta po stronie routera. Żaden z programów ani usług zainstalowanych na hoście nie ma dostępu do Internetu. Przyczyny aktualizacji systemu Windows są również blokowane.

  1. Zainstaluj serwer proxy Squid w sieci lokalnej i przekaż proxy tym aplikacjom, które pozwolą im na dostęp do Internetu. Nie ustawiaj proxy w Panelu sterowania | Opcja internetowa, ponieważ jest to globalny serwer proxy dla całego systemu operacyjnego, który w ogóle unieważnia krok 1.

Większość aplikacji obsługuje ustawienia proxy oparte na aplikacjach, takie jak Chrome, Firefox, wszelkiego rodzaju gry itp.

  1. W przypadku aplikacji, które nie obsługują lokalnego ustawienia proxy, użyj funkcji NAS w chmurze jako Cloud Proxy. Na przykład garnitury Office 365 nie obsługują serwera proxy programu. Następnie możesz skonfigurować NAS Cloud Sync (na przykład Synology NAS ma Cloud Sync do synchronizacji OneDrive), aby zsynchronizować zawartość w folderze NAS, a następnie użyjesz go jako lokalnego foldera Office 365. Dodatkowymi zaletami tego sposobu jest bardzo szybka reakcja na duże pliki, ponieważ do uzyskania dostępu do OneDrive używasz prędkości sieci lokalnej.

Dzięki temu dostęp do twojego komputera jest w dużej mierze kontrolowany przez ciebie, nikt nie może cię zepsuć.

Gdy chcesz aktualizować system Windows, ustaw Panel sterowania | Internetowa opcja korzystania z lokalnego serwera proxy, dlatego system Windows może zaktualizować system operacyjny. Następnie natychmiast wyłącz globalny serwer proxy, aby ponownie ustawić komputer w spokojnym świecie.

Jack Wu
źródło
0

Dwa lata później i miliardy niezapisanych prac utraconych przez mechanizm aktualizacji Microsoft, wreszcie jest duża aktualizacja, która rozwiązuje problem.

Dostępna jest aktualizacja dla twórców systemu Windows 10 ( bezpośrednie pobieranie )

Po zainstalowaniu aktualizacji użytkownik w końcu ponownie zapyta (jak te nieistotne ponad 20 lat wcześniej), czy chce, aby aktualizacja została zastosowana:

win10 nowa stara wiadomość aktualizacji

Czasami zastanawiam się, kto stoi za tymi decyzjami ...

Po aktualizacji masz więcej opcji dotyczących czasów aktualizacji. Aby je zatrzymać, wybierz Ustawienia Windows Update> Opcje zaawansowane> Wstrzymaj aktualizacje> WŁ .

wstrzymaj aktualizacje

W sekcji Opcje ponownego uruchomienia znajdziesz również nową opcję powiadomień o aktualizacji:

aktualizacje powiadomień

Kai Noack
źródło
1
jak to odpowiada na pytanie?
magicandre1981
„sposób na zatrzymanie automatycznych aktualizacji” - to jeden ze sposobów na pozbycie się wymuszonych automatycznych aktualizacji. Aby je zatrzymać, wybierz Ustawienia Windows Update> Opcje zaawansowane> Wstrzymaj aktualizacje> WŁ. Dodałem to do odpowiedzi. (Masz jeszcze więcej opcji po Windows Update.)
Kai Noack
0

Wyłącz wszystkie aktualizacje systemu Windows za pomocą programu PowerShell

(uruchom PowerShell jako Administrator)

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"
frakon
źródło
0

Chociaż wyłączyłem aktualizację w usługach i edytorze zasad grupy, nadal włącza się ona od czasu do czasu. Następnie muszę ręcznie je wyłączyć w Usługach. Robienie tego za pomocą GUI jest kłopotliwe, więc napisałem skrypt wsadowy. Zatrzymuje się i wyłącza Background Intelligent Transfer Serviceoraz Windows Update.

@echo off

net stop wuauserv
net stop BITS

sc config wuauserv start= disabled
sc config BITS start= disabled

pause

Używam również (nie specjalnie do tego) narzędzia do monitorowania sieci lekkiej (Monitor przepustowości), więc wiem, kiedy jest aktywność (ikona na pasku zadań). Jeśli widzę aktywność, której nie powinno być, wiem, że usługa Windows Update została ponownie włączona. Potem uruchamiam skrypt i jest wyłączony.

akinuri
źródło