どうもミツシマです。

前回「(Microsoft 365)アプリの更新チャネルをADのGPOで変更する方法を検証してみた」で更新チャネルをGPOで変更する方法を検証しました。
今回は更新チャネルをGPOではなく、コマンドで変更する方法を検証してみました。


検証環境は以下のとおりです。
クライアントOS:Windows 10 Pro x64 2004


〜検証〜

今回コマンドで変更する方法ということですが、結局はレジストリ変更をコマンドで実施するということになります^^;

調べていくと以下のレジストリ値を変更すれば良いという情報がヒットします。
レジストリキー:HKLM¥SOFTWARE¥Microsoft¥Office¥ClickToRun¥Configuration
名前:CDNBaseUrl
値:http://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60(最新)
  http://officecdn.microsoft.com/pr/55336b82-a18d-4dd6-b5f6-9e5095c314a6(月次エンタープライズ)
  http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114(半期エンタープライズ)

しかし、結論から言ってしまうと上記レジストリ変更では不十分なケースがあります。
というのも初めのうちは上記レジストリ変更にて検証していたのですが、検証を重ねると意図したチャネル変更をしないケースがあったからです。。。orz


理由については以下のサイトを参照するとわかります。
How to manage Office 365 ProPlus Channels for IT Pros

上記サイトを読むといくつかのレジストリ値に優先順位があることがわかります。
変更しようとしていた「CDNBaseUrl」は一番優先順位が低い為、条件によっては上手く動作しないケースがあるというのが結論です。


ということで安定して変更する為に以前、GPOで設定されていたレジストリを設定するコマンドを作成することにしました!
もちろん検証は問題なかったです!!

↓↓出来たスクリプトがこちら↓↓

〜ChangeUpdateChannel.bat〜

@echo off

REM 環境変数設定(更新チャネル)
REM 最新チャネルの場合
set UpdateBranch=Current

REM 月次エンタープライズチャネルの場合
REM set UpdateBranch=MonthlyEnterprise

REM 半期エンタープライズチャネルの場合
REM set UpdateBranch=Deferred

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

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

REM 更新チャネルのレジストリ変更
reg add HKLM\SOFTWARE\Policies\Microsoft\Office\16.0\common\Officeupdate /v updatebranch /t REG_SZ /d %UpdateBranch% /f
exit

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


実際にやっていることは前回検証したGPOで設定されるレジストリをbatで設定しているだけです。
環境変数「UpdateBranch」を変更したい更新チャネルとすればそのように動作するはずです。
(注)設定後に変更をすぐ確認したい場合はアプリの「今すぐ更新」を実行する必要があります。


batでレジストリ変更し、更新チャネルが変更されると以下のレジストリ値等にも影響(変更)があるようです。
更新後のレジストリ確認
※上記はインストール時は「半期エンタープライズ」ですが、レジストリで「月次エンタープライズ」に変更した例です。

一番優先順位が低い「CDNBaseUrl」はそのままとなっていることがわかりますね!
更にこの結果から、batで変更したレジストリ値(updatebranch)を削除しても、チャネルはインストール時のものに戻らず、そのまま動作することがわかりますね!!


今回の検証はこれで終了したいと思います(^o^)
スポンサードリンク