【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
Windows TIPS
[Install & Setup]
Tips   Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

パッチ適用時にOfficeのインストールCDを要求されないようにする方法
―Office 2003編―

解説をスキップして操作方法を読む

デジタルアドバンテージ 島田 広道
2007/08/10
2007/11/30 更新
対象ソフトウェア
Office 2003
Summary
Officeにパッチを適用したりコンポーネントを追加したりしている最中に、インストールCDを求められることがある。
これはOfficeのセットアップを管理しているWindows InstallerおよびOffice Source Engineの仕様である。
これを解決するには、常時アクセスできるフォルダにインストールCDの内容をコピーし、そのフォルダを参照させるように設定を変更する。
 
解説

 Officeに対してパッチの適用やコンポーネントの追加、あるいは[ヘルプ]メニューから実行できるアプリケーションの自動修復などの作業をしている最中に、そのOffice製品のインストールCDをCD/DVDドライブに挿入するよう要求するメッセージが表示されることがある。

OfficeのインストールCDを求めるメッセージ
パッチ適用やコンポーネントの追加などOfficeの構成変更をともなう作業を行うと、このようなメッセージが表示されることがある。指示どおりインストールCDあるいはその内容を保存したフォルダへのパスのいずれかを指定しないとエラーになってしまう。

 このとき、指示に従ってインストールCDを用意して参照できるようにしないと作業は進まず、最終的にはエラーになってしまう。かといって、このメッセージが表示されるたびに、いちいちインストールCDを探すのも非常に面倒であることはいうまでもない。

関連記事
TIPS:自動更新で修正プログラムの適用に失敗する場合の対処方法
TIPS:Office向けパッチの適用失敗の原因をログ・ファイルから解明する

 上記のメッセージなしでエラーが発生して処理が中断する場合もある。例えばMicrosoft Updateや自動更新によるパッチ適用は基本的にサイレント・インストールであるため、ユーザーにインストールCDを要求することなくエラーとして終了してしまう。しかも、関連記事にあるように、Microsoft Updateや自動更新では詳細なエラー情報が表示されないため、エラーの原因(インストールCDの参照失敗)が特定できず、厄介なトラブルに発展する危険性もある。

インストールCDが求められる理由

 Officeの構成を変更する作業の際にそのインストールCDが求められるのは、Officeのセットアップを管理しているWindows Installerの仕様である。パッチ適用などでOfficeを構成するファイルの1つが追加あるいは更新される際、Windows Installerはファイルの整合性を維持するため、対象のファイルやそれと依存関係のあるファイルなどを「インストール元」から取り寄せて確認しようとする。仕様ゆえ、この確認作業そのものを止めることは難しい。

 「インストール元」とは、通常、Officeをインストールしたときにセットアップ・ファイルが存在していたフォルダである。例えばインストールCDをCD/DVDドライブに挿入してインストールした場合、「インストール元」はそのCD/DVDドライブ名のルート・フォルダ、すなわち「D:\」「E:\」などになる。このインストール元へのフルパスはOfficeのインストール時にレジストリへ格納され、あとでインストール元への参照が必要になったときに再利用される(レジストリの格納場所など詳細は後述)。

 こうしたしくみのため、「インストール元」のCDを取り外すと、Windows Installerがインストール元を参照できなくなる結果、インストールCDを要求するメッセージが表示されるようになってしまう。

 また、インストールCDの内容をコピーした共有フォルダからOfficeをインストールした場合でも、例えばその共有フォルダをホストしていたサーバ・マシンのリプレースによってサーバ名あるいは共有名が変わったりすると、やはり同じ現象が発生してしまう。

ローカル・インストール・ソースも完全ではない

 インストールCDが必要になる頻度を減らすために、Office 2003では「ローカル・インストール・ソース」と呼ばれるインストールCDのキャッシュ用フォルダのしくみが導入された。ローカル・インストール・ソースはOffice 2003のセットアップ・プログラムによってインストール先のPCのハードディスク上に作成され、インストールCDの内容がコピーされる。ローカル・インストール・ソースを管理するOffice Source Engineは、インストールCDの内容を必要とする処理が発生すると、まずローカル・インストール・ソースを参照する。ここで必要なファイルが見つかれば、インストールCDへのアクセスは不要となる。つまりユーザーにインストールCDの要求メッセージが表示されずに済む。

関連記事
TIPS:Office 2003のキャッシュ用フォルダを移動する

 しかし残念なことに、デフォルトではローカル・インストール・ソースも完全とはいえない。例えば各パーティションの空き容量が少ないと、インストールCDの内容は一部しかキャッシュ(コピー)されない。またOffice 2003のエディションによっては、デフォルトで一部しかキャッシュしない場合がある。もしローカル・インストール・ソース内で必要なファイルが見つからないと、Office Source Engineはそのファイルを探すため、結局インストールCDを求めてしまうのだ。

関連記事
TIPS:Office 2003のインストールCDを「完全」にキャッシュする

 デフォルトのままのローカル・インストール・ソースでは、インストールCDが必要になる確率は下がるものの、完全になくなるわけではない、と考えておいてよいだろう。ローカル・インストール・ソースを完全にキャッシュする方法については関連記事を参照していただきたい。

操作方法

 インストールCDの要求メッセージを表示させないようにするには、Windows InstallerおよびOffice Source Engineが常にインストール元を参照できるようにすればよい。そのための手順は大まかに次の3つに分かれる。

  1. 常に参照可能なフォルダにインストールCDの内容をコピーする
  2. Windows Installer用のレジストリに新たなインストール元へのフルパスを書き込む
  3. Office Source Engine用のレジストリに新たなインストール元へのフルパスを書き込む
関連記事
TIPS:パッチ適用時にOffice 2000/XPのCDを要求されないようにする方法

 共有フォルダからOfficeをインストールした場合など、常に参照可能なインストール元が準備済みであれば、1.を飛ばして2.から参照していただきたい。また、Office 2000/Office XPの場合の対処方法については、関連記事を参照していただきたい。

常に参照可能なフォルダにインストールCDの内容をコピーする

 まず、インストールCDの内容をコピーして新たなインストール元とするフォルダを用意しよう。このフォルダは、OfficeをインストールしたPCからいつでも参照できる必要がある。通常は、同じLANにつながっているファイル・サーバに共有フォルダ*1を用意して利用することをお勧めする。特に複数のPCが対象の場合、インストールCDの内容を各PCにコピーする手間が省けるからだ。ただし、この共有フォルダを提供するサーバには同時に複数のPCから集中的にアクセスされる可能性があるので、接続先のネットワークの帯域およびハードウェアの性能に余裕のあるマシンが望ましい。

*1 ネットワークへの負荷増大は避けたい、といった理由から共有フォルダを利用できない場合は、各PCに対して前述のローカル・インストール・ソースを完全にキャッシュするとよいだろう。この方法については別稿で説明する予定だ。

 インストール元のフォルダを決めたら、Windowsエクスプローラなどを用いて、そこにインストールCDの内容をそのままそっくりコピーする。このとき、不可視属性のファイルもコピーし忘れないように注意しよう。コピーを終えたら、誤って書き換えられたり削除されたりしないように、アクセス権を変更して一般ユーザーによる書き込み/削除を禁止しておく。

Windows Installer用のレジストリに新たなインストール元へのフルパスを書き込む

 Officeのインストール元へのフルパスはいずれもレジストリに格納されているので、レジストリを編集すればインストール元は変更・追加できる。Windows Installerの場合、Office 2003ファミリのインストール元の情報は下記のレジストリ・キー以下のツリーに格納されている。

  • HKEY_LOCAL_MACHINE の
    \SOFTWARE\Classes\Installer\Products\
      1140<n1><n2><n3>900063D11C8EF10054038389C

 最後のキー名は、その対象のOffice製品のGUIDを圧縮したものだ。<n1><n2><n3>には、Office 2003のエディションや販売形態(市販品/ボリューム・ライセンス/OEM)といった違いによって、ユニークな3桁の16進数が入る。また先頭の「1140」は日本語版に割り当てられたユニークなIDで、ほかの言語では別の値が入る。

 このキーを特定するには、レジストリ・エディタで上表に該当するキーを見つけ、そこにある「ProductName」に格納されている製品名を確認すればよい。例えばOffice Professional 2003では、「Microsoft Office Professional Edition 2003」という製品名がProductNameに格納されている。

Officeのセットアップ情報が格納されたレジストリ・キーの例
これはOffice Professional 2003をインストールしたPCで、前述のレジストリ・キー以下をレジストリ・エディタで参照しているところ。
  前述のOffice 2003ファミリのキー名「1140<n1><n2><n3>900063D11C8EF10054038389C」に該当するキーを探して選択する。この例では<n1><n2><n3>が「110」であることが分かる。
  ProductNameに「Microsoft Office Professional Edition 2003」と記されていることから、このキーにOffice Professional 2003のセットアップ情報が格納されていることが分かる。

 キーを特定したら、<n1><n2><n3>の値をメモしておこう。この後のOffice Source Engine用レジストリの設定で再利用するためだ。

[注意]

レジストリに不正な値を書き込んでしまうと、システムに重大な障害を及ぼし、最悪の場合、システムの再インストールを余儀なくされることもあります。レジストリ エディタの操作は慎重に行うとともに、あくまで御自分のリスクで設定を行ってください。何らかの障害が発生した場合でも、本Windows Server Insider編集部では責任を負いかねます。ご了承ください。

 レジストリ・キーを特定したら、下表のようにそのサブ・キー(SourceList\Net)へインストール元へのフルパスを書き込めばよい。サブ・キーがなければ新たに作成する。また、値「1」にローカル・インストール・ソースへのフルパス(?:\MSOCache\All Users\90000411-6000-11D3-8CFE-0150048383C9\)が設定済みの場合は、値「2」を作成して、そこに新たなインストール元へのフルパスを設定する。このように新たなパスを「追加」すれば、ローカル・インストール・ソースでファイルが見つからないときだけ、新たなインストール元が参照されるようになり、共有フォルダへのアクセスによるネットワーク負荷の増大を抑えられる。

項目 内容
キー HKEY_LOCAL_MACHINE の
\SOFTWARE\Classes\Installer\Products\
1140<n1><n2><n3>900063D11C8EF10054038389C\
SourceList\Net
値の名前 新規:1、ローカル・インストール・ソースあり:2
文字列(SZ)または展開可能な文字列(EXPAND_SZ)のいずれか
値の内容 新たなインストール元へのフルパス
インストール元へのフルパスが格納されているレジストリ・キー(Windows Installer用)
すでに「1」が存在していて、それがローカル・インストール・ソースへのフルパス(?:\MSOCache\All Users\90000411-6000-11D3-8CFE-0150048383C9)の場合は、新たなインストール元へのフルパスを「2」に設定する。また共有フォルダをインストール元とする場合はUNC形式で設定すること。

Office Source Engine用のレジストリに新たなインストール元へのフルパスを書き込む

 引き続きOffice Source Engineが参照するインストール元へのフルパスも変更しよう。Office Source Engineの場合、インストール元の情報は下記のレジストリ・キーに格納されている(日本語版の場合)。

  • HKEY_LOCAL_MACHINE の
    \SOFTWARE\Microsoft\Office\Delivery\SourceEngine\
      Downloads\90000411-6000-11D3-8CFE- 0150048383C9\
        Sources\
          9<n3><n2><n1>0411-6000-11D3-8CFE- 0150048383C9

 最後のキーを特定にするには、前述のWindows Installer用のレジストリを設定した際に判明した<n1><n2><n3>の値を、上記のように逆順に代入すればよい。あとは値「Path」に、Windows Installerの場合と同じインストール元へのフルパスを書き込む。

項目 内容
キー HKEY_LOCAL_MACHINE の
\SOFTWARE\Microsoft\Office\Delivery\SourceEngine\ Downloads\90000411-6000-11D3-8CFE- 0150048383C9\ Sources\9<n3><n2><n1>0411-6000-11D3-8CFE- 0150048383C9
値の名前 Path
文字列(SZ)
値の内容 新たなインストール元へのフルパス
インストール元へのフルパスが格納されているレジストリ・キー(Office Source Engine用)
すでに「Path」に存在する場合は、万一のためにバックアップしてから、新たなインストール元へのフルパスを上書きすればよい。

 複数のOffice 2003ファミリの製品を利用している場合は、それぞれのレジストリ・キーを見つけてインストール元へのフルパスを設定する必要があるので注意していただきたい。

関連記事
TIPS:コマンド・プロンプトでレジストリを操作する

 また複数のPCに対してインストール元へのフルパスを設定する場合、いちいち各PCでレジストリ・エディタを起動してレジストリを書き換えるのは面倒なので、リモートからコマンドラインとバッチを活用して各PCのレジストリを書き換えるとよいだろう。詳細な手順は関連記事を参照していただきたい。End of Article

  関連リンク
  Office 2003 における製品コード GUID の番号付けのしくみ(サポート技術情報832672)
     
この記事と関連性の高い別のWindows TIPS
パッチ適用時にOfficeのインストールCDを要求されないようにする方法(Office 2000/Office XP編)
Office 2003のインストールCDを「完全」にキャッシュする方法
複数のバージョンのOfficeをインストールする
Office 2003のキャッシュ用フォルダを移動してブート・ボリュームを空ける
Office 2000のインストールの有無をリモートから確認する
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

更新履歴
【2007/11/30】 「完全」といえないのはデフォルトのままのローカル・インストール・ソースである、ということを明記しました。

「Windows TIPS」

ホワイトペーパーTechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています