今回は利用しませんが、Office 2016のビルド番号を確認する方法は他にも幾つかあります。例えば、コントロールパネルの「プログラムと機能」(appwiz.cpl)に表示されるバージョン情報です。この情報は、例えばレジストリキー「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\O365ProPlusRetail - ja-jp」に見つかりますが、最後のキー名は製品や言語によって変わるので使いにくいでしょう(画面4)。
また、Office 2016の任意のアプリケーション実行可能ファイル(.exe)から、ファイルのバージョン情報を取得するという方法もあります。例えば、Windows PowerShellで以下のコマンドラインを実行すると、Wordの実行可能ファイルからビルド番号が得られます。
((Get-ItemProperty -Path "C:\Program Files (x86)\Microsoft Office\root\Office16\winword.exe").VersionInfo).FileVersion
以上を踏まえて、ビルド番号と更新チャネルを取得するスクリプト「get-o365ver.ps1」を作成してみました(リスト1)。このスクリプトを実行すると、ビルド番号、更新チャネル(CDNBaseURLを英語のチャネル名に変換)、ポリシー設定(udpatebranch値を英語のチャネル名に変換)を出力します。また、Office 2016がインストールされていない場合も検出できるようにしています(画面5)。
$O365CurrentVer = "" $O365CurrentCdn = "" $O365CurrentPol = "" $O365CurrentVer = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" -ErrorAction SilentlyContinue).VersionToReport $O365CurrentCdn = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" -ErrorAction SilentlyContinue).CDNBaseUrl $O365CurrentPol = (Get-ItemProperty -Path "HKLM:\SOFTWARE\policies\microsoft\office\16.0\common\officeupdate" -ErrorAction SilentlyContinue).updatebranch if ($O365CurrentVer.Length -eq 0) { Write-Host "Office 365 (C2R) is not installed on this PC." } else { Write-Host "Office 365 (C2R) Current Version: "$O365CurrentVer switch ($O365CurrentCdn) { "http://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60" {$O365CurrentCdn = "Monthly Channel"} "http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114" {$O365CurrentCdn = "Semi-Annual Channel"} "http://officecdn.microsoft.com/pr/b8f9b850-328d-4355-9145-c59439a0c4cf" {$O365CurrentCdn = "Semi-Annual Channel (Targeted)"} } Write-Host "Office 365 Update Channel (Local Setting): "$O365CurrentCdn if ($O365CurrentPol.length -eq 0) { $O365CurrentPol = "None" } else { switch ($O365CurrentPol) { "Current" {$O365CurrentPol = "Monthly Channel"} "Deferred" {$O365CurrentPol = "Semi-Annual Channel"} "FirstReleaseDeferred" {$O365CurrentPol = "Semi-Annual Channel (Targeted)"} } } Write-Host "Office 365 Update Channel (Policy Setting): "$O365CurrentPol }
Office 2016は組み込みの更新機能により自動的に更新されます。この自動更新は、Windowsの「タスクスケジューラー(taskschd.msc)」の「Microsoft\Office\Office Automatic Updates」タスクに構成されていました(画面6)。
このタスクは、ユーザーログオン時に15分の遅延の後、1時間の間に30分ごとに繰り返し実行され、さらに日曜、火曜、金曜の午前3時に起動されるようにスケジュールされ、「C:\Program Files\Common Files\Microsoft Shared\ClickToRun\OfficeC2RClient.exe」を「/update SCHEDULEDTASK displaylevel=False」オプション付きで実行するように構成されています。
自動更新のタスクのコマンドは、ユーザーに非表示の状態で実行されます。コマンドラインからユーザーに見える状態で手動更新を実行するには、コマンドプロンプトやPowerShellで以下のコマンドライン(displaylevel=Trueは省略可能)を実行します。
OfficeC2RClient.exe /update user displaylevel=True
先ほどの「get-o365ver.ps1」の最後に次の4行を追加すれば、現在のビルド番号と更新チャネルの確認後、手動更新を開始できます(リスト2、画面7)。
Write-Host "Check Update Now!" $O365UpdateCmd = "C:\Program Files\Common Files\Microsoft Shared\ClickToRun\OfficeC2RClient.exe" $O365UpdateArg = "/update user displaylevel=True" Start-Process -FilePath $O365UpdateCmd -ArgumentList $O365UpdateArg
「OfficeC2RClient.exe」は自動更新タスクや手動更新の実行以外にも、幾つか使用方法があります。1つは、Office 2016のバージョン(ビルド)のロールバックです。「修正プログラムのアンインストール」と呼ばれることもありますが、実際は“過去の特定のビルド番号を指定しての手動更新”です。詳しくは、以下のMicrosoftのブログ記事を参考にしてください。
2018年1月のOfficeの更新プログラムでは、レガシーコンポーネントである「Microsoft数式 3.0」がセキュリティ上の理由から削除されるという措置がとられました。「OfficeC2RClient.exe」を使用して2017年12月以前のバージョン(ビルド)にロールバックすることで、一時的にこの機能を復活することができます。このことについては、筆者の個人ブログでも説明しています。
比較的新しいバージョンの「OfficeC2RClient.exe」では、更新チャネルの切り替えも可能になりました。以下のMicrosoftのブログ記事にその方法が説明されています。
具体的には、コマンドプロンプトまたはWindows PowerShellを開き(管理者としての実行は不要)、次の3つのコマンドラインを実行します。<キーワード>の部分には、更新チャネルに対応したキーワードを指定します(表2)。
cd "C:\Program Files\Common Files\Microsoft Shared\ClickToRun"
.\OfficeC2RClient.exe" /changesetting channel=<キーワード>
.\OfficeC2RClient.exe" /update user
更新チャネル | 更新チャネル(日本語) | キーワード |
---|---|---|
Monthly Channel | 月次チャネル | Monthly(またはCurrent) |
Semi-Annual Channel(Targeted) | 半期チャネル(対象限定) | Targeted(またはFirstReleaseDeferred) |
Semi-Annual Channel | 半期チャネル | Broad(またはDeferred) |
表2 指定するキーワードと対応する更新チャネル |
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows Server 2016テクノロジ入門−完全版』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.