Microsoft 365アプリケーションを使用していた際、機能更新等のバージョンアップによって不具合が発生した場合、ロールバックする手段が用意されています。

調べた中では以下の3つのやり方があると思われます。

  1. コマンド(officec2rclient.exe)によるロールバック方法
  2. GPO(グループポリシー)によるロールバック方法
  3. Office展開ツールによるロールバック方法

正確には「2」と「3」のやり方はロールバックというよりは、バージョンを固定化する方法なので、若干ロールバックの意味合いと異なるかもしれませんが・・・^^;

↓↓3つ全て試してみた感想はこんな感じです↓↓
  • 複数台のPCの内、単体や比較的少数のPCのみをロールバックする場合は、「1」のコマンドによるロールバックが向いています。
  • (AD環境下で)複数台のPCをまとめてロールバックする場合は、「2」のGPOによるロールバックが向いています。
  • 「3」の方法はあまりおすすめ出来ません・・・(T_T)

というわけでそれぞれのやり方を紹介していきたいと思います。
今回は「1」のコマンドによるロールバック方法をまずはご紹介します。


<検証環境>
OS:Windows 10 Pro 21H1
365アプリ:Microsoft 365 Apps for Business 64Bit (月次チャネル)
検証は2021年7月上旬に実施しました
その時の月次チャネル最新バージョン「2104」・ビルド「13929.20408」


以下のサイトを参考に検証しました。
Office 365(2016)をロールバックする


〜コマンドによるロールバック方法〜

実際にコマンドでロールバックする方法は参考サイト通りなので、ここではその処理をbatファイルにして実行・検証してみました。


↓↓で、実際に作成したbatファイルがこんな感じです↓↓


〜365Application-RollBackCMD.bat〜

@echo off
REM 環境変数設定
REM 実行コマンドのフルパス
set CommandPath="%programfiles%\Common Files\Microsoft Shared\ClickToRun\officec2rclient.exe"

REM 戻すバージョン(ターゲットバージョン)指定
set strTargetVersion="16.0.13901.20516"

REM 管理者権限か確認
net session > nul 2>&1

REM 管理者権限でなければ「管理者権限で再実行」(SUDO)
IF %ERRORLEVEL% neq 0 goto SUDO

REM 指定のバージョンへロールバックするコマンド実行
%CommandPath% /update user updatetoversion=%strTargetVersion%

REM Officeの自動更新を無効にするレジストリ設定
reg add "HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" /v UpdatesEnabled /t REG_SZ /d False /f

REM Officeの自動更新を有効に戻すレジストリ設定
REM reg add "HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" /v UpdatesEnabled /t REG_SZ /d True /f

exit


:SUDO
powershell start-process %~f0 -verb runas

<batファイルの簡単な解説>
まず環境変数「strTargetVersion」でロールバックするバージョンを指定しています。
※ここの値を変更すれば、ロールバックするバージョンを変更可能です。
 バージョンを指定する際には「16.0.<ビルド番号>」となります。
 ビルド番号は以下のサイトから確認すると良いかもです。
 Microsoft 365 Apps の更新履歴 (日付別の一覧)


そして実行する際に「管理者権限」である必要がある為、それを確認する処理が入っています。
「管理者権限」でbatが実行されていなければ、再度「管理者権限」でbatが実行されます。
その後ロールバックコマンドが実行され、最後にOfficeアプリの「自動更新無効化」処理が実施されます。
これはロールバックした後すぐに最新版へアップデートされることを防ぐ処理となります。
※参考サイト上でも一旦自動更新を無効化する手順があり、それをレジストリ変更にて実施しています。
 また参考情報としてbatの中で自動更新を再度、有効化するレジストリ変更処理も記載してます。


では、実際に作ったbatファイルを実行してみます。
処理自体はすぐに完了し、Office更新画面が起動してくるはずです。
01-コマンド実行後

03-更新完了後
ロールバック処理自体はこれで終了です。

Officeアプリの自動更新を制御しているレジストリを確認してみると
02-設定レジストリ
設定値が「False」になっていることがわかりますね。

実際にExcelを起動して確認すると
04-バージョン確認
バージョン(ビルド)が指定のバージョンにロールバックしており、自動更新が無効になっていることが確認出来ます。


最後に自動更新を再度有効化するの動きをご紹介します。
05-自動更新有効化

06-自動更新有効化
再度、自動更新が有効化しましたね!


今回の検証はこんなところで終了したいと思います(^o^)
次回はGPO(グループポリシー)によるロールバック手順をご紹介出来ればと思いますっ!!
スポンサードリンク