Dừng tất cả các bản cập nhật tự động Windows 10


75

Chúng tôi đã nâng cấp một số máy lên Windows 10 và nhận ra có một số cập nhật được cập nhật theo yêu cầu. Tuy nhiên, tôi nhận ra rằng không có tùy chọn nào khả dụng để dừng tải xuống tương tự như trên Windows 7 và 8.1. Cách duy nhất tôi có thể dừng tải xuống là dừng dịch vụ Windows Update .

Câu hỏi của tôi là có ai biết cách ngăn chặn cập nhật tự động hay dừng dịch vụ là giải pháp duy nhất?


4
Nếu bạn có Windows 10 Home thì điều này không thể thực hiện được. Nếu bạn có Windows 10 Professional, bạn có thể trì hoãn cập nhật tối đa 8 tháng. nếu bạn có Windows 10 Enterprise, bạn có thể trì hoãn các bản cập nhật với điều kiện bạn đã chỉ ra LSTB bạn muốn sử dụng. Có một công cụ mà bạn có thể tải xuống sẽ cho phép bạn trì hoãn các bản cập nhật riêng lẻ nếu chúng gây ra sự cố. Câu hỏi này đã được hỏi nhiều lần rồi. .
Ramhound

Ngoài ra, vào cuối ngày, để nhận được các bản cập nhật bảo mật trong tương lai, hệ thống của bạn phải có tất cả các bản cập nhật bắt buộc ngay cả khi bạn đang chạy Windows 10 Professional. KB3073930 là công cụ bạn muốn nếu bạn muốn ẩn / trì hoãn các cập nhật riêng lẻ.
Ramhound 29/07/2015

@Ramhound Tôi hiểu rằng các cập nhật bảo mật sẽ được yêu cầu, v.v. nhưng đôi khi bạn chỉ muốn tạm dừng chúng và bắt đầu chúng sau này. Chúng tôi đang chạy phiên bản pro. Bạn có tình cờ biết nơi tôi có thể lấy công cụ mà bạn đã đề cập trong bình luận của bạn không?
Izzy

2
Dừng lại và trì hoãn là 2 điều khác nhau.
Moab

2
Xin lưu ý rằng tất cả các câu trả lời ở đây chỉ bao gồm các bản cập nhật từ Windows Update, nhưng không rõ liệu câu hỏi này có nghĩa là bao gồm điều đó hay không. Windows 10 dường như có hai phương pháp cập nhật tích hợp khác: cập nhật trình điều khiển thiết bị được kiểm soát riêng (Hệ thống & rarr; Cài đặt hệ thống nâng cao & rarr; Phần cứng & rarr; Cài đặt cài đặt thiết bị dường như bao gồm điều này) và cập nhật tự động các ứng dụng Store được kiểm soát thông qua Cửa hàng (Tôi nghĩ rằng điều này cũng sẽ ngăn Candy Crush Soda Saga, ví dụ, được cài đặt tự động).
doshea

Câu trả lời:


40

nếu bạn có Phiên bản Pro, hãy mở trình chỉnh sửa chính sách nhóm (gpedit.msc) cho Configure automatic updatesmục nhập, đặt tại:

computer configuration → administrative templates → windows components → windows update

nhập mô tả hình ảnh ở đây

và chọn Notify for download and notify for install.

Khi Windows phát hiện các bản cập nhật mới, nó sẽ hiển thị thông báo bánh mì nướng .

nhập mô tả hình ảnh ở đây

Bạn cũng có thể sử dụng trình khắc phục sự cố từ Cập nhật KB3073930 để vô hiệu hóa một số cập nhật có vấn đề, để chúng không được cài đặt lại.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Đây là cách chính thức từ Microsoft để ngăn chặn việc thiết lập các bản cập nhật và trình điều khiển không mong muốn.

Nhưng có một công cụ của bên thứ 3 có tên Windows Update MiniTool cho phép chọn bản cập nhật nào có thể được cài đặt và cho phép chặn các bản cập nhật như bạn có thể trong các phiên bản Windows cũ.

nhập mô tả hình ảnh ở đây

Thay thế cho bản cập nhật Windows tiêu chuẩn Những gì bạn có thể làm:
• Kiểm tra cập nhật
• Tải xuống bản cập nhật
• Cài đặt bản cập nhật
• Xóa các bản cập nhật đã cài đặt
Ẩn các bản cập nhật không mong muốn
• Nhận liên kết trực tiếp đến các tệp cập nhật * .cab / * .Exe / * .Psf
• Xem lịch sử cập nhật
• Định cấu hình Cập nhật tự động
• Công cụ này giống như mô-đun powershell bên ngoài PSWindowsUpdate, nhưng các tính năng thân thiện và nâng cao hơn nhiều
• Công cụ dựa trên và sử dụng cùng cơ sở hạ tầng WU, tất cả tải xuống đều thông qua WU.

Slavanap người dùng đã đăng một công cụ thứ 2 trong một bình luận cho phép bạn chọn lọc cài đặt các bản cập nhật. Nó được gọi là Windows10 Manual Update và có sẵn trên github :

nhập mô tả hình ảnh ở đây.

Trong Cập nhật người tạo Windows 10, có một tùy chọn để dừng Cập nhật Windows trong 35 ngày:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

trong Cài đặt ứng dụng có các tùy chọn Windows Update.


2
Nếu bạn có phiên bản Home thì sao?
Đại tá Panic

1
@ColonelPanic cố gắng đặt giá trị AUOptions theo HKEY_LOCAL_MACHINE \ Software \ Chính sách \ Microsoft \ Windows \ WindowsUpdate \ AU thành 2 . Nó có hoạt động không?
magicandre1981

1
Tôi không nghĩ rằng MiniTool là nguồn mở. Vui lòng tham khảo mã nguồn mở này giải pháp đơn giản nhất để thực hiện bảo trì Windows 10 Update tương tự như các phiên bản Windows phổ biến github.com/slavanap/Windows10ManualUpdate
Vyacheslav Napadovsky

3
@ Magicandre1981 Phá hoại? Đó không hẳn là một "lời cảm ơn" vì đã sửa chữa một liên kết chết và ngõ cụt.

2
-1 không phải vì đó là lỗi của bạn, mà vì câu trả lời của bạn đã lỗi thời. Windows bây giờ bật lại Windows Update ngay cả sau khi tất cả các cách giải quyết cổ điển.
Mehrdad

10

Một trong những khía cạnh gây tranh cãi nhất về Windows 10 là quyết định của Microsoft về việc cập nhật bắt buộc. Nếu bạn có phiên bản Windows 10 Pro, Enterprise hoặc Education, bạn có thể trì hoãn các bản cập nhật, nhưng bạn không thể từ chối chúng hoàn toàn .

Nếu bạn không hài lòng với việc Microsoft cài đặt mạnh mẽ các bản cập nhật trên hệ thống của bạn mà không cần bạn nói, bạn có thể chặn chức năng này bằng W10Privacy .

Nếu bạn chưa từng nghe về chương trình này trước khi nó đáng để kiểm tra vì phần mềm cho phép bạn kiểm soát nhiều chức năng bảo mật của Windows 10, cho phép bạn ngăn hệ điều hành rình mò những gì bạn làm. Các tùy chọn được mã hóa màu để bạn có thể xem nhanh xem có thứ gì an toàn để thay đổi / vô hiệu hóa hay không.

Trong W10Privacy 2 , giờ đây bạn có thể đặt chương trình để vô hiệu hóa cơ chế cập nhật của Windows 10 và thay thế nó bằng chính cơ chế. Người dùng có thể chọn cài đặt bản cập nhật nào và bỏ qua. Đây không phải là điều mọi người nên làm, nhưng bạn có thể dễ dàng đảo ngược các bước bạn cần làm.

Trước khi bạn có thể sử dụng chức năng này, bạn cần tải xuống một số thành phần bổ sung. Thực hiện theo các bước sau:

  • Tải xuống W10Privacy 2 và giải nén nó vào một thư mục trên ổ cứng của bạn.
  • Tải xuống PsExec (một phần của gói PsTools ) và sao chép nó vào thư mục W10Privacy.
  • Tải xuống Mô-đun PowerShell của Windows Update từ Technet và giải nén nó sang thư mục con trong thư mục W10Privacy.
  • Nhấp chuột phải W10Privacy.exevà chọn Chạy với tư cách quản trị viên từ menu ngữ cảnh. Chọn để làm một điểm khôi phục hệ thống. Cũng đáng để thực hiện sao lưu toàn bộ hệ thống (chỉ trong trường hợp).
  • Chuyển đến Extras> Windows Updates để quản lý các tùy chọn. Có sáu hộp kiểm khác nhau. Không có cái nào được bật theo mặc định. Họ đang:
  • Mô-đun Cập nhật PSWindows tồn tại (phải được người dùng cung cấp trước đó vào thư mục W10Privacy).
  • PsExec.exe trong thư mục W10Privacy (phải được cung cấp bởi người dùng). Điều chỉnh W10Privacy của Mô-đun PSWindows-Update.
  • Cấu hình máy chủ WSUS giả.

  • W10Privacy được đặt trong một đường dẫn / thư mục không có khoảng trắng. Không xem xét trình điều khiển trong Cập nhật tìm kiếm.

  • Giả sử bạn muốn quản lý cập nhật thủ công, hãy kiểm tra năm tùy chọn đầu tiên. Tùy chọn thứ sáu cho phép bạn quyết định có liệt kê trình điều khiển cùng với các bản cập nhật hay không. Đây là tùy thuộc vào bạn.
  • Nhấp vào Đặt cài đặt đã thay đổi, sau đó nhấp vào nút Bắt đầu kiểm tra các bản cập nhật và bạn sẽ được hiển thị bất kỳ bản cập nhật mới nào chưa được cài đặt và có thể chọn thực hiện hành động nào.

Ảnh chụp màn hình

Khi bạn chịu trách nhiệm về các bản cập nhật của mình, hãy chạy phần mềm thường xuyên và kiểm tra để đảm bảo bạn không bỏ lỡ bất kỳ bản cập nhật quan trọng nào;

nhập mô tả hình ảnh ở đây

Tín dụng:

  1. Cách nhận toàn quyền kiểm soát các bản cập nhật tự động của Windows 10

1
Giải pháp tốt nhất, vì nó hoàn toàn ngăn Windows xem các bản cập nhật.
Marcus

oh không .. Tại sao không có lệnh duy nhất. Ai đó cho tôi cánh cửa này cao để đi bộ xung quanh.
Mustkeem K

6

Với sự giúp đỡ của @Ramhound, tôi đã tìm ra cách dừng cập nhật tự động trên windows 10.

Xin lưu ý điều này áp dụng cho Windows 10 Pro vì đây là phiên bản tôi đang chạy.

Để dừng cập nhật tự động, bạn có thể làm như sau:

  1. Mở cài đặt
  2. Nhấp vào Cập nhật & bảo mật
  3. Bấm vào Advanced options nhập mô tả hình ảnh ở đây
  4. Đảm bảo Defer upgradestùy chọn được chọn nhập mô tả hình ảnh ở đây
  5. Đóng cửa sổ cài đặt và thế là xong!

Cập nhật

Như đã đề cập trong các bình luận của @Vinayak, tùy chọn hoãn cũng có sẵn cho người dùng gia đình. Thông tin chi tiết tại đây


Trong khi bạn đang tìm kiếm, bạn có thể thấy nếu có một dịch vụ cập nhật windows có thể bị vô hiệu hóa trong các dịch vụ. Wuauserv hoặc wuaueng.dll hoặc một cái gì đó? cho những người có thể sử dụng một phương pháp khác nhau?
Psycogeek

1
WuauservDịch vụ @Psycogeek ở đó và có thể bị dừng / vô hiệu hóa. Đây là cách ban đầu tôi dừng cập nhật
Izzy

5
Phần lớn web đang phát ra âm thanh như thể thế giới sẽ ngừng quay, nếu các bản cập nhật windows 10 bị dừng :-) và cách nút không tồn tại trong một số phiên bản. Tôi cho rằng bạn không có bất kỳ rắc rối với điều đó? Cảnh sát trong mơ không xâm chiếm cơn ác mộng của bạn, HĐH không sụp đổ và không có vật nuôi nào bị hại trong quá trình này :-) Tôi nghĩ rằng Hỏi & Đáp này ở đây được thực hiện tốt và có thể được sử dụng lại để kiểm soát cập nhật W10 tương tự Câu hỏi .
Psycogeek

5
Lưu ý rằng Microsoft đã trích dẫn và hiện tại nâng cấp Defer cũng có sẵn cho người dùng Windows 10 Home .
Vinayak

1
trì hoãn dừng nâng cấp lên Phiên bản mới hơn như 1511 (Cập nhật tháng 11 năm 2015) hoặc 1607 (cập nhật kỷ niệm vào tháng 7 năm 2016) và giúp bạn nhận được cập nhật tự động cho phiên bản cũ hơn.
magicandre1981

4

windows_update_toggle
Làm lại hàng loạt các tập tin lô trước đó để chuyển bộ thành tập lệnh đơn với các thực tiễn tốt nhất chặn!
Xem nó trong hành động

Máy tính để bàn nhấp chuột phải vào menu ngữ cảnh UI động với các nút bật tắt cho mọi thứ!
Chuyển đổi tất cả các khối bật / tắt, Gia hạn (từ pastebin) hoặc gỡ cài đặt tùy chọn tập lệnh

Ẩn / Bỏ ẩn / Cài đặt danh sách cập nhật với bộ đếm!
Danh sách được cập nhật tự động bất cứ khi nào Windows sẽ cằn nhằn bạn thông qua MusNotification!

Chặn độc lập Xây dựng nâng cấp, Cài đặt tự động, Tải xuống, Dịch vụ
chặn IFEO an toàn mà không thay đổi quyền sở hữu, xóa tệp hoặc xóa tác vụ

Tập trung vào các bản cập nhật Defender hoạt động độc lập Việc
tắt các cửa sổ cập nhật tự động sẽ không hy sinh lớp bảo vệ tích hợp,
không giống như bất kỳ "quản lý" cập nhật -DIY nào khác

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

Cập nhật lần cuối cho bản v10.0 cuối cùng. Mã cập nhật trên liên kết pastebin ở trên.


Bất cứ cơ hội nào bạn có thể cho tôi biết làm thế nào bạn có các menu windows của bạn để có một nền đen?!
wayofthefuture

1
Đó là một chủ đề dựa trên độ tương phản cao, có sẵn ở đây: pastebin.com/fA3t5Sd2
AveYo

4

Dành cho người dùng Windows 10 Home

Hãy thử phương pháp sau từ Windows Central . Về cơ bản, bạn sẽ vô hiệu hóa dịch vụ khởi động lại, không phải dịch vụ cập nhật. Sau đó bạn có thể khởi động lại bất cứ khi nào bạn muốn. Xin lưu ý, bạn cần có đặc quyền của quản trị viên, nhưng tôi cho rằng bạn đã có nó vì bạn đang sử dụng phiên bản Windows Home.

  1. Từ cửa sổ Windows explorer, đổi tên tệp: C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot(giả sử %windir%là của bạn C:\) thành Reboot.old. Lưu ý, bạn sẽ được yêu cầu truy cập quản trị viên ở đây.
  2. Tạo một thư mục có tên Reboottrong C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\. Điều này sẽ ngăn các cửa sổ tạo lại một tệp có cùng tên. Lưu ý, bạn sẽ được yêu cầu truy cập quản trị viên ở đây.
  3. Khởi động lại máy. Điều này sẽ thiết lập lại tất cả các dịch vụ và ngăn dịch vụ khởi động lại bắt đầu.

Xin lưu ý, điều này không được Microsoft quảng bá. Nhưng sau đó, một lần nữa, không kiểm soát lịch trình khởi động của bạn, vì vậy hãy dùng MS! Nghiêm túc, nếu bạn không biết những gì bạn đang làm hiểu những rủi ro bạn đang gặp phải bằng cách làm theo bất kỳ hướng dẫn nào từ Internet. Điều này chắc chắn đủ đơn giản để sự hiểu biết về Windows 95 sẽ giúp giải thích những gì đang xảy ra ở đây.


3

Trạng thái của Windows Update - đầu năm 2019

Microsoft đã rất nỗ lực để làm cho Windows Update không thể tránh khỏi, đó là lý do tại sao các phương pháp truyền thống không hoạt động nữa hoặc chỉ hoạt động trong một thời gian giới hạn.

Microsoft đã bổ sung các dịch vụ hệ thống không thể bị vô hiệu hóa với mục đích cập nhật Windows. Đứng đầu trong số này là Dịch vụ soạn thảo cập nhật , được giao nhiệm vụ tải xuống, cài đặt và xác minh các bản cập nhật. Nếu bị dừng, máy tính không thể tải xuống và cài đặt các bản cập nhật nữa, đó là lý do tại sao nó chỉ có thể bị vô hiệu hóa cho phiên hiện tại và sẽ được bật lại trong lần khởi động lại tiếp theo.

Dịch vụ bị buộc tội làm cho Windows Update không thể bị chặn là Dịch vụ Windows Update mới , có nhiệm vụ giữ cho Windows Update hoạt động. Chính dịch vụ này hoàn tác tất cả các phương pháp truyền thống để chặn Windows Update, do đó, theo định kỳ và bất ngờ người ta sẽ phát hiện ra rằng các cài đặt Windows Update đã được đặt lại về giá trị ban đầu của chúng và Windows đã quay trở lại để buộc cập nhật cho người dùng.

Bản thân Windows Update Medic Service hoàn toàn không thể bị vô hiệu hóa. Mọi nỗ lực để làm như vậy sẽ kết thúc với thông báo "Truy cập bị từ chối".

Tuy nhiên, tồn tại một sản phẩm của bên thứ ba hoàn toàn có thể chặn Windows Update: Windows Update Blocker . Sản phẩm miễn phí này có thể mang theo và có thể vô hiệu hóa / kích hoạt Windows Update chỉ bằng một cú nhấp chuột. Trên thực tế, nó cũng có thể chặn bất kỳ dịch vụ Windows không thể chặn nào khác. Nó được báo cáo là vẫn hoạt động vào năm 2018.

Việc sử dụng một sản phẩm của bên thứ ba về lâu dài có thể chắc chắn hơn là dựa vào các tính năng bán tài liệu của Windows có thể thay đổi mà không cần thông báo trước. Một số sản phẩm miễn phí khác có thể được tìm thấy trong câu trả lời này của tôi, sử dụng API Windows cho phép mọi chương trình phủ quyết việc tắt máy sắp xảy ra.


2

Cuối cùng tìm thấy một bản sửa lỗi vĩnh viễn chỉ hoạt động

Sau khi thử nghĩa đen mọi thủ thuật trong cuốn sách, tôi luôn được Windows Update đánh giá cao nhất. Tôi đã thử mọi giải pháp ở đây cộng với hàng tấn nguồn khác và Windows liên tục tìm cách cản trở các kế hoạch của tôi.

Cho đến khoảng 6 tháng trước ...

Tôi đã tìm thấy một giải pháp vĩnh viễn để vô hiệu hóa TẤT CẢ các bản cập nhật Windows TUYỆT VỜI bất kể dịch vụ hay bất cứ thứ gì khác đang chạy. Tôi đã tìm ra phương pháp này với sự giúp đỡ của nhiều nguồn khác nhau phải làm với nhiều thứ khác nhau. Nhìn chung, tôi đã tự tìm ra phương pháp này với việc sử dụng các bit và mẩu thông tin khác được sử dụng để làm những việc không liên quan đến việc này, nhưng nó hoạt động. Và nó hoạt động hoàn toàn đẹp.

  1. Cài đặt Proxy DNS acrylic từ đây

Về cơ bản, đây là phiên bản cải tiến của tệp máy chủ windows cho phép bạn thêm các chức năng như ký tự đại diện, điều này là cần thiết trong trường hợp của chúng tôi vì có nhiều nguồn Windows được cập nhật.

  1. Làm theo các hướng dẫn ở đây để làm cho Acrylic bắt đầu thực hiện công việc của mình trong Win 10. Công cụ khá đơn giản.

  2. Chuyển đến menu bắt đầu của bạn và nhấp vào " Chỉnh sửa tệp máy chủ acrylic " trong Tất cả chương trình, được hiển thị tại đây

  3. Thêm các dòng này vào dưới cùng của tệp máy chủ, không có dấu # ở phía trước.

Windowsupdate.microsoft.com 0.0.0.0
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 * .doad.windowsupdate.com
0.0.0.0 wustat.windows.com
0.0.0.0 ntservicepack.microsoft.com
0.0.0.0 stats.microsoft.com

Bây giờ dưới cùng của tập tin sẽ trông như thế này . Lưu và đóng tập tin.

  1. Mở trình quản lý tác vụ, chuyển đến tab dịch vụ, nhấp vào "Mở dịch vụ" ở dưới cùng, chọn Proxy DNS DNS và nhấp vào nút này với vòng tròn màu đỏ để khởi động lại dịch vụ.

ĐÃ KẾT THÚC

Bây giờ, người bạn acrylic của bạn nên có lưng và liên tục theo dõi các chiến thuật Big Brother của Microsoft để đảm bảo họ không thể ép bạn nghèo cài đặt các bản cập nhật làm rối tung PC của bạn mà họ có ít nhất một phần tư thời gian đã làm điều đó trên cả PC gia đình và Surface Pro của tôi , thứ được cho là PC BUILT cho Windows, phải không ??? Cmon, Microsoft!

  1. Kiểm tra để đảm bảo rằng nó hoạt động bằng cách ping bất kỳ một trong các trang web trong mã ở trên. Mở cmd và gõ

ping windowsupdate.microsoft.com

Nếu đây là kết quả của bạn, bạn sẽ là vàng từ bây giờ !!

Lưu ý: theo kinh nghiệm của tôi, điều này đã không làm chậm PC của tôi cả. Nó cũng không định tuyến lại bất kỳ lưu lượng truy cập Internet nào ngoài các yêu cầu tới các nguồn mà Windows sử dụng để cập nhật hoặc kiểm tra các bản cập nhật, do đó rất giống với tệp máy chủ. Nó cũng sử dụng định dạng cơ bản giống như tập tin máy chủ. Điều này cũng đã vô hiệu hóa thành công việc cài đặt lại rác mà các cửa sổ tiếp tục đặt trên máy tính của tôi mang lại cho màn hình màu khổng lồ đó có nội dung như "bạn phải cập nhật nếu không máy tính của bạn sẽ nổ tung". Rõ ràng là tôi không nhớ những gì cảnh báo đã nói vì đã quá lâu kể từ khi tôi nhận được nó (do đã chặn hoàn toàn thành công 6 tháng trước), nhưng đó là điều khó chịu nhất tôi từng thấy.


hahahaha trời ơi. Câu trả lời này chỉ là. ồ thông minh. rất thông minh. tôi chỉ không thể nhấn mạnh câu trả lời này tốt như thế nào. hàng triệu người đến trước cửa nơi có hàng trăm tuyến phòng thủ. nhưng giải pháp này xuất hiện ở phía không có phòng thủ và việc xây dựng phòng thủ sẽ không thực sự khả thi vì thiết kế của internet.
Trevor Boyd Smith

nếu bạn có một bộ định tuyến / cổng / hộp mạng gia đình ưa thích với các tính năng DNS ưa thích ... thì bạn có thể IMO làm điều gì đó tương tự.
Trevor Boyd Smith


1

Đối với trường hợp của tôi, tôi không chỉ muốn kiểm soát khi Windows Updates đi mà còn giới hạn tất cả các ứng dụng đã cài đặt ngoài tầm kiểm soát trên các bản cập nhật trực tuyến của chúng.

Vì vậy, giải pháp một cửa đơn giản của tôi là: 1. Khối truy cập internet cho máy chủ bên bộ định tuyến. Không có chương trình hoặc dịch vụ nào được cài đặt trên máy chủ có thể truy cập internet. Các nguyên nhân cập nhật Windows cũng bị chặn.

  1. Cài đặt Squid Proxy Server trên mạng cục bộ và cung cấp proxy cho các ứng dụng mà bạn cho phép chúng truy cập internet. Không đặt proxy trên Bảng điều khiển | Tùy chọn Internet, vì đó là proxy toàn hệ điều hành toàn cầu, hoàn toàn không có bước 1.

Hầu hết các ứng dụng đều hỗ trợ cho mỗi cài đặt proxy dựa trên ứng dụng, như Chrome, Firefox, Tất cả các loại Trò chơi, v.v.

  1. Đối với những ứng dụng không hỗ trợ cài đặt proxy cục bộ, hãy sử dụng NAS đám mây dưới dạng Cloud Proxy. Ví dụ: bộ quần áo Office 365 không hỗ trợ cho mỗi proxy chương trình. Sau đó, bạn có thể thiết lập Đồng bộ hóa đám mây NAS (ví dụ: Synology NAS có Đồng bộ hóa đám mây để đồng bộ hóa OneDrive) để đồng bộ hóa các ý tưởng trong một nếp gấp NAS, sau đó bạn sử dụng nếp gấp đó như nếp gấp cục bộ của Office 365. Lợi ích bổ sung của cách này là bạn nhận được phản hồi rất nhanh trên các tệp lớn, vì bạn đang sử dụng tốc độ mạng cục bộ để truy cập OneDrive.

Bằng cách này, việc truy cập internet trên máy tính của bạn được kiểm soát rất nhiều bởi chính bạn, không ai có thể làm phiền bạn.

Bất cứ khi nào bạn muốn cập nhật Windows, hãy đặt Bảng điều khiển | Tùy chọn Internet để sử dụng proxy cục bộ của bạn, do đó Windows có thể cập nhật HĐH của bạn. Sau đó, tắt proxy toàn cầu ngay lập tức để thiết lập máy tính của bạn trở thành một thế giới hòa bình.


0

2 năm sau và hàng tỷ tác phẩm chưa được lưu bị mất bởi cơ chế cập nhật của Microsoft, cuối cùng cũng có một bản cập nhật lớn giải quyết vấn đề.

Windows 10 Creators Update hiện có sẵn ( Tải xuống trực tiếp )

Sau khi cài đặt bản cập nhật, người dùng cuối cùng sẽ hỏi lại (như những người không đáng kể hơn 20 năm trước) nếu họ muốn bản cập nhật được áp dụng:

win10 tin nhắn cập nhật cũ mới

Đôi khi tôi tự hỏi ai đứng đằng sau những quyết định đó ...

Sau khi cập nhật, bạn có nhiều tùy chọn hơn về thời gian cập nhật. Để dừng chúng, hãy đi tới Cài đặt Windows Update> Tùy chọn nâng cao> Tạm dừng cập nhật> BẬT .

tạm dừng cập nhật

Trong Tùy chọn khởi động lại, bạn cũng tìm thấy một tùy chọn mới cho thông báo cập nhật:

cập nhật thông báo


1
Làm thế nào để trả lời câu hỏi này?
magicandre1981

"Một cách để dừng cập nhật tự động" - Đây là một cách để thoát khỏi các cập nhật tự động bắt buộc. Và để ngăn chặn chúng, hãy đi tới Cài đặt Windows Update> Tùy chọn nâng cao> Tạm dừng cập nhật> BẬT. Tôi đã thêm điều này vào câu trả lời. (Bạn thậm chí còn có nhiều tùy chọn hơn sau Windows Update.)
Kai Noack

0

Vô hiệu hóa tất cả các bản cập nhật Windows bằng PowerShell

(chạy PowerShell với tư cách Quản trị viên)

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

Mặc dù tôi đã tắt cập nhật trong Trình chỉnh sửa chính sách nhóm và dịch vụ, thỉnh thoảng nó vẫn bật lại. Sau đó, tôi phải tự tắt chúng trong Dịch vụ. Làm điều này thông qua GUI là rắc rối, vì vậy tôi đã viết một tập lệnh bó. Nó dừng lại và vô hiệu hóa Background Intelligent Transfer ServiceWindows Update.

@echo off

net stop wuauserv
net stop BITS

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

pause

Tôi cũng đang sử dụng (không dành riêng cho việc này) một công cụ giám sát mạng nhẹ (Trình theo dõi băng thông), vì vậy tôi biết khi nào có hoạt động (một biểu tượng trên khay hệ thống). Nếu tôi thấy một hoạt động khi không nên có bất kỳ hoạt động nào, tôi biết Windows Update đã bật lại. Sau đó, tôi chạy kịch bản và nó tắt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.