สิ่งนี้จะปรากฏขึ้นสูงในการค้นหาของ Google "ติดตั้งและรีสตาร์ทไม่ติดตั้งและปิดเครื่อง" ดังนั้นฉันคิดว่าฉันควรเพิ่มวิธีแก้ปัญหาที่ฉันเขียนลงไปสำหรับปัญหาที่น่ารำคาญนี้ (ผู้คนบอกฉันว่า Win10 มีสิ่งนี้ตามค่าเริ่มต้น แต่ฉันไม่ได้ใช้บน Win10)
ใช้งานได้สองไฟล์แบตช์ อันแรกเรียกว่า "rebootAfterUpdates.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)
อันที่สองเรียกว่า "scheduleRebootAfterUpdates.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: \ tmp \ Scripts \ เมื่อ Windows ดึงคุณไปที่ "Install Updates" ให้ปล่อยให้มันเริ่มติดตั้งการอัพเดท ในขณะที่ติดตั้งการอัปเดตให้เรียกใช้ "scheduleRebootAfterUpdates.bat"
พื้นหลังของการดำเนินการ:
หากการปรับปรุงต้องการการรีบูตรีจิสตรีคีย์ (ภายใต้คีย์การลงทะเบียน WindowsUpdate) จะถูกตั้งค่าเป็น 0x1
เราตรวจสอบว่ากุญแจเหล่านี้มีอยู่ในไฟล์ bat แรกหรือไม่ หากเป็นเช่นนั้นให้รีบูททันที
โดยปกติฉันเรียกการปรับปรุงเมื่อจะออกจากงาน (และประมาณ 4-5 ชั่วโมงก่อนเที่ยงคืน)
ไม้ตีที่สองสร้างภารกิจตามกำหนดเวลา (หรืออัปเดตงานที่มีอยู่เพื่อรัน 5 นาทีก่อนเที่ยงคืน) และงานที่กำหนดเวลาไว้นี้จะดำเนินการไม้ตีแรก
ดังนั้น ... ในขณะที่ไม่ใช่โซลูชันที่หรูหราที่สุดในสองขั้นตอน (1. เรียก 'ติดตั้งการอัปเดต' และ 2. เรียกใช้ไฟล์ค้างคาวที่สอง) เครื่องของคุณจะรีบูตใกล้เที่ยงคืนโดยสมมติว่าการติดตั้งการอัปเดตสำเร็จ
นอกจากนี้คุณสามารถตั้งค่า 'เครื่องปลุกเพื่อเรียกใช้งาน' จาก GUI ตัวกำหนดเวลางานรวมทั้งตรวจสอบรหัสส่งคืนการเรียกใช้เพื่อดูสิ่งที่เกิดขึ้นครั้งล่าสุด
PS ทดสอบบน Win7 64 บิต