リモートで管理したいWindowsボックスがあります。今朝ログインすると、スタートメニューに![シャットダウン]ボタンの横に、インストールする更新があることを通知します。しかし、更新プログラムをインストールする唯一のオプションは、シャットダウンすることです。「更新プログラムをインストールして再起動する」ように指示する方法はありませんか?
リモートで管理したいWindowsボックスがあります。今朝ログインすると、スタートメニューに![シャットダウン]ボタンの横に、インストールする更新があることを通知します。しかし、更新プログラムをインストールする唯一のオプションは、シャットダウンすることです。「更新プログラムをインストールして再起動する」ように指示する方法はありませんか?
回答:
はい。コントロールパネルのWindows Updateまたはシステムトレイの時計の近くにある黄色のWUシールドを使用して、利用可能なすべての更新プログラムをインストールできます。次に、それが完了したら、スタートメニューから再起動を実行します(またはコマンドラインからshutdown / rを呼び出します)。
すべてを1ステップで自動化する他の唯一の方法は、(単純なスクリプトだけでなく)独自のコードを記述するか、MSまたはサードパーティから無料または商用のアドオンツールを使用することです。
再起動/シャットダウン中に更新プログラムをインストールすることには、特定の利点があります。
インストールの速度が低下したり、実行中の他のソフトウェアやAVPなどによって改ざんされたりすることはありません。
対処したり、クリックスルーしたりするUIはありません。高速に処理されます。完了すると、再起動の場合にコンピューターを使用する準備が整います。
残念ながら、マイクロソフトが提供するツールを使用してそれを行う方法はないようです。私はあなたのためにそれをするこの無料のユーティリティを使用します。次のパラメーターを使用してショートカットを作成し、[スタート]ボタンメニューに配置しました。
ShutdownWithUpdates /r /f
私が見るものから、それはまた、Active Directoryのセットアップでリモートワークステーションに再起動してインストールすることができます。
これは古い質問ですが、アップデートをインストールし、Powershellを使用して再起動することが可能になりました。具体的には、Windows Update PowerShell Moduleをダウンロードしてインストールする必要があります。次に、コマンドを実行できますGet-WUInstall -AcceptAll -AutoReboot
(インストールする更新プログラムを制御する他のスイッチと引数があります)。これにより、Windowsは更新プログラムをダウンロードしてインストールし、終了したら再起動します。私の意見では、これはサーバーに最適です。なぜなら、1つのコマンドを実行してから立ち去ることができるからです。
「アップデートのインストールと再起動」を手動で開始する方法はありません。更新プログラムをインストールする時間を設定し、自動更新(またはWindows Update)コントロールパネル、レジストリ、またはグループポリシーを使用して、自動更新後にコンピューターを再起動できるように指定できます。
http://support.microsoft.com/kb/328010
しかし、ワンクリックの「アップデートのインストールと再起動」オプションに関しては、何もありません。
これは、「インストールとシャットダウンではなく、インストールと再起動」Google検索で高く表示されます。したがって、私はこの正確な迷惑な問題のために書いてしまったソリューションを追加する必要があると考えました(Win10にはデフォルトでこれがあると言われますが、Win10ではありません)。
これは、2つのバッチファイルを使用して機能します。最初のものは「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)
2番目は「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が「更新プログラムのインストール」を促した場合、更新プログラムのインストールを開始します。更新のインストール中に、「scheduleRebootAfterUpdates.bat」を実行します。
操作の背景:
更新プログラムの再起動が必要な場合、いくつかのレジストリキー(WindowsUpdate regキーの下)に値0x1が設定されます。
これらのキーが最初のbatファイルに存在するかどうかを確認します。その場合は、すぐに再起動します。
通常、私は仕事を辞めようとしているとき(そして真夜中の約4〜5時間前)に更新をトリガーします。
2番目のバットはスケジュールされたタスクを作成し(または深夜5分前に実行するように既存のタスクを更新します)、このスケジュールされたタスクは最初のバットを実行します。
だから...最もエレガントなソリューションではありませんが、2つのステップ(1.「更新のインストール」をトリガーし、2番目のbatファイルを実行します)で、更新のインストールが成功した場合、マシンは真夜中近くにリブートします。
さらに、タスクスケジューラGUIから「タスクを実行するウェイクマシン」を設定したり、実行のリターンコードを確認して前回発生した内容を確認したりできます。
PS Win7 64ビットでテスト済み。