ユーザ用ツール

サイト用ツール


サイドバー

サイドバー

スタートページ

it技術:セキュリティパッチ


セキュリティパッチ

WindowsUpdate未適用ダウンロード

WindowsUpdate未適用リストについて、下記サイトを参考にリストを作成する。
また、パッチのダウンロードも一括で取得でき、更新プログラムのスキャンも可能。

※wsusscn2.cabだけは、常に最新のカタログを下記サイトからダウンロードすること
http://go.microsoft.com/fwlink/?LinkId=76054

MBSA と Microsoft Update との相違点

Microsoft Update は「重要な更新」および「追加で選択できる更新プログラム」など、セキュリティ以外の更新プログラムもユーザーに提供します。MBSA は、これらのセキュリティ以外の更新プログラムを提供しません。よってWindowsUpdateのファイル数が少ない

上位互換となるKBがでてそちらが先に当たり、後続がインストールできない(インストール不要)といったことはあります。
WindowsUpdateのオフライン適用について(WindowServer 2012 R2)

セキュリティパッチ適用

Wusa.exe等に「/quiet /norestart」オプションによりコンピューターが再起動されないようにしている。
Windows の Windows Update スタンドアロン インストーラーについて

エラー一覧

Windows Updateエラー

Windows Update error code list

エラー10進エラー16進エラー内容
00正常
7402E4実行するには管理者権限に昇格する必要がある
1603643インストール時の致命的なエラー
164266A.NET Framwork 4のインストールまたはアップデートに失敗した時に発生する。
3010BC2再起動が必要 ※インストールは行われる
40961000ライセンス認証の同意が必要なので、ウィザード形式でインストールする。
2359302240006インストールする更新は既にインストールされています。
-214512432980240017該当する更新がないため、インストールは不要です。
-206857830184B40003SQLServer2008のアップデートに失敗した時に発生する。
-214688562880092004原因不明
-2146498302800F0902原因不明

Cabファイルインストールエラー

Windowsシステムエラーコード一覧

エラーエラー内容
14005マニフェスト ファイルに、1 つ以上の構文エラーが含まれています。

参照

システム関連

Windows Update更新一覧取得

パッチ適用バッチ

予め年毎またはIEや.NETなどのシステム単位にパッチを分けてフォルダに格納しておく。

パッチ一括適用.bat
@echo OFF
cd /d %~dp0
 
SETLOCAL enabledelayedexpansion
 
SET LOG=%cd%\PACHLOG.log
SET ERRLOG=%cd%\ERRLOG.log
SET returnCode=
 
rem パッチ適用開始
echo パッチ適用開始:%date% %time% >>%LOG%
 
rem 2013年分パッチ適用
call :subPatch 2013
 
rem 2014年分パッチ適用
call :subPatch 2014
 
rem 2015年分パッチ適用
call :subPatch 2015
 
rem 2016年分パッチ適用
call :subPatch 2016
 
rem 2017年分パッチ適用
call :subPatch 2017
 
rem  パッチ適用完了
echo パッチ適用完了:%date% %time% >>%LOG%
 
echo サーバーの再起動をしてから、パッチ一括リトライ適用.batを実行してください >>%LOG%
rem pause
 
ENDLOCAL
 
exit
 
:subPatch
 
CD %1
SET PachDir=%CD%
 
for %%i in (%PachDir%\*.msu) do (
	echo 適用バッチ:%%i
	echo パッチ実行:%%i >>%LOG%
	SET fileN=%%i
	C:\Windows\System32\wusa.exe !fileN! /quiet /Norestart
	echo 実行結果:!ERRORLEVEL! !fileN! >>%LOG%
)
 
for %%i in (%PachDir%\*.exe) do (
	echo 適用バッチ:%%i
	echo パッチ実行:%%i >>%LOG%
	SET fileN=%%i
	!fileN! /quiet /Norestart
	echo 実行結果:!ERRORLEVEL! !fileN! >>%LOG%
)
 
for %%i in (%PachDir%\*.msi) do (
	echo 適用バッチ:%%i
	echo パッチ実行:%%i >>%LOG%
	SET fileN=%%i
	C:\Windows\System32\msiexec /i !fileN!
	echo 実行結果:!ERRORLEVEL! !fileN! >>%LOG%
)
 
for %%i in (%PachDir%\*.cab) do (
	echo 適用バッチ:%%i
	echo パッチ実行:%%i >>%LOG%
	SET fileN=%%i
	C:\Windows\System32\dism /online /add-package=!fileN! /Norestart
	echo 実行結果:!ERRORLEVEL! !fileN! >>%LOG%
)
 
CD ..
 
exit /b
参考
■.msu
forfiles /p . /m *.msu /c "cmd /c wusa @path /quiet /norestart"
 
■.exe
forfiles /p . /m *.exe /c "cmd /c @path /quiet /norestart"
 
■.msi
forfiles /p . /m *.msi /c "cmd /c msiexec @path /i"
 
■.cab
forfiles /p . /m *.cab /c "cmd /c dism /online /add-package=@path /norestart"

SQL Server 2008がインストール済み確認

SQL Serverがすでにインストールされているか確認するには?

REM ----- SQLServer2008のレジストリを参照
call :DetectSQL "%RemoteName%HKLM\SOFTWARE\Microsoft\Microsoft SQL Server"
if %returnCode%==1 (
	REM ----- SQL Server 2008のパッチ適用
	call :subPatch SQLServer2008
)
 
REM -------------------------------------------------
REM ----- SQL Sever の検出 
REM -------------------------------------------------
:DetectSQL
 
	REM ----- インストールの確認
	echo.
	echo SQL Severのインストール確認
 
	reg query "%~1" >nul
	set sql=%errorlevel%
 
	echo %sql%
	if %sql%==1 (
			echo.
			echo SQL Sever 2008未インストール
			set returnCode=1
	) else (
			echo.
			echo SQL Sever 2008インストール済み
			set returnCode=2
	)
 
exit /b

.NET Framework4.xがインストール済み確認

.NET Frameworkのバージョンを確認する方法

REM ----- .NET Frameworkのレジストリを参照
SET RegKey11=%RemoteName%HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP
 
REM ----- .NET Framework4.0/4.5の確認
call :Detect11_4 ".NET Framework 4" "%RegKey11%\v4"
 
if %returnCode%==1 (
	REM ----- .NET Framework4.xのパッチ適用
	call :subPatch NET4
)
 
REM -------------------------------------------------
REM ----- .NET Framework 4.x の検出 
REM -------------------------------------------------
:Detect11_4
 
	REM ----- インストールの確認
	echo.
	echo NET Framework4.xのインストール確認
 
	reg query "%~2\Full" /v "Install" 2>nul | find /I "Install" 2>nul | find /I "0x1" 1>nul 2>nul
	set nf4=%errorlevel%
 
	echo %nf4%
	if %nf4%==1 (
			echo.
			echo NETFramework4/4.5未インストール
			set returnCode=1
	) else (
			echo.
			echo NET Framework4/4.5インストール済み
			set returnCode=2
	)
 
exit /b


it技術/セキュリティパッチ.txt · 最終更新: 2019/07/23 08:59 by yajuadmin