treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

Outlookがエラー「現在の実行中のWindowsのバージョンとは互換性がありません。」で起動しない

今日は、Outlookがいきなり起動できない、という症状の対処方法についてご報告します。

■発生した状況:

環境は、
機種名:dynabook R631/28D
OS:Windows 7 (64bit)HomeEdition
Office:Office Home and Business 2010(64bit版)

問合せが入り対処を依頼されました。
「PCでOutlookがいきなり起動できなくなりました。」どうやらエラーが出てOutlookが起動しなくなったそうです。
「今日はいつも通り、Outlookを起動して使っていたんです。でも午前中使っていたのに途中から使えなくなってしまって…。いつのまにか起動していないから再度Outlookを起動しようとしたら、エラーが出るようになってしまいました。」
という説明でした。つまり起動しなくなってからそれほどの時間は経っていないようです。
Outlookを起動しようとすると表示されるエラーが、これ。

f:id:treedown:20151112090128p:plain
「このファイルのバージョンは、現在の実行中のWindowsのバージョンとは互換性がありません。コンピューターのシステム情報を確認して、x86(32 ビット)またはx64(64ビット)のどちらのバージョンのプログラムが必要であるかを確認してからソフトウェアの発行者に問い合わせください。」
このエラーメッセージって、インストール時に表示されるメッセージですよね。起動時に出るなんて聞いたことがありません。
調べていくと、PCにログオンした際に以下のメッセージも表示されることが分かりました。

f:id:treedown:20151112091928p:plain
(※ちょっと見づらいのですが)こんなメッセージです。
Title:IMECMNT.EXE - 正しくないイメージ
Msg:C:\Program Files\Microsoft Office\Office14\olmapi32.dll は Windows 上では実行できないか、エラーを含んでいます。元のインストール メディアを使用して再インストールするか、システム管理者もしくはソフトウェアの製造元に問い合わせてください。

OLMAPI32.DLLが破損している、という可能性もありそうです。

■調査してみます:

イベントビューアで関係しそうなメッセージを確認しましたが、エラーと同じメッセージしか確認できませんでした。

f:id:treedown:20151112093116p:plain
ソース:Wow64 Emulation Layer
イベントID:1109
説明:64 ビット バージョンの Windows での非互換性のため、プログラムまたは機能である "\??\C:\Program Files\Microsoft Office\Office14\OUTLOOK.EXE" を開始または実行できません。ソフトウェア製造元に問い合わせて 64 ビット Windows 互換バージョンが利用可能であるかどうか確認してください。
----------------------------------------------
確かにこのPCはメーカープレインストールでOffice2010 64bitEditionがインストールされている関係でOffice関連はすべて64bitコンポーネントで固められています。いままでちゃんと使えていたことを考えると、特に64bitEditionによる互換性に問題がある、というのは少々釈然としない話です。発生の起点となる一番最初のメッセージ付近には以下のログも記録されていました。
----------------------------------------------

f:id:treedown:20151112101541p:plain

ソース "Office Software Protection Platform Service" からのイベント ID 903 の説明が見つかりません。このイベントを発生させるコンポーネントがローカル コンピューターにインストールされていないか、インストールが壊れています。ローカル コンピューターにコンポーネントをインストールするか、コンポーネントを修復してください。

イベントが別のコンピューターから発生している場合、イベントと共に表示情報を保存する必要があります。
----------------------------------------------
ただ、このイベントログ自体はOutlook起動問題発生以前から(だいぶ前から)記録されており、直接的な原因ではない可能性は高いです。

■仮説と対処方法を考案:

複合的に考えると、やはりもともとOfficeコンポーネントが破損する出来事があったところに、Windows Updateが適用されてトドメを刺された、という仮説が有力ですが、この仮説のウラを取る方法が今一つ思いつきません。
(※文末に追記があります。2015年11月のWindowsUpdateで配信されたKB2899516とKB3097877の同時適用でこの問題が発生している可能性が出てきました。)

現状の症状を改善する対処としてはOffice修復インストールがよさそうなのですが、このユーザは業務時間中なので、ひとまず最短の作業時間で回復を試みることにしました。
問題が生じているのは、エラーメッセージから最低でも2ファイル問題発生中です。OLMAPI32.DLLとOUTLOOK.EXEです。
そこでC:\Program Files\Microsoft Office\Office14に保管されているOLMAPI32.DLL とOUTLOOK.EXEの名前を変更し無効にします。(各々OLMAPI32.DLL.old とOUTLOOK.EXE.oldにリネーム、※管理者権限を要します。)

■実際に対処する:

通常であれば、ここからOfficeの修復(appwiz.cplを起動し、Microsoft Office 2010をメニューから選択し、「変更」をクリック、起動するインストールウィザードで「修復」を選択しOfficeコンポーネントを修復インストールする。)というのが定番です。時間に余裕があれば、修復で問題を解消すべきですが、時間を最短で済ませたいことと問題のあるファイルを2つに絞っているところから今回はVSS(ボリュームシャドウコピー)からファイルを復元し、動作の確認をすることにしました。
図:VSSからファイルを復元の図

f:id:treedown:20151112101916p:plain
VSSから復元する時の注意点は、ファイルのプロパティ⇒以前のバージョンタブから復元する時には、(上述する)ファイル名のリネームを実行前にファイルのプロパティウィンドウを開く必要があります。
今回はファイル名はリネームしてしまっていますので、"C:\Program Files\Microsoft Office\Office14"のフォルダプロパティ画面から以前のバージョンタブを開き、VSSウィンドウ内の対象のファイル×2<OLMAPI32.DLL とOUTLOOK.EXE>をコピーすることにしました。
よくみるとOUTLOOK.EXEのアイコンが<不明なプログラム>のアイコンになっており、Outlookデザインのアイコン画像になっていません。(破損しているから?)
図:Outlookアイコン(異常時)

f:id:treedown:20151112101939p:plain
本来はこうなっている。
図:Outlookアイコン(正常時)

f:id:treedown:20151112101947p:plain
VSSで復元対象を見ると新しい方は<不明なプログラム>のアイコンで、以前のスナップショットではアイコンが正常表示されています。

f:id:treedown:20151112102004p:plain
(と、その前に、OUTLOOK.EXEなんてスナップショットされているのはおかしいんじゃないか?という気もしますが、ひとまず復元しておきましょう。)

VSSで2ファイル<OLMAPI32.DLLとOUTLOOK.EXE>を復元後(一応PCを再起動しておきました)は、Outlookが正常起動するようになりました。(よかったよかった)

ひとまず一次対処としてこれでOutlook利用ができるようになりましたとしてユーザ利用再開、ユーザのPCをメンテナンス出来るまとまった時間が取れたところで。Officeの修復を実行するというという二段構えでトラブルシューティングです。
ひとまずユーザPCメンテナンス時間をユーザと打ち合わせして、トラブルシューティング完了となりました。

Windows7ではVSSが標準で有効化されていて、ファイル破損は概ねVSSで以前の状態に復元可能です。
Windows8以降ではVSSは有効化されていないので、Windows8以降をお使いの方は、
(この記事を読んだも何かの縁、とばかり)これからVSSの有効化を設定されておくことをお勧めします。(ちょっとした準備が必要ですが。)
VSSが有効になっていると、このトラブルシューティング方法を使うことができます

■後記(おまけ):

これ、もしかしてこの間ニュースになった「“Windows Update”で32bit版「Office 2010」に64bit版の修正パッチが配信される問題 」の逆パターン?なんですかね。

また、2015年11月のWindows Updateでは、「KB3097877」適用後にOutlookなどのOffice2010がクラッシュするという可能性があるそうです。同様にKB2899516の不具合で発生する問題に「OutLook が起動しないorクラッシュする。」と「HTMLメール(一部)が開けなくなる」と「IME2010 とIEの動作が不調となる」という影響を及ぼすそうです。

このあたりの動作が関係しているとすると、Windows Updateが原因、という断定ができますので、今回のアップデートを正常に適用してOutlook起動確認が取れればOKということになります。