SharePoint Server 2019 KB5002754/KB5002753 適用後にモダンページ左ナビが消える・Nintex ワークフローが失敗する原因と対処法

SharePoint Server 2019 に KB5002754 / KB5002753 を適用した直後から、モダンページの左ナビや編集UIが消える、Nintex ワークフローが失敗/停止する、といった障害が同時に発生することがあります。本記事では原因の当たりを付ける切り分けと、現場で効果のあった対処を安全度順に整理します。

目次

SharePoint Server 2019 更新(KB5002754 / KB5002753)適用後に起きる代表的な症状

SharePoint Server 2019 は、累積更新プログラム(Core update)と Language Pack update を同じタイミングで適用した直後に、モダンUI(静的ファイル参照)とワークフロー(タイマー側処理)の双方で不具合が表面化することがあります。見た目は「ナビが消えた」「ボタンが無い」ですが、実態としては JavaScript/CSS の読み込み失敗や、ワークフローのコンパイル/セキュリティチェックの扱いの変化が引き金になっているケースが多いです。

更新種別適用対象影響が出やすい箇所
KB5002754Core updateSharePoint Server 2019(Farm 全体)モダンUIの静的リソース参照、ワークフロー実行基盤、タイマー処理
KB5002753Language Pack updateLanguage Pack を導入しているサーバー言語フォルダー(ローカライズ)配下の静的リソース欠落・差分
分類主な現象影響範囲の目安最初に疑うポイント
モダンページ(Modern Site Pages)左ナビが表示されない/編集ボタンが出ない/コマンドバーが欠ける複数サイトコレクションで再現しやすい(環境全体に波及)LAYOUTS のバージョン付きフォルダー参照、言語フォルダーの静的ファイル欠落、404
ワークフロー(主に Nintex)「failed to run」で開始できない/Change State・Pause For 等で無言停止特定のアクションを使うWFで顕在化しやすいPreParseSecurityCheck、WorkflowCompiler / authorizedTypes、OWSTIMER と web.config の不整合

最短復旧の考え方:変更は「安全度が高いもの」から段階的に

本番障害の対応では、成功しやすい順に打つのがセオリーです。特に SharePoint はサーバー台数や役割(WFE/APP)が絡むため、設定変更の前に「影響の出方」を観察しておくと、手戻りが大きく減ります。

優先度狙い具体アクションポイント
高現象の可視化ブラウザ開発者ツールで 404/JS エラー確認、WF 実行履歴・ULS で失敗点確認「UI系」と「WF系」を分離してから手を入れる
高サーバー差の排除更新適用状況を全台で揃える/問題サーバーの切り離し(LB配下)台数差があると、症状がランダムに見えて迷走しやすい
中参照先の整合SideBySideToken の見直し、言語フォルダー差分補完(バックアップ前提)モダンUI系に効きやすい
中WF 実行基盤の整合WorkflowCompiler(web.config / OWSTIMER.EXE.CONFIG)の整合、必要なら構成キャッシュ整理WFの「途中停止」「開始失敗」に効くことがある
低暫定回避EnablePreParseSecurityCheckForWorkflow を無効化セキュリティ面の判断が必要(変更管理必須)
最終確実に元へ戻す更新のロールバック(アンインストール)/Microsoft・Nintexへ正式サポート業務影響が深刻な場合の現実解

まず行う切り分け:原因を「UI系」と「ワークフロー系」に分離する

この手の障害は、焦って一気に設定変更すると検証が難しくなります。最初の30分は「何が壊れているか」を可視化して、対処の成功確率を上げるのが近道です。

チェック項目手順(例)判断のポイント次に進む方向
適用状況の確認全サーバーで更新適用の有無と適用順を確認(WFE/APP で差がないか)サーバー間で適用差があると、ロードバランサ配下で「出たり出なかったり」に見える差がある場合は先に揃える/一時的に問題サーバーを切り離す
モダンページの開発者ツール確認ブラウザ開発者ツールで Network を開き、JS/CSS の 404や読み込みエラーを確認sp-pages-assembly.js 等が 404 なら、ナビや編集UIが欠ける説明が付く「モダンページUI系」の対処へ
ワークフローの実行ログ確認Nintex の実行履歴/Workflow History、ULS、イベントログで「失敗タイミング」を特定開始直後に失敗か、途中の特定アクションで停止かで対処が変わる「ワークフロー系」の対処へ
Timer Service の状態SPTimerV4 の稼働、再起動、過負荷(キュー詰まり)の有無を確認停止・不安定だと「黙って止まる」が増えるサービスの健全化→設定対処

モダンページの左ナビ・編集ボタンが消える:原因と対処

モダンページの左ナビや編集ボタンは、サーバー上の静的ファイル(Next/spclient など)を読み込んで描画します。更新後にその参照が崩れると、ページ自体は表示できても UI の一部が欠けます。特に Language Pack を入れている環境では、言語フォルダー側のファイル欠落で発生することがあります。

現象の見え方(よくあるパターン)

見た目の症状裏で起きていること(推定)確認方法
左ナビが空白になる関連 JS が読めず、ナビ描画が走っていない開発者ツールで 404 / JS エラー
ページ編集ボタンが出ないコマンドバーのコンポーネントが初期化されていない同上(エラーが出ていることが多い)
特定言語だけ崩れる言語フォルダーに必要ファイルが欠けているen-us と対象言語(例:cs-cz)を比較

対処の全体像(安全度が高い順)

  • 参照先フォルダーが存在するかを確認し、Side-by-Side(バージョン付き LAYOUTS)を正しい更新フォルダーへ向ける
  • Language Pack による不足ファイルが疑われる場合、バックアップを取った上で言語フォルダーへファイルを補う
  • IIS リサイクル/iisreset を全WFEに実施し、反映差をなくす

手順:SideBySideToken を更新して新フォルダーを参照させる

更新後の LAYOUTS 配下に、バージョン付きフォルダー(例:16.0.xxxxx.xxxxx)が作成されます。SharePoint がそこを参照できていないと、古い参照先に残っていないファイルを探して 404 になり、UI が欠けます。

更新後のバージョン付きフォルダーが存在するか確認

# 例:LAYOUTS 配下のフォルダー一覧を確認(実行サーバーで確認)
$layouts = Join-Path $env:CommonProgramFiles "microsoft shared\Web Server Extensions\16\TEMPLATE\LAYOUTS"
Get-ChildItem $layouts -Directory | Sort-Object Name -Descending | Select-Object -First 10

Web アプリケーションが参照する SideBySideToken を更新

asnp *sharepoint* -ErrorAction SilentlyContinue

$webApp = Get-SPWebApplication "[https://your-sharepoint-url/](https://your-sharepoint-url/)"
$ws = $webApp.WebService

# 現在値の確認(念のため控える)

$ws.EnableSideBySide
$ws.SideBySideToken

# 実在するバージョンフォルダー名に置換して設定

$ws.SideBySideToken = "16.0.10417.20037"
$ws.EnableSideBySide = $true
$ws.Update()

反映

  • 全WFEでアプリケーションプール リサイクル、または iisreset を実施
  • ロードバランサ配下の場合、1台ずつ実施して切り戻しポイントを確保
  • 改善確認は「同じURLに何度も」ではなく、複数サイトコレクション/複数ページで行う(キャッシュの見かけ改善を除外するため)

手順:言語フォルダーに不足している JS を補う(Language Pack 影響が疑わしい場合)

更新後のパス例として、次のような場所にモダンUI関連のファイルがあります。

  • ...\16\TEMPLATE\LAYOUTS\16.0.xxxxx.xxxxx\Next\spclient\

ここで en-us には存在するが、対象言語(例:cs-cz)に無いファイルがあると、対象言語でのみ UI が欠けます。運用現場では sp-pages-assembly.js を補うことで改善した例が報告されています。

作業ポイント注意
不足ファイルの特定en-us と対象言語フォルダーでファイル差分を取る「ファイルが無い」ことが確実に分かってから実施
バックアップ対象言語フォルダーを丸ごとバックアップ(zip でも可)復旧手段を確保してから変更
ファイル補完例:en-us の sp-pages-assembly.js を対象言語へコピー全WFEへ同じ操作が必要(サーバー差が残ると再発に見える)

作業後は iisreset などで反映し、モダンページを複数サイトで再確認します。もし 404 が残る場合は、別ファイルが不足している可能性があるため、Network の 404 一覧から「欠けているファイル名」を起点に埋めていくと作業が最短になります。

よくある落とし穴:設定は直っているのに「見え方」だけが戻らない

  • ブラウザキャッシュで古い JS が残り、改善が遅れて見えることがあります(別ブラウザ/シークレットで確認すると判断が早いです)。
  • WFE が複数台ある場合、1台だけ修正しても LB で別の WFE に当たると「直っていない」ように見えます。必ず全台反映を前提に進めます。

Nintex ワークフローが失敗/停止する:原因と対処

更新適用後にワークフローが不安定になる場合、表に出るエラーは大きく2種類に分かれます。原因が違うため、まずはどちらの系統かを切り分けます。

症状典型的な見え方よくある原因の方向性優先して試す対処
開始できず「failed to run」起動直後に失敗。履歴にエラーが残る許可型(authorizedTypes)やセキュリティチェックが引っかかるPreParseSecurityCheck、WorkflowCompiler/authorizedTypes 整合
途中で黙って停止Change State / Pause For 等で止まり、エラー無し。手動再実行で進むタイマー側(OWSTIMER)での処理不整合、設定差、タイマーの不安定OWSTIMER と web.config の整合、Timer/キャッシュ周りの健全化

対処を始める前の準備(トラブルシュートを短くする)

  • 再現条件を固定:どのWebアプリ/どのサイト/どのWFで再現するかを1つに絞り、毎回同じ手順で試します。
  • 設定バックアップ:web.config と OWSTIMER.EXE.CONFIG は編集前に必ずバックアップ(差分が追えるようファイル名に日時を付ける)。
  • 影響を見える化:「開始直後に失敗」「特定アクションで停止」など、失敗パターンを言語化してから作業します。

対処案:EnablePreParseSecurityCheckForWorkflow を無効化(定番回避として効く場合がある)

更新後にワークフローが突然落ち始めた場合、Farm 設定の EnablePreParseSecurityCheckForWorkflow が影響することがあります。無効化して改善した報告がある一方、セキュリティ目的のチェックを下げる変更でもあるため、変更管理(承認・記録・切り戻し)を前提に実施します。

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$farm = Get-SPFarm

# 現在値を確認
$farm.EnablePreParseSecurityCheckForWorkflow

# 無効化(改善報告のある回避策)
$farm.EnablePreParseSecurityCheckForWorkflow = $false
$farm.Update()

iisreset
Restart-Service -Name SPTimerV4

切り戻し(元へ戻す)

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$farm = Get-SPFarm
$farm.EnablePreParseSecurityCheckForWorkflow = $true
$farm.Update()

iisreset
Restart-Service -Name SPTimerV4
メリットデメリット/注意点
変更点が少なく、効果が出る環境では復旧が早いセキュリティ意図のチェックを下げるため、適用判断は慎重に(特に外部公開・厳格な監査環境)

対処案:WorkflowCompiler 設定(web.config / OWSTIMER.EXE.CONFIG)の整合を取る

ワークフローは「Web(w3wp)」だけで完結せず、タイマー(OWSTIMER)側でも実行されます。更新後に System.Workflow.ComponentModel.WorkflowCompiler の扱いが厳格化したように見えるケースでは、web.config と OWSTIMER.EXE.CONFIG の記述がズレているだけで失敗することがあります。

設定ファイル主に効くプロセスズレた場合の典型症状備考
web.configIIS(w3wp)経由の処理開始時に失敗、Web ベースの操作で顕在化Webアプリ単位で存在(場所は環境で異なる)
OWSTIMER.EXE.CONFIGSharePoint Timer Service(OWSTIMER)途中停止、遅延、再実行が必要になるサーバー単位。全台で揃える必要がある

パターン:OWSTIMER 側の WorkflowCompiler を整理し、構成キャッシュも含めて整合を取り直す

改善例として多いのが「OWSTIMER.EXE.CONFIG の <System.Workflow.ComponentModel.WorkflowCompiler> を整理し、web.config 側と食い違いをなくす」手法です。環境により最適解が分かれるため、以下の方針で進めると安全です。

方針概要向いている状況
OWSTIMER から WorkflowCompiler ノードを削除して寄せるOWSTIMER 側の記述を削り、web.config 側に寄せて管理OWSTIMER と web.config の差分が大きい/何を追加すべきか判断しづらい
authorizedTypes を両方に同一内容で明示web.config の targetFx 配下を OWSTIMER にも同一で反映不足している型がある程度特定できている/追加で収束させたい

構成キャッシュ(Configuration Cache)を扱う場合の標準手順(例)

構成キャッシュは SharePoint の内部整合に関わるため、作業するなら「手順の固定」が重要です。一般的には Timer Service を止めた上で、構成キャッシュの XML を整理し、cache.ini をリセットして再生成させます。

ステップ作業内容注意点
準備対象サーバーを決め、作業順序(全台)を固定する複数台環境は「全台同じ状態」に揃えるのが前提
停止SharePoint Timer Service(SPTimerV4)を停止停止を確認してから次へ
整理構成キャッシュ配下の XML を整理(環境の標準手順に従う)手順ミスは別障害に繋がるため、運用ルール化が必須
再生成cache.ini を初期化し、Timer 起動で再生成させる再生成完了まで待ってから IIS 側を触る
起動・反映Timer 起動 → IIS/AppPool リサイクル反映順序を崩さない

追加で効くことがある操作

WorkflowCompiler の変更を入れた後は、SharePoint に「設定が変わった」ことを再認識させるための更新処理が効く場合があります。

asnp *sharepoint* -ErrorAction SilentlyContinue
$webApp = Get-SPWebApplication "https://your-sharepoint-url/"
$webApp.UpdateWorkflowConfigurationSettings()
  • Nintex 管理画面から Web Application Activation を再実行(必要に応じて)
  • IIS と Timer Service を再起動し、再現手順(固定した1本)で効果確認

「黙って止まる」→「failed to run が出る」への変化はヒントになる

Nintex を最新版へ更新した後に「黙って止まる」から「failed to run(エラーとして表に出る)」へ変化した場合、ワークフロー自体は従来どおりでも、実行基盤側の例外が表面化した可能性があります。重要なのは、エラーが出るようになったこと自体は前進という点です。

  • 停止していた箇所(アクション)を特定しやすくなる
  • authorizedTypes や権限/セキュリティチェックに関係する例外ログが追える

それでも解決しない場合の現実的な選択肢

同じ更新でも、Farm 構成・Language Pack・Nintex バージョン・カスタムの有無で効く対処が変わります。復旧を最優先するなら、次の選択肢を比較して判断します。

選択肢メリットデメリットおすすめの状況
Microsoft サポート(オンプレ)へチケット製品側の見解・修正情報(ホットフィックス等)に繋がる可能性調査に時間がかかることがある環境全体に影響、再発が許されない
Nintex サポートへチケットNintex 側の既知問題や設定指針が得られるSharePoint 側の根本原因が別にあると往復が増えるNintex 更新後も不安定、特定アクションで止まる
問題更新のロールバック(アンインストール)短時間で「元に戻る」可能性が高いセキュリティ更新を戻すことになるため、判断は慎重に業務影響が深刻、暫定回避では運用できない

ロールバックを検討する場合の実務ポイント

  • 可能なら検証環境で「戻したら直る」ことを確認してから本番に適用します。
  • Core と Language Pack を両方当てている場合、戻す対象(KB)と順序を明確にし、手順・結果を記録します。
  • 戻した後は、セキュリティ上の穴を認識した上で、代替の緩和策(公開範囲の見直し、アクセス制御、WAF 等)も合わせて検討します。

補足:外部リスト(BDC DotNetAssembly)が動かないという報告

同じ更新の影響として、BDC モデルが DotNetAssembly の External List が動かなくなったという話題も出ることがあります。Farm のフラグで再有効化を試すスクリプト例が共有されることもありますが、環境によっては効かない例もあるため、まずは影響範囲の確認とログ取得を優先してください。

再発防止:パッチ適用を「作業」ではなく「手順」にする

SharePoint 2019 の更新は、単に適用して終わりではなく、周辺製品(Nintex 等)と合わせたスモークテストが重要です。特に今回のように UI とワークフローが同時に揺れるケースでは、「事前にテスト観点を固定しておく」だけで復旧速度が変わります。

タイミング実施内容チェック観点(例)
適用前構成・設定の記録、バックアップ、差分管理web.config / OWSTIMER の控え、SideBySideToken、Nintex バージョン
適用直後スモークテスト(短時間で網羅)モダンページ編集、左ナビ、代表WFの開始・完了、Timer 状態
翌営業日まで監視強化とログの保全ULS のエラー増加、WF の失敗率、ユーザー報告の収集

まとめ

KB5002754 / KB5002753 適用後に「モダンページの左ナビが消える」「Nintex ワークフローが失敗/停止する」場合、単一原因ではなく、UI(静的ファイル参照)とワークフロー(タイマー+コンパイル設定)の両面が同時に揺れていることがあります。まずは開発者ツールやログで 404/例外を可視化し、SideBySideToken と言語フォルダー、PreParseSecurityCheck と WorkflowCompiler の整合を安全度順に当てていくと、無駄な変更を減らしながら復旧に近づけます。

この記事を書いた人

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

コメント

コメントする

目次