かつて山市良と呼ばれたおじさんのブログ

セイテクエンジニアのブログ  かつて山市良と呼ばれたおじさんのブログ  vol.142 ギリギリのEOS対策に終止符を|Windows Server 2016 EOSまであと467日

 

 

vol.142 ギリギリのEOS対策に終止符を|Windows Server 2016 EOSまであと467日

2025年10月02日配信
執筆者:山内 和朗

 Windows Server 2016の製品ライフサイクルとサポート終了日(End of LifeCycle《EOL》、End of Support《EOS》)である2027年1月12日までまだ1年以上ありますが、現在、現役でWindows Server 2016を運用されている企業は多いと思います。この新しい連載シリーズでは、Windows Server 2016のEOL/EOSに向けた、さまざまな対策について取り上げる予定です。

 

数年ごとに繰り返される同じ光景

 

 現在、Windows Server 2016を運用しているなら、既にEOL/EOSに備えた移行計画に着手しているでしょうか。もしまだなら、すぐに開始するべきです。もう遅すぎるくらいです。Windows Server 2016の10年のライフサイクル*1において、現在は延長サポート期間の終盤にあります。メインストリームサポートは2022年1月に終了しているため、本来ならその時点で着手するべきでした。
*1 5年のメインストリームサポートとその後最大5年の延長サポートという現在の固定ライフサイクルポリシー(2010年4月13日に改訂)はWindows 2000 Serverから。

 Windows ServerのレガシバージョンのEOL/EOSが近づくたびに、終了日までに急いで対応しましょうというキャンペーンやニュース、各種コンテンツがWeb媒体や雑誌(雑誌全盛の時代)、時には一般向けのニュースにまで登場しました。私は、雑誌編集者として、システム管理者として、そしてライターとして、これまで以下のWindows ServerバージョンのEOL/EOSに立ち会ってきました。そして、2027年1月に向けて、Windows Server 2016を対象にあのバタバタが繰り返されようとしています。

 

Windows Serverバージョン EOL/EOS 備考
Windows NT Server 4.0  2004/12/31  
Windows 2000 Server 2010/7/13  
Windows Server 2003/2003 R2  2015/7/14  
Windows Srever 2008/2008 R2 2020/1/14 ESU Year 3 2023/1/10まで(AzureのみESU Year 4 2024/1/8まで)
Windows Server 2012/2012 R2 2023/10/10  ESU Year 3 2026/10/13まで

 

 Windows Server 2008/2008 R2のEOL/EOS以降、Microsoftは拡張セキュリティ更新プログラム(ESU)の有料(Azureでは無料)提供を開始し、最大3年間、重大(Critical)および重要(Important)なセキュリティ問題に対するセキュリティ修正プログラムを毎月受け取れるようになりました。

Windows Server の拡張セキュリティ更新プログラムの概要|Windows Server(Microsoft Learn)
ライフサイクルに関する FAQ - 拡張セキュリティ更新プログラム|ライフサイクル(Microsoft Learn)

 2025年10月14日にEOL/EOSを迎えるWindows 10に対してはESUの提供は決まっています*2。Windows Server 2016に対しても、おそらく同じように最大3年のESUが提供されることになると思いますが、まだMicrosoftからは何も正式な発表がないため、提供されると断言することはできません。そのため、今の段階でESUの提供を前提とした計画を立てるべきではないでしょう。ESUの提供を信じて先延ばしにするのではなく、終了日までにすべてのWindows Server 2016のシステムを撤去できるように計画するべきです。

*2 個人向けHomeエディションを含むモダンライフサイクルポリシーのWindows 10バージョン22H2に対して提供されます。同じ日にEOL/EOSを迎える固定ライフサイクルポリシーのWindows 10 Enterprise LTSB 2015(OSビルド10240)は対象外。

 

 EOL/EOSになるとどうなるのか、何が問題なのか、どうするべきなのか、これまで何度も書いてきました。毎回、その内容はほとんど同じです。既に別のブログ担当が以下の記事に詳しくまとめてあるので、そちらに譲ります。

 

Windows Server 2016のサポート期限は2027年1月12日|終了前に備えるべき対策とは?

 

終了日までのカウントダウンを見える化

 

 連載シリーズの初回は、Windows Server 2016のEOL/EOSまでの残り日数を瞬時に把握できる簡単なスクリプトを紹介します。

 次のPowerShellスクリプト「daystows2016eos.ps1」は、実行した日からWindows Server 2016のEOL/EOSまでの残り日数を表示します。-DateFromパラメーターに日付を指定すると、その日付からの残り日数を表示します(.¥daystows2016eos.ps1 [-DateFrom "yyyy/MM/dd"])。

[daystows2016eos.ps1]プレーンテキストで表示)

param (
  [datetime]$DateFrom = (Get-Date),
  [datetime]$DateEnd = (Get-Date("2027/1/12"))
)
$daysremaining = ($DateEnd.Date - $DateFrom.Date).Days
Write-Host "$($daysremaining) days remaining until Windows Server 2016 End of Support."

($DateEnd.Date - $DateFrom.Date).Daysではなく、($DateEnd - $DateFrom).Daysとした場合、同じ日でも実行時間によって結果が異なる(次のdaystows2016eos.vbsと結果が異なる)ことがあります。

 

 次のWindows Script Host(WSH)用スクリプト「daystows2016eos.vbs」は、「daystows2016eos.ps1」のVBScript版です。引数に日付を指定でき、省略すれば実行した日からの日数になります(cscript.exe|wscript.exe daystows2016eos.vbs ["yyyy/MM/dd"] [//nologo] またはエクスプローラーでダブルクリック)。

[daystows2016eos.vbs]プレーンテキストで表示)

Dim  args, dateFrom, dateEnd, daysRemaining
Set args = WScript.Arguments
If args.Count > 0 Then
    dateFrom = CDate(args(0))
Else
    dateFrom = Date()
End If
dateEnd = DateSerial(2027, 1, 12)
daysRemaining = DateDiff("d", dateFrom, dateEnd)
WScript.Echo daysRemaining & " days remaining until Windows Server 2016 End of Support."

 

 スクリプトを実行するのは面倒なので、Windows SysinternalsのBgInfoを使用してデスクトップの壁紙に表示できるようにしました(画面1)。BgInfoはカスタムフィールドでVBScriptの結果を表示することができます。ただし、WSHエンジンではなく、BgInfo独自のエンジンを使用しているため、WSH組み込みのWscriptオブジェクトには対応しておらず、カスタムフィールドに「daystows2016eos.vbs」を指定するとエラーになります。WScriptオブジェクトの使用を排除して、BgInfo用に書き直した以下の「daystows2016eosforbginfo.vbs」を使用してください。


Bginfo | Sysinternals(Microsoft Learn)


[daystows2016eosforbginfo.vbs](プレーンテキストで表示)

Dim dateFrom, dateEnd, daysRemaining
dateFrom = Date()
dateEnd = DateSerial(2027, 1, 12)
daysRemaining = DateDiff("d", dateFrom, dateEnd)
Echo daysRemaining

※このスクリプトはBgInfoでの利用を想定しています。WSHエンジンで実行すると(cscriptexe daystows2016eosforbginfo.vbs)、エラー(Microsoft VBScript 実行時エラー: 型が一致しません。: 'Echo')になります。


画面1 BgInfoを使って壁紙にEOL/EOSまでの残り日数を表示する。スタートアップフォルダー(shell:startup)にBgInfo.exeを配置するか、コマンドライン「パス¥bginfo.exe /timer:0 /silent [/nolicprompt]」を記述したバッチファイル(.cmdまたは.bat)を配置して、毎回実行されるようにすること
画面1 BgInfoを使って壁紙にEOL/EOSまでの残り日数を表示する。スタートアップフォルダー(shell:startup)にBgInfo.exeを配置するか、コマンドライン「パス¥bginfo.exe /timer:0 /silent [/nolicprompt]」を記述したバッチファイル(.cmdまたは.bat)を配置して、毎回実行されるようにすること(詳しくは、以下の書籍を参考に)

 

お勧めの一冊

 Windows Sysinternalsユーティリティの日本語解説については、少し古い書籍ですが、こちらをお勧めします。Windows Sysinternalsユーティリティは更新を続けていますが、ユーティリティのラインアップや基本的な使い方に変わりはありません。BgInfoについても、使い方や活用方法を詳しく解説しています。

 

ブックカバーWindows Sysinternals 徹底解説 改訂新版

著者   : Mark E. Russinovich、Aaron Margosis 著
訳者   : 山内和朗
価格   : 6,050 円(税込)
ISBN   : 978-4-8222-9896-8
発行日 : 2017年06月05日
発行元 : 日経BP
頁数   : 740ページ

※書籍の正誤情報、およびユーティリティのこれまでの更新情報については、旧ブログサイトをご覧ください。

 

Windows Server 2016 EOSまであとX日(1)|(2)

blog_yamanxworld_subscribe

blog_yamanxworld_comment

blog_yamanxworld_WP_ws2025

最新記事