Điều này hiển thị cao trên tìm kiếm Google "Cài đặt và khởi động lại không cài đặt và tắt máy". Do đó, tôi nghĩ rằng tôi nên thêm một giải pháp mà cuối cùng tôi đã viết cho vấn đề gây phiền nhiễu chính xác này (mọi người nói với tôi rằng Win10 có mặc định này, nhưng tôi không có trên Win10).
Điều này hoạt động bằng cách sử dụng hai tập tin hàng loạt. Cái đầu tiên được gọi là "restartAfterUpdates.bat"
@echo OFF
@setlocal ENABLEEXTENSIONS
@set REBOOT_KEY="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"
@SET REGDWORD=REG_DWORD
@SET VALUEVAL=0x1
@REM skip=4 may be required on some versions of Windows
@FOR /F "usebackq skip=2 tokens=1-3" %%A IN (`reg query %REBOOT_KEY% /s 2^>nul`) DO (
@IF %%B EQU %REGDWORD% (
@IF %%C EQU %VALUEVAL% (
call :REBOOT
)
)
)
:NOREBOOT
@Echo No reboot required
exit /b 36877
REM 36877 is 0x900D (i.e. Good, no reboot required)
:REBOOT
@ECHO Here We REBOOT
SHUTDOWN -r -f -t 10
exit /b 3059719
REM 3059719 is 0x2EB007 (i.e. REBOOT was triggered)
Cái thứ hai được gọi là "calendarRebootAfterUpdates.bat":
@schtasks /query /TN RebootAfterUpdates > doh
@findstr /B /I "RebootAfterUpdates" doh >nul
@if %errorlevel%==0 goto :update
@goto :create
:update
@del doh
@SCHTASKS /Change /TN RebootAfterUpdates /SD %DATE%
@echo Task updated to execute today
@goto :exitBat
:create
@del doh
@SCHTASKS /Create /SC ONCE /TN RebootAfterUpdates /TR "C:\tmp\Scripts\rebootAfterUpdates.bat" /ST 23:55 /sd %DATE% /ru SYSTEM /f
@echo Task created. Set the "Wake to Execute Flag" through Task Scheduler GUI
:exitBat
@exit /b
Cả hai tệp được giả sử là trong C: \ tmp \ Sc scripts \ Khi Windows cằn nhằn bạn để "Cài đặt bản cập nhật", hãy để nó bắt đầu cài đặt bản cập nhật. Trong khi cài đặt bản cập nhật, hãy chạy "calendarRebootAfterUpdates.bat".
Bối cảnh hoạt động:
Nếu các bản cập nhật yêu cầu khởi động lại, một số khóa đăng ký (dưới khóa reg WindowsUpdate) được đặt với giá trị 0x1.
Chúng tôi kiểm tra nếu các khóa này tồn tại trong tập tin bat đầu tiên. Nếu họ làm, khởi động lại ngay.
Thông thường, tôi kích hoạt cập nhật khi sắp nghỉ việc (và khoảng 4-5 giờ trước nửa đêm).
Con dơi thứ hai tạo ra một tác vụ theo lịch trình (hoặc cập nhật một tác vụ hiện có để chạy 5 phút trước nửa đêm) và tác vụ theo lịch trình này thực thi con dơi đầu tiên.
Vì vậy, ... mặc dù không phải là giải pháp tao nhã nhất, trong hai bước (1. kích hoạt 'Cài đặt Cập nhật' và 2. chạy tệp dơi thứ hai), máy của bạn sẽ khởi động lại gần nửa đêm với giả định rằng việc cài đặt các bản cập nhật đã thành công.
Ngoài ra, bạn có thể đặt 'Máy đánh thức để thực thi tác vụ' từ GUI Trình lập lịch tác vụ cũng như kiểm tra mã trả về thực thi để xem điều gì đã xảy ra lần trước.
PS đã thử nghiệm trên Win7 64 bit.