Azure DevOps Server 7月パッチの適用確認手順|CheckInstallとSHA-256で検証

Azure DevOps Serverの2026年7月パッチが正しく適用されたか確認するには、SHA-256とCheckInstallを別々の目的で使う必要があります。

SHA-256は、ダウンロードしたパッチファイルがMicrosoftの公式配布物と一致しているかを確認するためのものです。一方、CheckInstallは、そのパッチがAzure DevOps Serverにインストール済みかを確認します。

したがって、確実な確認手順は次の流れです。

  1. インストール対象の製品バージョンを確認する
  2. パッチファイルのSHA-256を公式値と照合する
  3. Azure DevOps Server上でCheckInstallを実行する
  4. 複数のアプリケーション層サーバーがある場合は全台を確認する
  5. 管理コンソールと簡単な動作確認で結果を補完する

Microsoftが2026年7月21日に公開した対象パッチは、Azure DevOps Server用のPatch 6と、Azure DevOps Server 2022 Update 2用のPatch 11です。公式案内でも、ダウンロードしたインストーラーをCheckInstall引数付きで実行し、適用状態を確認する手順が示されています。(Microsoft for Developers)

目次

SHA-256とCheckInstallでは確認しているものが違う

最初に理解しておきたいのは、SHA-256が一致しても「パッチがインストール済み」とは限らず、CheckInstallが成功しても「ダウンロードしたファイルが正規のものだった」とは限らない点です。

確認方法確認できること確認できないこと
SHA-256照合パッチファイルの内容が公式値と一致しているかサーバーへインストールされたか
CheckInstall対象サーバーでパッチが適用済みと判定されるかダウンロードファイルの完全性
動作確認Web画面や主要機能が正常に利用できるかパッチファイルの公式性

実務上は、次の3段階をすべて通過した状態を「確認完了」とするのが安全です。

  • ファイル確認:SHA-256が公式値と一致
  • 適用確認CheckInstallでインストール済みと判定
  • 稼働確認:管理コンソールと主要機能に異常がない

2026年7月パッチの対象と公式SHA-256

今回のパッチは、製品世代ごとに別のインストーラーが用意されています。

インストール済み製品適用するパッチインストーラー名公式SHA-256
Azure DevOps ServerPatch 6devopsserverpatch6.exeF2C270BCD52595DB19083BE79A769BC7ECBDB121D530797EF49203A5A02BAF75
Azure DevOps Server 2022 Update 2Patch 11devops2022.2patch11.exeFBD79B3E311E4CC20F63AAD1AD85B7FEAC1118C281AFCF32C5B5FC9593CFD480

Azure DevOps Server Patch 6の公式リリース日は2026年7月21日です。Patch 6には、従来形式のTFVCチェックインポリシーの段階的な廃止開始と、ID解決時に信頼されたActive Directoryドメインだけへ接続するための検証強化が含まれます。(Microsoft Learn)

Azure DevOps Server 2022 Update 2 Patch 11も同日に公開されました。こちらにはTFVCチェックインポリシーに関する変更に加え、親子関係の変更後に円グラフや面グラフの集計値が作業項目クエリと一致しない問題の修正が含まれます。(Microsoft Learn)

Patch 6とPatch 11は、数字の大小で選ぶものではありません。 現行のAzure DevOps ServerにはPatch 6、Azure DevOps Server 2022 Update 2にはPatch 11を使用します。

パッチ適用前に製品バージョンを確認する

誤った製品系列のパッチを使わないように、最初にAzure DevOps Serverの管理コンソールを確認します。

  1. Azure DevOps Serverのアプリケーション層サーバーにサインインする
  2. Azure DevOps Server管理コンソールを開く
  3. 「アプリケーション層」を選択する
  4. 表示される製品バージョンを確認する
  5. 必要に応じて「インストールされた更新プログラム」も確認する

Microsoftの案内では、管理コンソールの「アプリケーション層」でバージョン番号を確認でき、「インストールされた更新プログラム」から更新時期も確認できます。(Microsoft Learn)

社内の保守台帳に「Azure DevOps Server 2022.2」と書かれていても、実機が別のバージョンへ更新されている可能性があります。パッチの選択は、台帳だけでなく実機の情報を基準にしてください。

PowerShellでSHA-256を確認する

SHA-256の確認は、パッチインストーラーを実行する前に行います。

Microsoft Learnでは、PowerShellのGet-FileHashを使用し、取得したハッシュを公式値と比較する方法が案内されています。ハッシュが一致しない場合はファイルが破損している可能性があるため、再ダウンロードが必要です。(Microsoft Learn)

Azure DevOps Server Patch 6を確認する

パッチをC:\Temp\AzureDevOpsPatchへ保存した場合は、次のコマンドを実行します。

Get-FileHash `
  -LiteralPath "C:\Temp\AzureDevOpsPatch\devopsserverpatch6.exe" `
  -Algorithm SHA256

表示されたHashが、次の値と完全に一致することを確認します。

F2C270BCD52595DB19083BE79A769BC7ECBDB121D530797EF49203A5A02BAF75

Azure DevOps Server 2022 Update 2 Patch 11を確認する

Get-FileHash `
  -LiteralPath "C:\Temp\AzureDevOpsPatch\devops2022.2patch11.exe" `
  -Algorithm SHA256

表示されたHashが、次の値と完全に一致することを確認します。

FBD79B3E311E4CC20F63AAD1AD85B7FEAC1118C281AFCF32C5B5FC9593CFD480

英字の大文字と小文字はハッシュ値の意味に影響しません。ただし、文字の欠落や入れ替わりを防ぐため、目視ではなくPowerShellで自動比較する方法が確実です。

SHA-256を自動比較するPowerShellスクリプト

次のスクリプトでは、実際のSHA-256と公式値を比較し、不一致の場合は処理を停止します。

Azure DevOps Server Patch 6の例です。

$PatchPath = "C:\Temp\AzureDevOpsPatch\devopsserverpatch6.exe"
$ExpectedHash = "F2C270BCD52595DB19083BE79A769BC7ECBDB121D530797EF49203A5A02BAF75"

if (-not (Test-Path -LiteralPath $PatchPath)) {
    throw "パッチファイルが見つかりません: $PatchPath"
}

$ActualHash = (
    Get-FileHash -LiteralPath $PatchPath -Algorithm SHA256
).Hash.ToUpperInvariant()

Write-Host "ファイル : $PatchPath"
Write-Host "公式値   : $ExpectedHash"
Write-Host "計算結果 : $ActualHash"

if ($ActualHash -ne $ExpectedHash) {
    throw "SHA-256が一致しません。パッチを実行せず、公式サイトから再ダウンロードしてください。"
}

Write-Host "SHA-256は公式値と一致しました。"

Patch 11を確認する場合は、次の2か所を変更します。

$PatchPath = "C:\Temp\AzureDevOpsPatch\devops2022.2patch11.exe"
$ExpectedHash = "FBD79B3E311E4CC20F63AAD1AD85B7FEAC1118C281AFCF32C5B5FC9593CFD480"

SHA-256が一致しない場合の対応

不一致の場合は、そのファイルを実行してはいけません。

考えられる原因は次のとおりです。

  • ダウンロードが途中で破損した
  • 別のパッチファイルを指定している
  • 古いパッチを確認している
  • ファイルパスを間違えている
  • 公式配布元以外から取得した
  • ダウンロード後にファイル内容が変化した

実際のハッシュ値を「正しい値」として運用台帳へ書き換えるのは誤りです。パッチを削除し、Microsoftの公式ダウンロード先から取得し直したうえで、最新のリリースノートに掲載されているSHA-256と比較してください。

CheckInstallでパッチの適用状態を確認する

SHA-256が一致したら、次にCheckInstallを実行します。

この確認は、Azure DevOps Serverがインストールされているサーバー上で行います。権限不足による確認失敗を避けるため、管理者として起動したPowerShellまたはコマンドプロンプトを使用するのが安全です。

Azure DevOps Server Patch 6の確認コマンド

Set-Location "C:\Temp\AzureDevOpsPatch"
.\devopsserverpatch6.exe CheckInstall

フルパスで実行する場合は、PowerShellの呼び出し演算子&を使用します。

& "C:\Temp\AzureDevOpsPatch\devopsserverpatch6.exe" CheckInstall

Azure DevOps Server 2022 Update 2 Patch 11の確認コマンド

Set-Location "C:\Temp\AzureDevOpsPatch"
.\devops2022.2patch11.exe CheckInstall

または、次のように実行します。

& "C:\Temp\AzureDevOpsPatch\devops2022.2patch11.exe" CheckInstall

Microsoftの公式手順では、ダウンロードしたパッチインストーラーにCheckInstallを付けて実行すると、出力にインストール済みか未インストールかが表示されます。(Microsoft for Developers)

CheckInstallの結果をファイルへ保存する

監査記録や変更管理票へ添付する場合は、画面表示だけでなく結果をファイルへ保存します。

$PatchPath = "C:\Temp\AzureDevOpsPatch\devopsserverpatch6.exe"
$TimeStamp = Get-Date -Format "yyyyMMdd-HHmmss"
$EvidencePath = "C:\Temp\CheckInstall-$env:COMPUTERNAME-$TimeStamp.txt"

& $PatchPath CheckInstall 2>&1 |
    Tee-Object -FilePath $EvidencePath

Patch 11の場合は、$PatchPathを次のように変更します。

$PatchPath = "C:\Temp\AzureDevOpsPatch\devops2022.2patch11.exe"

記録には、少なくとも次の情報を残しておくと後から追跡しやすくなります。

  • 実行日時
  • サーバー名
  • 製品バージョン
  • パッチ名
  • パッチファイルのSHA-256
  • CheckInstallの出力
  • 作業者名
  • 動作確認結果

CheckInstallが未インストールと表示された場合

CheckInstallで未インストールと判定された場合、SHA-256が一致していてもパッチ適用は完了していません。

次の順番で確認します。

正しいサーバーで実行しているか

パッチを別のアプリケーション層サーバーへ適用し、確認コマンドだけ別のサーバーで実行している可能性があります。

サーバー名を確認します。

$env:COMPUTERNAME

製品系列とパッチが一致しているか

次の組み合わせになっているか確認してください。

  • Azure DevOps Server:devopsserverpatch6.exe
  • Azure DevOps Server 2022 Update 2:devops2022.2patch11.exe

Patch 6とPatch 11を入れ替えて使用することはできません。

パッチのインストールが途中で失敗していないか

パッチを起動しただけで、完了画面を確認せずに作業を終了している場合があります。

次を確認します。

  • パッチインストーラーの完了結果
  • インストーラーが出力したログ
  • Windowsイベントログ
  • Azure DevOps Server管理コンソールの「インストールされた更新プログラム」
  • サーバー再起動が保留されていないか

古いインストーラーで確認していないか

CheckInstallは、確認したいパッチのインストーラーで実行します。

例えばPatch 11を確認したいのに、以前保存したPatch 10のインストーラーへCheckInstallを付けると、Patch 10の適用状態を確認することになります。ファイル名だけでなくSHA-256も併せて確認してください。

複数サーバー構成では全ノードでCheckInstallを実行する

Azure DevOps Serverは、負荷分散や高可用性のため、複数のアプリケーション層サーバーで構成できます。(Microsoft Learn)

この構成では、1台でCheckInstallが成功しても、環境全体の確認完了とはいえません。

例えば、次のような状態が起こり得ます。

サーバーCheckInstall結果
ADO-AT01インストール済み
ADO-AT02インストール済み
ADO-AT03未インストール

ロードバランサー配下で一部ノードだけ未適用の場合、アクセス先によって動作が変わる可能性があります。その結果、「正常に使えるときとエラーになるときがある」という断続的な問題に見えることがあります。

複数アプリケーション層構成では、各サーバーで次の作業を行います。

  1. サーバー名を記録する
  2. 配置したパッチファイルのSHA-256を確認する
  3. CheckInstallを実行する
  4. 結果をサーバー名付きで保存する
  5. 全サーバーの結果を一覧化する

ファイルサーバーから各ノードへパッチをコピーした場合は、コピー元だけでなくコピー先でもSHA-256を取得すると、転送後のファイルを確実に確認できます。

管理コンソールでもインストール状態を確認する

CheckInstallの結果は、Azure DevOps Server管理コンソールでも補完します。

  1. Azure DevOps Server管理コンソールを開く
  2. 「アプリケーション層」を選択する
  3. 表示されるバージョンを記録する
  4. 「インストールされた更新プログラム」を開く
  5. 更新日時と対象サーバーを確認する

Microsoftは、管理コンソールでアプリケーション層とデータ層のバージョン番号を確認し、「インストールされた更新プログラム」で更新時期を確認する方法を案内しています。(Microsoft Learn)

管理コンソールとCheckInstallの結果が食い違う場合は、すぐに「適用済み」と判断せず、次を確認してください。

  • 別のアプリケーション層サーバーを見ていないか
  • 管理コンソールを更新前から開いたままにしていないか
  • パッチインストールがロールバックされていないか
  • インストーラーのログに失敗が記録されていないか
  • サービスやサーバーの再起動が必要な状態ではないか

CheckInstall成功後に行う動作確認

CheckInstallがインストール済みと表示しても、Azure DevOps Server全体の正常稼働まで保証するものではありません。

少なくとも、次のスモークテストを行います。

確認対象確認内容
Webポータルサインインし、対象プロジェクトを開ける
Azure Boards作業項目一覧と代表的な作業項目を表示できる
Azure Reposリポジトリ、ブランチ、コミット履歴を表示できる
Azure Pipelinesパイプライン一覧と直近の実行結果を表示できる
認証通常利用者と管理者でサインインできる
サービスAzure DevOps関連サービスが停止していない
ログWindowsイベントログやパッチログに重大なエラーがない

本番デプロイにつながるパイプラインを不用意に実行するのではなく、検証用パイプラインや読み取り中心の確認を使用してください。

Patch 6適用後に確認したいポイント

Azure DevOps Server Patch 6では、通常の画面確認に加えて、TFVCとActive Directoryに関する影響を確認します。

従来形式のTFVCチェックインポリシー

Patch 6では、レガシ形式のTFVCチェックインポリシーについて、既存データは読み取れる一方、保存は既定で無効になります。必要な場合は、管理者がプロジェクト単位で一時的に保存を再有効化できます。(Microsoft Learn)

TFVCを使用している組織では、次を確認してください。

  • 既存のチェックインポリシーが表示されるか
  • 新規作成や変更時の挙動が想定どおりか
  • レガシポリシーに依存する開発手順が残っていないか
  • 新しい形式への移行計画があるか

保存できなくなったことをパッチの失敗と誤認しないよう、利用部門への事前周知も必要です。

Active DirectoryのID解決

Patch 6では、Azure DevOps ServerがIDを解決するとき、信頼されたActive Directoryドメインだけに接続するための検証が追加されています。(Microsoft Learn)

複数ドメインやフォレスト間信頼を使用している場合は、代表的なユーザーやグループについて次を確認します。

  • ユーザー検索が成功する
  • グループを権限へ追加できる
  • 既存ユーザーが無効なIDとして表示されない
  • 信頼関係のないドメインへ依存した運用が残っていない

Patch 11適用後に確認したいポイント

Azure DevOps Server 2022 Update 2 Patch 11では、TFVCの確認に加えて、円グラフと面グラフの集計値を確認します。

このパッチでは、作業項目の親子関係を変更した後、一部の円グラフや面グラフが基になるクエリと異なる集計値を表示する問題が修正されています。(Microsoft Learn)

該当するダッシュボードを利用している場合は、次の手順で確認します。

  1. 円グラフまたは面グラフを開く
  2. グラフの基になっている作業項目クエリを開く
  3. 件数や分類別の集計を比較する
  4. 親子関係を変更した作業項目を含むケースも確認する
  5. ブラウザーの再読み込み後も値が一致するか確認する

単にダッシュボードが表示されたかだけではなく、グラフの数値と元のクエリ結果が一致しているかまで確認することが重要です。

よくある確認ミス

SHA-256の確認をインストール後にしか行わない

SHA-256は、パッチを実行する前に確認するのが原則です。実行後に不一致が判明すると、どのファイルを使用したかの調査が必要になります。

ファイル名だけで正規ファイルと判断する

ファイル名は変更できます。同じdevopsserverpatch6.exeという名前でも、中身が同じとは限りません。必ずSHA-256を比較してください。

1台の結果だけで環境全体を適用済みと判断する

複数アプリケーション層構成では、全ノードの確認が必要です。サーバーごとに確認結果を記録してください。

CheckInstallだけで正常稼働と判断する

CheckInstallはパッチの適用状態を確認するものであり、Webポータル、認証、Repos、Boards、Pipelinesなどの動作を保証するものではありません。

古い公式ハッシュを運用資料からコピーする

パッチが再公開された場合などに備え、保存済みのExcelや手順書だけではなく、作業時点の公式リリースノートを確認してください。確認日と参照したハッシュを変更記録へ残すと追跡しやすくなります。

7月パッチの確認チェックリスト

最終的には、次の項目がすべて完了していることを確認します。

  • インストール済みのAzure DevOps Server製品系列を実機で確認した
  • 対応するPatch 6またはPatch 11を選択した
  • パッチファイルをMicrosoftの公式配布先から取得した
  • SHA-256が公式値と一致した
  • CheckInstallでインストール済みと判定された
  • 複数アプリケーション層がある場合は全台を確認した
  • 管理コンソールのバージョンと更新情報を確認した
  • Webポータルと主要機能のスモークテストを実施した
  • TFVC、Active Directory、グラフなど対象パッチ固有の変更を確認した
  • SHA-256、サーバー名、実行日時、CheckInstall結果を記録した

Azure DevOps Serverの7月パッチ確認では、SHA-256一致だけでも、CheckInstall成功だけでも不十分です。まず公式SHA-256でインストーラーの完全性を確認し、その同じインストーラーを使って各アプリケーション層サーバーでCheckInstallを実行してください。

最後に管理コンソールと主要機能の動作確認を行い、結果を変更管理記録へ残せば、「どのファイルを、どのサーバーへ、いつ適用し、どの方法で確認したか」を後から説明できる状態になります。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次