Microsoft 365アプリケーションを使用していた際、機能更新等のバージョンアップによって不具合が発生した場合、ロールバックする手段が用意されています。
調べた中では以下の3つのやり方があると思われます。
正確には「2」と「3」のやり方はロールバックというよりは、バージョンを固定化する方法なので、若干ロールバックの意味合いと異なるかもしれませんが・・・^^;
↓↓3つ全て試してみた感想はこんな感じです↓↓
というわけでそれぞれのやり方を紹介していきたいと思います。
今回は「1」のコマンドによるロールバック方法をまずはご紹介します。
<検証環境>
OS:Windows 10 Pro 21H1
365アプリ:Microsoft 365 Apps for Business 64Bit (月次チャネル)
検証は2021年7月上旬に実施しました
その時の月次チャネル最新バージョン「2104」・ビルド「13929.20408」
以下のサイトを参考に検証しました。
Office 365(2016)をロールバックする
↓↓で、実際に作成したbatファイルがこんな感じです↓↓
<batファイルの簡単な解説>
まず環境変数「strTargetVersion」でロールバックするバージョンを指定しています。
※ここの値を変更すれば、ロールバックするバージョンを変更可能です。
バージョンを指定する際には「16.0.<ビルド番号>」となります。
ビルド番号は以下のサイトから確認すると良いかもです。
Microsoft 365 Apps の更新履歴 (日付別の一覧)
そして実行する際に「管理者権限」である必要がある為、それを確認する処理が入っています。
「管理者権限」でbatが実行されていなければ、再度「管理者権限」でbatが実行されます。
その後ロールバックコマンドが実行され、最後にOfficeアプリの「自動更新無効化」処理が実施されます。
これはロールバックした後すぐに最新版へアップデートされることを防ぐ処理となります。
※参考サイト上でも一旦自動更新を無効化する手順があり、それをレジストリ変更にて実施しています。
また参考情報としてbatの中で自動更新を再度、有効化するレジストリ変更処理も記載してます。
では、実際に作ったbatファイルを実行してみます。
処理自体はすぐに完了し、Office更新画面が起動してくるはずです。
ロールバック処理自体はこれで終了です。
Officeアプリの自動更新を制御しているレジストリを確認してみると
設定値が「False」になっていることがわかりますね。
実際にExcelを起動して確認すると
バージョン(ビルド)が指定のバージョンにロールバックしており、自動更新が無効になっていることが確認出来ます。
最後に自動更新を再度有効化するの動きをご紹介します。
再度、自動更新が有効化しましたね!
今回の検証はこんなところで終了したいと思います(^o^)
次回はGPO(グループポリシー)によるロールバック手順をご紹介出来ればと思いますっ!!
調べた中では以下の3つのやり方があると思われます。
- コマンド(officec2rclient.exe)によるロールバック方法
- GPO(グループポリシー)によるロールバック方法
- 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更新画面が起動してくるはずです。
ロールバック処理自体はこれで終了です。
Officeアプリの自動更新を制御しているレジストリを確認してみると
設定値が「False」になっていることがわかりますね。
実際にExcelを起動して確認すると
バージョン(ビルド)が指定のバージョンにロールバックしており、自動更新が無効になっていることが確認出来ます。
最後に自動更新を再度有効化するの動きをご紹介します。
再度、自動更新が有効化しましたね!
今回の検証はこんなところで終了したいと思います(^o^)
次回はGPO(グループポリシー)によるロールバック手順をご紹介出来ればと思いますっ!!
スポンサードリンク
コメント