ユーザ用ツール

サイト用ツール


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

セキュリティパッチ

WindowsUpdate未適用ダウンロード

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

※ダウンロードURLがx64が必要なのにx86になっていることがあるため別途x64でダウンロードする。

MBSA

※MBSAはWindows Server 2016以降対応しなくなった。

MBSAの手順1のバッチファイル編集まで実施
\\nfs\common\3.システム導入・保守・運用\078.WH構成表システム\3-2 システム保守\3-2-3 サービスデスク\08.構成表開発チーム\050_WHツール\MBSA

wsusscn2.cabを最新にした後に「01_MBSA の一括セットアップ.bat」を実施するか、「%USERPROFILE%\AppData\Local\Microsoft\MBSA\Cache」フォルダにコピーする。

MBSAの代替

Windows Server 2016以降はこっちを使用する。

* [Windows10]MBSAが終了しているようなので後継スクリプトを試してみた 〜オフラインPCのパッチ適用状況の確認〜

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

「wsusscn2.cab」は毎月リリースされるセキュリティ関連の更新プログラムに関する情報が含まれているファイルです。この情報から足りないセキュリティパッチを洗い出してくれます。

wsusscn2.cabを最新にした後に「StartScanWUA.bat」を実施する必要がある。

WindowsUpdate未適用リストとして「ScanWUAResult.txt」が出力される。

ScanWUAResult.txt
---WindowsUpdate未適用リスト--- 
 
1> 2022-05 .NET 5.0.17 Security Update for x64 Server (KB5014329)
重要度:Important
サポートURL:https://go.microsoft.com/fwlink/?linkid=2147044&clcid=0x409
MicrosoftUpdateカタログ:https://www.catalog.update.microsoft.com/Search.aspx?q=KB5014329
 
2> 悪意のあるソフトウェアの削除ツール x64 - v5.104 (KB890830)
重要度:
サポートURL:http://support.microsoft.com
MicrosoftUpdateカタログ:https://www.catalog.update.microsoft.com/Search.aspx?q=KB890830
 
3> 2022-08x64 ベース システム用 Windows Server 2016 サービス スタック更新プログラム (KB5017095)
重要度:Critical
サポートURL:https://support.microsoft.com/help/5017095
MicrosoftUpdateカタログ:https://www.catalog.update.microsoft.com/Search.aspx?q=KB5017095
 
4> 2022-08 x64 ベース システム用 Windows Server 2016 の累積更新プログラム (KB5016622)
重要度:Critical
サポートURL:https://support.microsoft.com/help/5016622
MicrosoftUpdateカタログ:https://www.catalog.update.microsoft.com/Search.aspx?q=KB5016622
 
---ここまで---

Microsoft®Update カタログからWindows Server 2016の対象KBをダウンロードする。.NET 5.0系は除外する
https://www.catalog.update.microsoft.com/Home.aspx

サービススタック更新プログラム

サービススタック更新プログラム(Servicing Stack Updates(SSU))をインストールすると、オペレーティングシステムが最新の累積更新プログラムを受信できるようになります。サービススタック更新プログラムが欠落している場合、誤った検出結果を受け取る可能性があります。

サービススタック更新プログラムを当てないと、新規の累積更新プログラムが検出対象外となる。

※セキュリティパッチの更新調査をする上で、先にサービススタック更新プログラムだけは更新させた上で再度検出する。そうしないと累積更新プログラムが検出されない

サービススタック更新プログラムは、コントロールパネルのプログラムと機能にある「インスールされた更新プログラム」上では、「セキュリティ更新プログラム」という名前で表示される。

プログラムと機能のインストールされた更新プログラムとの違い

KB番号によっては、新しいKB番号に内包されてしまっており、既にwsusscn2.cab内から除外されていると思われる。その為、スキャン結果でインスール済として出て来ない。

2021年8月のwsusscn2.cabのサイズが850MB、2022年8月のサイズが645MBで少なくなっていることから古いものは除外してしまっている。

MBSA と Microsoft Update との相違点

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

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

MBSAで実行エラー

AddScanPackageService(“Offline Sync Service” でエラーになるのは、Windows Updateサービスが無効になっているため

セキュリティパッチ適用

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

重大度評価(Severity)

https://docs.microsoft.com/en-us/previous-versions/windows/desktop/bb294979(v=vs.85)

項目名説明
4Critical
致命的
このアップデートは、その悪用によりユーザーの操作なしにインターネットワームの伝播を可能にする可能性がある脆弱性を修正します。
3Important
重要
この更新プログラムは、悪用によりユーザーのデータの機密性、整合性、可用性、または処理リソースの整合性や可用性が損なわれる可能性がある脆弱性を修正します。
2Moderate
適度
この更新プログラムは、デフォルトの構成、監査、または悪用の難しさなどの要因によって悪用が大幅に軽減される脆弱性を修正します。
1Low
低い
このアップデートにより、悪用が非常に困難な脆弱性、または影響が最小限の脆弱性が修正されます。
0Unspecified
詳細不明
アップデートには重大度の評価はありません。

累積更新プログラム

「累積的な」と書かれている更新プログラムには、同じ製品に対する過去の全ての更新プログラムの修正内容が含まれています。
例外がある場合は、サポート技術情報やセキュリティ情報で明示されます。

最新の累積的なセキュリティ更新プログラムに、以前の更新分は含まれていますか?

サービスパック上位適用

サービスパックの上位を適用したなら下位のパッチの適用は不要となる。
ただ、サービスパックの上位を適用したことで新規のパッチが出現する場合がある。

例えば、SQLServer 2014 SP3がまだ未適用の場合にSP2用のパッチがあったとしても、サービスパックのSP3を適用すればSP2用のパッチは適用する必要がない。SP3になったことでSP3用のパッチが出現する。

エラー一覧

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 · 最終更新: 2022/09/05 17:58 by yajuadmin