(57)【特許請求の範囲】
【請求項１】
自装置が実行するオペレーションシステムが認識可能な出力指定コマンドと、その出力指定コマンドによる情報の出力先を変更するリダイレクション情報とを利用して記述されたパッチプログラムを含む第１のバッチファイルと、自装置の起動に際して実行すべき動作が予め記述された第２及び第３のバッチファイルとを記憶する記憶手段と、
自装置の起動に際して前記第２または第３のバッチファイルを実行する実行手段とを備え、
前記第２のバッチファイルには、前記第１のバッチファイルを実行する命令と、その第１のバッチファイルを実行終了後に削除する命令とが含まれ、
前記実行手段は、
前記第２のバッチファイルに従って自装置を起動すると共に、前記第１のバッチファイルが前記記憶手段に記憶されていることを検出した場合に、その第１のバッチファイルを実行することによって前記パッチプログラムを復元し、復元したパッチプログラムを自装置に適用した後、該復元したパッチプログラムと、前記第１のバッチファイルとを削除し、
自装置の次回以降の起動に際して実行するバッチファイルを、前記第３のバッチファイルに更新する
ことを特徴とする情報処理装置。
【請求項２】
前記出力指定コマンドは、ｅｃｈｏコマンドである
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記第１のバッチファイルにおいて、前記パッチプログラムは、複数の前記ｅｃｈｏコマンドに対応して分割して記述されており、且つ、個々の前記ｅｃｈｏコマンドのリダイレクション情報による出力先には特定のファイルが設定されており、
前記実行手段は、
前記個々のｅｃｈｏコマンド及びそのリダイレクション情報を実行することにより、前記特定のファイルに、前記パッチプログラムを復元する
ことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記実行手段は、
自装置の次回以降の起動に際して実行するバッチファイルを、前記第３のバッチファイルに更新するに際して、前記第２のバッチファイルを前記記憶手段から削除する
ことを特徴とする請求項１乃至請求項３の何れかに記載の情報処理装置。
【請求項５】
前記パッチプログラムは、機械語プログラムによって記述されている
ことを特徴とする請求項１乃至請求項４の何れかに記載の情報処理装置。
【請求項６】
請求項１乃至請求項５の何れかに記載の情報処理装置を備える
ことを特徴とする電子機器。
【請求項７】
情報処理装置が実行するオペレーションシステムが認識可能な出力指定コマンドと、その出力指定コマンドによる情報の出力先を変更するリダイレクション情報とを利用して記述されたパッチプログラムを含む第１のバッチファイルと、その情報処理装置の起動に際して実行すべき動作が予め記述された第２及び第３のバッチファイルとを記憶手段に記憶しておき、
前記第１のバッチファイルを実行する命令と、その第１のバッチファイルを実行終了後に削除する命令とを含む第２のバッチファイルに従って、前記情報処理装置を起動し、
前記情報処理装置の起動に際して前記第１のバッチファイルが前記記憶手段に記憶されていることを検出した場合には、その第１のバッチファイルを実行することによって前記パッチプログラムを復元し、復元したパッチプログラムを前記情報処理装置に適用した後、該復元したパッチプログラムと、前記第１のバッチファイルとを削除し、
前記情報処理装置の次回以降の起動に際して実行するバッチファイルを、前記第３のバッチファイルに更新する
ことを特徴とするパッチプログラムの適用方法。
【請求項８】
前記出力指定コマンドとして、ｅｃｈｏコマンドを利用する
ことを特徴とする請求項７記載のパッチプログラムの適用方法。
【請求項９】
前記第１のバッチファイルにおいて、前記パッチプログラムは、複数の前記ｅｃｈｏコマンドに対応して分割して記述されており、且つ、個々の前記ｅｃｈｏコマンドのリダイレクション情報による出力先には特定のファイルが設定されている場合に、
前記個々のｅｃｈｏコマンド及びそのリダイレクション情報を前記情報処理装置において実行することにより、前記特定のファイルに、前記パッチプログラムを復元する
ことを特徴とする請求項８記載のパッチプログラムの適用方法。
【請求項１０】
情報処理装置の動作制御のためのコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、
自装置が実行するオペレーションシステムが認識可能な出力指定コマンドと、その出力指定コマンドによる情報の出力先を変更するリダイレクション情報とを利用して記述されたパッチプログラムを含む第１のバッチファイルと、自装置の起動に際して実行すべき動作が予め記述された第２及び第３のバッチファイルとを記憶手段に記憶する機能と、
自装置の起動に際して前記第２または第３のバッチファイルを実行する実行機能とをコンピュータに実現させるに際して、
前記第２のバッチファイルには、前記第１のバッチファイルを実行する命令と、その第１のバッチファイルを実行終了後に削除する命令とが含まれ、
前記実行機能により、
前記第２のバッチファイルに従って自装置を起動すると共に、前記第１のバッチファイルが前記記憶手段に記憶されていることを検出した場合に、その第１のバッチファイルを実行することによって前記パッチプログラムを復元し、復元したパッチプログラムを自装置に適用した後、該復元したパッチプログラムと、前記第１のバッチファイルとを削除し、
自装置の次回以降の起動に際して実行するバッチファイルを、前記第３のバッチファイルに更新する
ことを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレーティングシステム（ＯＳ）の実行環境において動作するパーソナルコンピュータ等の情報処理装置、及びそのような情報処理装置を有する電子機器に対して、所謂パッチプログラムを適用する技術分野に関する。
【背景技術】
【０００２】
ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）がプリインストールされたパーソナルコンピュータ（以下、本願では「パソコン」、「ＰＣ」と略称する）が広く普及している。このようなプリインストール型のパソコンの開発現場、或いは修理等のサービス現場においては、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）やＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等の記録媒体だけによってパソコンを起動可能な、所謂ブータブルＣＤ／ＤＶＤを利用したプリインストール環境の構築方法が普及している。
【０００３】
一方で、上記同様なＯＳがプリインストールされたパソコンを生産する際に、パソコン起動用のフロッピーディスク（登録商標）と、ＣＤ／ＤＶＤとを併用するプリインストール環境の構築方法の採用も依然として根強く行われている。これは、フロッピーディスク自身が長年に亘って利用された実績のあるレガシーメディアであり、利用に際して必要とされるソフトウェア技法も安定しているので、信頼性が高いことが理由に挙げられる。
【０００４】
ここで、フロッピーディスクと、ＣＤ／ＤＶＤとを併用してプリインストール環境を構築する手順の例について説明する。
【０００５】
例えば、ＯＳがプリインストールされたパソコンの生産現場では、パソコンへのプリインストール環境の構築にあたり、そのパソコンの開発者（ＳＩｅｒ）は、まず、パソコンに内蔵されたハードディスクに構築すべきディレクトリツリーを表すデータ（ハードディスクイメージ）を、ＣＤ媒体もしくはＤＶＤ媒体（以下、「ツリー媒体Ａ」と称する）に焼き付ける。即ち、ツリー媒体Ａは、プリインストール式のパソコンを生産する際の基礎となる。更に開発者は、パソコン起動用のフロッピーディスク（以下、「起動媒体Ｂ」と称する）を作成する。この起動媒体Ｂには、自媒体に格納されているプログラムの起動に際して実行されるバッチ（以下、「バッチＣ」と称する）が格納されている。このバッチＣには、ＣＤ／ＤＶＤドライブに挿入されたツリー媒体Ａに格納されているディレクトリツリーを、パソコンのハードディスクにコピーする、という処理が記述されていることとする。
【０００６】
このような状況において、例えばメーカの生産現場で実際にパソコンを製造する製造担当者は、出荷前のパソコンにＯＳのプリインストール環境を構築すべく、以下のような３つの手順を実行する。即ち、メーカは、以下の３つの手順を経ることにより、ＯＳがプリインストールされたパソコンを生産することができる。
【０００７】
（１）製造担当者は、パソコン本体に内蔵されているＣＤ／ＤＶＤドライブにツリー媒体Ａを挿入する。
【０００８】
（２）製造担当者は、パソコン本体にＵＳＢ接続形式のフロッピーディスクドライブを接続すると共に、そのフロッピーディスクドライブに起動媒体Ｂを挿入する。
【０００９】
（３）製造担当者は、上記（１）及び（２）に係る状態のパソコンを起動する。
【００１０】
ところでメーカでは、係るツリー媒体Ａの開発終了（仕様確定）から、生産現場においてパソコンの生産または出荷が開始されるまでの間に、ソフトウェアプログラムに不具合（バグ）が発覚する場合がある。このような場合、メーカは、発覚した不具合に対して、バッチＣを利用して対応する。即ち、メーカの開発者は、起動媒体Ｂに当該不具合対策用のパッチプログラムを格納すると共に、起動媒体Ｂ内のバッチＣに記述されているバッチファイルに、当該パッチプログラムをパソコンのハードディスクにコピーする、という処理を追記する。このような手順により、メーカは、パソコン出荷前に発覚した不具合に対応する。
【００１１】
しかしながら、前記の如く安定性や信頼性に優れるフロッピーディスクは、その反面で、採用されている技術の改良は行われていないので、使用に際してＣＤやＤＶＤ等の記録媒体と比較して記憶容量の制限やファイルエントリ数の制限等が大きなネックとなる。特に、許容されるファイルエントリ数が乏しいことは致命的な問題であるも未だ解決されておらず、使用中にファイルエントリ数が枯渇することへの回避策は見い出されていない。このため、フロッピーディスクを利用する生産現場においては、パソコン起動用のフロッピーディスク以外に複数枚のフロッピーディスクを用意して、それらフロッピーディスクに格納された各種データをパソコンのハードディスクにコピーするという、手間隙のかかる手法が採られている。
【００１２】
このような不便さが露呈するケースとして、フロッピーディスクに上述した如くパッチプログラムを格納する場合が挙げられる。一般に、パッチプログラムは、１つのデータファイルとしては微細なサイズである。但しパソコン等の電子機器の生産現場においては、係る微細なデータサイズのパッチプログラムが多数用意される傾向がある。このため、このような多数のパッチプログラム群をフロッピーディスクに格納しようとすると、フロッピーディスクの仕様に起因するファイルエントリ数の制限が問題となる。即ち、パッチプログラム群をフロッピーディスクを用いてパソコンにコピーする場合、フロッピーディスクの記憶容量の上限が問題となる前に、パッチプログラムのファイル件数（即ち、ファイルエントリ数）が上限に達してしまい、係るパッチプログラム群を全数は一枚のフロッピーディスクに格納できないという問題が生じる。この問題を解決するためには、存在する複数のパッチプログラムに相当するファイルエントリ数が許されるだけの複数のフロッピーディスクを用いて作業を行うことになるので、作業効率が問題となる。
【００１３】
また、ＯＳがプリインストールされたパソコンが市場に出荷された後において、そのパソコンの中にいつまでもパッチプログラムが残存している状況は、予期せぬ２次的な不具合の発生や、悪意ある第三者によるプログラム構造の解析などにも利用される虞があるので好ましくない。
【００１４】
ここで、本願出願に先だって存在する関連技術として、例えば、特許文献１（特開昭６３−２１１４３２号公報）及び特許文献２（特開２０００−６６８８８号公報）には、修正前のソースファイルと修正後のソースファイルとの比較を行い、その比較結果に基づいてパッチプログラムを生成する技術が提案されている。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開昭６３−２１１４３２号公報
【特許文献２】特開２０００−６６８８８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、特許文献１及び特許文献２では、パッチプログラム自体を生成することが記載されているに留まり、そのパッチプログラムをどのように効率よく対象製品に適用するかについては述べられていない。特に、これらの特許文献には、対象製品の開発完了後から製品出荷までの間に複数検出されたソフトウェアの不具合に合理的に対応することは何ら言及されていない。また、パッチプログラムが出荷後にも装置内部に残存することによるセキュリティの脆弱さに関しても何ら言及されていない。
【００１７】
そこで、本発明は、セキュリティに優れ、且つファイルエントリ数が少ない記憶媒体を利用してパッチプログラムが提供される場合であっても、そのパッチプログラムを効率よく適用することが可能な情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記の目的を達成すべく、本発明に係る情報処理装置は、以下の構成を備えることを特徴とする。
【００１９】
即ち、本発明に係る情報処理装置は、
自装置が実行するオペレーションシステムが認識可能な出力指定コマンドと、その出力指定コマンドによる情報の出力先を変更するリダイレクション情報とを利用して記述されたパッチプログラムを含む第１のバッチファイルと、自装置の起動に際して実行すべき動作が予め記述された第２及び第３のバッチファイルとを記憶する記憶手段と、
自装置の起動に際して前記第２または第３のバッチファイルを実行する実行手段とを備え、
前記第２のバッチファイルには、前記第１のバッチファイルを実行する命令と、その第１のバッチファイルを実行終了後に削除する命令とが含まれ、
前記実行手段は、
前記第２のバッチファイルに従って自装置を起動すると共に、前記第１のバッチファイルが前記記憶手段に記憶されていることを検出した場合に、その第１のバッチファイルを実行することによって前記パッチプログラムを復元し、復元したパッチプログラムを自装置に適用した後、該復元したパッチプログラムと、前記第１のバッチファイルとを削除し、
自装置の次回以降の起動に際して実行するバッチファイルを、前記第３のバッチファイルに更新する
ことを特徴とする。
【００２０】
また、同目的を達成すべく、本発明に係るパッチプログラムの適用方法は、以下の構成を備えることを特徴とする。
【００２１】
即ち、本発明に係るパッチプログラムの適用方法は、
情報処理装置が実行するオペレーションシステムが認識可能な出力指定コマンドと、その出力指定コマンドによる情報の出力先を変更するリダイレクション情報とを利用して記述されたパッチプログラムを含む第１のバッチファイルと、その情報処理装置の起動に際して実行すべき動作が予め記述された第２及び第３のバッチファイルとを記憶手段に記憶しておき、
前記第１のバッチファイルを実行する命令と、その第１のバッチファイルを実行終了後に削除する命令とを含む第２のバッチファイルに従って、前記情報処理装置を起動し、
前記情報処理装置の起動に際して前記第１のバッチファイルが前記記憶手段に記憶されていることを検出した場合には、その第１のバッチファイルを実行することによって前記パッチプログラムを復元し、復元したパッチプログラムを前記情報処理装置に適用した後、該復元したパッチプログラムと、前記第１のバッチファイルとを削除し、
前記情報処理装置の次回以降の起動に際して実行するバッチファイルを、前記第３のバッチファイルに更新する
ことを特徴とする。
【００２２】
尚、同目的は、上記の各構成を有する情報処理装置を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００２３】
上記の本発明によれば、セキュリティに優れ、且つファイルエントリ数が少ない記憶媒体を利用してパッチプログラムが提供される場合であっても、そのパッチプログラムを効率よく適用することが可能な情報処理装置等の提供が実現する。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施形態に係る情報処理装置の構成図を示すブロック図である。
【図２】本発明の第２の実施形態を実現可能なコンピュータ（情報処理装置）のハードウェア構成を例示的に説明するブロック図である。
【図３】本発明の第２の実施形態においてプリインストールパソコン１００が起動に際して実行する処理を表すフローチャートである。
【図４】第２の実施形態においてプリインストールパソコン１００の初回起動に際して主バッチファイルとして実行されるａｕｔｏｅｘｅｃ．ｂａｔ３１２のプログラムリストの主要部を例示する図である。
【図５】第２の実施形態においてプリインストールパソコン１００の初回起動に際して副バッチファイルとして実行されるｃｈｕｓｈａ．ｂａｔ３１１のプログラムリストの主要部を例示する図である。
【図６】第２の実施形態においてプリインストールパソコン１００の２回目以降の起動に際して主バッチファイルとして実行されるａｕｔｏｅｘｅｃ．ｏｒｇ３１３のプログラムリストを例示する図である。
【図７】第２の実施形態においてｃｈｕｓｈａ．ｂａｔ３１１に呼び出される対策パッチプログラムｉｎｉｔ．ｃｏｍ３１４のソースファイルを例示する図である。
【図８】第２の実施形態に係るｉｎｉｔ．ｃｏｍ３１４の内容をダンプしたイメージを例示する図である。
【発明を実施するための形態】
【００２５】
次に、本発明を実施する形態について図面を参照して詳細に説明する。
【００２６】
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係る情報処理装置の構成図を示すブロック図である。図１に示す情報処理装置１０は、実行部１１と記憶装置１２とを有する。
【００２７】
実行部１１は、オペレーションシステム（ＯＳ）１２１に従って各種処理を実行可能である。
【００２８】
記憶装置１２には、第１のバッチファイル１２２、第２のバッチファイル１２３、及び第３のバッチファイル１２４が格納されている。
【００２９】
第１のバッチファイル１２２は、自装置（情報処理装置１０）が実行するＯＳ１２１が認識可能な出力指定コマンドと、その出力指定コマンドによる情報の出力先を変更するリダイレクション情報とを利用して記述されたパッチプログラムを含む。
【００３０】
第２のバッチファイル１２３は、自装置の起動に際して実行すべき動作が予め記述されたバッチファイルであり、第１のバッチファイル１２２を実行する命令と、その第１のバッチファイル１２２を実行終了後に削除する命令とが含まれる。
【００３１】
そして、第３のバッチファイル１２４は、自装置の起動に際して実行すべき動作が予め記述されたバッチファイルである。但し、第３のバッチファイル１２４に記述された内容は、第２のバッチファイル１２３とは異なることとする。
【００３２】
実行部１１は、例えば製造担当者による起動操作を検出するのに応じて、第２のバッチファイル２１３に従って自装置を起動する。その際、実行部１１は、第１のバッチファイル１２２が記憶部１１に記憶されていることを検出した場合に、その第１のバッチファイル１２２を実行することによって、当該パッチプログラムを復元し、復元したパッチプログラムを自装置に適用する。その後、実行部１１は、係る復元したパッチプログラムと、第１のバッチファイル１２２とを削除する。そして実行部１１は、自装置の次回以降の起動に際して実行するバッチファイルを、第３のバッチファイル１２４に更新する。
【００３３】
以上説明した本実施形態によれば、セキュリティに優れ、且つファイルエントリ数が少ない記憶媒体を利用してパッチプログラムが提供される場合であっても、そのパッチプログラムを効率よく適用することができる。
【００３４】
即ち、本実施形態に係る情報処理装置において、第１のバッチファイルに記述されたパッチプログラムは、自装置が実行するオペレーションシステムが認識可能な出力指定コマンドと、その出力指定コマンドによる情報の出力先を変更するリダイレクション情報とを利用して記述されており、直感的には判別が容易ではなく、且つ自装置に適用されたパッチプログラムと、そのパッチプログラムを復元することが記述されている第１のバッチファイル自体も自装置から削除されるので、セキュリティを確保することができる。
【００３５】
また、本実施形態に係る情報処理装置は、第１のバッチファイルを実行することによって当該パッチプログラムを復元できる構成である。このため、新たにパッチプログラムを追加する場合であっても、そのパッチプログラムを１つのファイルとして扱う必要はなく、第１のバッチファイルの記述を適宜追加することによって対応することができるので、ファイルエントリ数の増加を防止することができる。
【００３６】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする第２の実施形態について説明する。
【００３７】
図２は、本発明の第２の実施形態を実現可能なコンピュータ（情報処理装置）のハードウェア構成を例示的に説明するブロック図である。図２に示したコンピュータ１００のハードウェアは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３、ディスプレイ４、通信インタフェース（Ｉ／Ｆ）５、ＣＤ／ＤＶＤ等の大容量の記録媒体２０２へのデータの読み書きが可能なメディアドライブ６、そして、不揮発性の記憶デバイスとしてのハードディスクドライブ（ＨＤ）７を備え、これらがバス８を介して接続された構成を有する。係るハードウェア構成において、ＣＰＵ１は、上述した第１の実施形態における実行部１１の一部に相当し、コンピュータ１００の全体の動作を司る。また、ハードディスクドライブ７は、上述した第１の実施形態における記憶装置１２に相当する。
【００３８】
本実施形態において、通信インタフェース５には、リムーバブルディスク装置の一例として、ＵＳＢ（Uｎｉｖｅｒｓａｌ  Sｅｒｉａｌ  Bｕｓ）接続形式のフロッピーディスクドライブ（外部ＦＤＤ）２００が接続されることとする。そしてこのフロッピーディスクドライブ（レガシーフロッピードライブ）は、フロッピーディスク２０１へのデータの読み書きが可能である。
【００３９】
本実施形態において、パソコン１００のハードディスクドライブ７には、ＯＳ３０１、複数種類のアプリケーションプログラム（ＡＰＰ群）３０２、３種類のバッチファイル（Ｃｈｕｓｈａ．ｂａｔ３１１（第１のバッチファイル）、ａｕｔｏｅｘｅｃ．ｂａｔ３１２（第２のバッチファイル）、及びａｕｔｏｅｘｅｃ．ｏｒｇ３１３（第３のバッチファイル））が格納される。この状態は、例えば、生産現場やサービス部門において、パソコン（以下、「プリインストールパソコン」と称する場合がある）１００が完成した状態を表す。
【００４０】
本実施形態において、例えば生産現場における生産に際して、製造担当者（或いはサービス部門におけるサービスエンジニア）は、パソコン１００に外部ＦＤＤ２００を接続し、上述した起動媒体Ｂに相当するフロッピーディスク２０１と、ツリー媒体Ａに相当する記録媒体２０２とを利用して、ハードディスクドライブ７に、ＯＳ３０１、Ｃｈｕｓｈａ．ｂａｔ３１１、ａｕｔｏｅｘｅｃ．ｂａｔ３１２、及びａｕｔｏｅｘｅｃ．ｏｒｇ３１３、そしてＡＰＰ群３０２を格納する。但し、本発明の実施形態において、パソコン１に数種類のアプリケーションプログラム（ＡＰＰ群）３０２をハードディスクドライブ７に格納することは必須ではない。また、ハードディスクドライブ７内に破線で示すブロックは、不具合を修正するパッチプログラム（３１３）を表し、このパッチプログラムは、後述する処理実行中に一時的にハードディスクドライブ７に格納されることを表す（詳細は後述する）。
【００４１】
次に、図３から図８を参照して、本実施形態におけるプリインストールパソコン１００に上記３つのバッチファイルが格納されている状態において初めて起動された場合の動作について説明する。この初めて起動される場合の例としては、例えば、係るプリインストールパソコン１００が出荷されてから顧客によって初めて起動された場合、或いは、サービス部門によるメンテナンスの後に動作確認のために初めて起動された場合等が想定される。
【００４２】
図３は、本発明の第２の実施形態においてプリインストールパソコン１００が起動に際して実行する処理を表すフローチャートである。このフローチャートに記載された処理は、ハードディスクドライブ７から読み出されたＯＳ３０１をＣＰＵ１が実行することによって実現される。
【００４３】
ＣＰＵ１は、まず、ハードディスクドライブ７に、副バッチであるｃｈｕｓｈａ．ｂａｔ３１１が格納されているか否かを判断する（ステップＳ１）。ｃｈｕｓｈａ．ｂａｔ３１１が格納されている場合（ステップＳ１にてＹＥＳ判定）、ＣＰＵ１は、ステップＳ２に処理を進める。一方、ｃｈｕｓｈａ．ｂａｔ３１１が格納されていない場合（ステップＳ１にてＮＯ判定）、ＣＰＵ１は、ステップＳ５に処理を進める。
【００４４】
上述したステップＳ１に係る処理は、プリインストールパソコン１００が起動に際して、図４に示すａｕｔｏｅｘｅｃ．ｂａｔ３１２を実行することによって実現される。図４は、第２の実施形態においてプリインストールパソコン１００の初回起動に際して主バッチファイルとして実行されるａｕｔｏｅｘｅｃ．ｂａｔ３１２のプログラムリストの主要部を例示する図である。図４に示すａｕｔｏｅｘｅｃ．ｂａｔ３１２は、例えば、係るプリインストールパソコン１００が出荷されてから顧客によって初めて起動された場合、或いは、サービス部門によるメンテナンスの後に動作確認のために初めて起動された場合等に１回だけ実行されるバッチファイルである。
【００４５】
ＣＰＵ１は、上記ステップＳ１において、ｃｈｕｓｈａ．ｂａｔ３１１の存在を検出した場合、ハードディスクドライブ７からｃｈｕｓｈａ．ｂａｔ３１１を読み出す（ステップＳ２、図４に示す第ｎ行）。ここで、ｃｈｕｓｈａ．ｂａｔ３１１にハードディスクドライブ７が存在する場合とは、例えば、係るプリインストールパソコン１００が出荷されてから顧客によって初めて起動された場合、或いは、サービス部門によるメンテナンスの後に動作確認のために初めて起動された場合等である。一方、ｃｈｕｓｈａ．ｂａｔ３１１を検出しない場合（ステップＳ１にてＮＯ判定）、ＣＰＵ１は、処理をステップＳ５に進める。
【００４６】
ＣＰＵ１は、ステップＳ３乃至ステップＳ４において、ステップＳ１にて読み出したｃｈｕｓｈａ．ｂａｔ３１１を実行する。図５は、第２の実施形態においてプリインストールパソコン１００の初回起動に際して副バッチファイルとして実行されるｃｈｕｓｈａ．ｂａｔ３１１のプログラムリストの主要部を例示する図である。
【００４７】
ＣＰＵ１は、ステップＳ２にて読み込んだｃｈｕｓｈａ．ｂａｔ３１１を実行する（ステップＳ３）。即ち、ＣＰＵ１は、図５に示すｃｈｕｓｈａ．ｂａｔ３１１において、第１行目から第ｍ行目までに記述されているｅｃｈｏコマンドを実行することにより、ハードディスクドライブ７上に、パッチプログラム（ｉｎｉｔ．ｃｏｍ３１４）を生成する（ステップＳ３）。
【００４８】
本実施形態においては、係るパッチプログラムの生成に際して、ＯＳ３０１における標準コマンドであるｅｃｈｏコマンドを利用する。このｅｃｈｏコマンドは、本来はコマンドライン（Ｃｏｍｍａｎｄ  Ｌｉｎｅ  Ｉｎｔｅｒｆａｃｅ：ＣＬＩ）に与えられた文字列を標準出力（一般にはディスプレイ）に出力するための出力指定コマンドである。本実施形態では、当該ＯＳのシェルが有するリダイレクト機能を利用することにより、係るｅｃｈｏコマンドによる出力先を、標準出力から、例えばハードディスクドライブ７内のｉｎｉｔ．ｃｏｍファイルに転換（リダイレクト）する。
【００４９】
係るリダイレクト機能は、図５に示すように、「＞」及び「＞＞」記号の少なくとも何れかによって実現することができる。即ち、図５に示すｃｈｕｓｈａ．ｂａｔ３１１の例では、係る２種類の記号を用いて、第１行目から第ｍ行目までにｅｃｈｏコマンドによるリダイレクトが記述されている。より具体的には、ハードディスクドライブ７内に“ｉｎｉｔ．ｃｏｍ”という名前のファイルが未だ存在しない場合、その名前のファイルを新たに生成するためには、「＞」記号を用いればよい。また、既に同じ名称のファイル（図５に示す例では“ｉｎｉｔ．ｃｏｍ”）が存在する場合は、そのファイルの末尾にデータを追加すべく「＞＞」記号を用いればよい。
【００５０】
即ち、図５に示すｃｈｕｓｈａ．ｂａｔ３１１の例では、第１行に「＞」を用いることによってハードディスクドライブ７内のｉｎｉｔ．ｃｏｍ（３１４）というファイルを生成し、それ以降の行では「＞＞」を用いている。そして、図５に示す例において、ＣＰＵ１は、第１行目において“ａ＝”というデータが標準出力からハードディスクドライブ７にリダイレクトする共に、ハードディスクドライブ７内にファイル（ｉｎｉｔ．ｃｏｍ３１４）を生成する。その後、ＣＰＵ１は、第２行目から第ｍ行目まで各行のデータのリダイレクトを繰り返しながら、当該ファイル（ｉｎｉｔ．ｃｏｍ３１４）に各行のデータを追記していく。ＣＰＵ１は、第ｍ行目では“Ｌ）！”というデータを標準出力からハードディスクドライブ７にリダイレクトする共に、第１行目の実行に際して生成した当該ファイル（ｉｎｉｔ．ｃｏｍ３１４）に各行のデータを追記する。このような手順により、パッチプログラムであるｉｎｉｔ．ｃｏｍ３１４が生成される。即ち、本実施形態において、ＣＰＵ１は、ｃｈｕｓｈａ．ｂａｔ３１１の第１行目から第ｍ行目までの記述に基づいて、機械語で記述されたパッチプログラムを復元する訳である。
【００５１】
ｅｃｈｏコマンドは、コマンドラインにバイナリデータを与えることができる、という仕様を有するコマンドである。但し、機械語プログラムをｃｈｕｓｈａ．ｂａｔ３１１のｅｃｈｏ文コマンドラインに記述するためには、バイナリファイルエディタを用いる必要がある。これは、機械語プログラムは、ユーザ（開発者）が可視的に判別容易なテキストデータによって成立している訳ではないからである。このため、図５に示す第２行目には、「．．」なる不可読文字（文字化け）が現れている。
【００５２】
上述したｃｈｕｓｈａ．ｂａｔ３１１が実行されることによって生成されるｉｎｉｔ．ｃｏｍ３１４は、例えば、図７に例示するソースプログラムをアセンブルして得られる機械語プログラムである。即ち、図７は、第２の実施形態においてｃｈｕｓｈａ．ｂａｔ３１１に呼び出される対策パッチプログラムｉｎｉｔ．ｃｏｍ３１４のソースファイルを例示する図である。そして、図８は、第２の実施形態に係るｉｎｉｔ．ｃｏｍ３１４の内容をダンプしたイメージを例示する図である。この図８から判る通り、ｉｎｉｔ．ｃｏｍ３１４は、テキストデータで成り立っている訳ではないので、上述した図５の第２行目に示すような不可読文字（文字化け）が出現する訳である。
【００５３】
ＣＰＵ１は、上述した如く第１行目から第ｍ行目までのｅｃｈｏコマンドによって生成したパッチプログラム（ｉｎｉｔ．ｃｏｍ３１４）を、ハードディスクドライブ７から呼び出して実行する（ステップＳ４、図５に示す第（ｍ＋１）行目）。即ち、ステップＳ４にてこのパッチプログラムが実行されることにより、ｃｈｕｓｈａ．ｂａｔ３１１が目的としていたパソコン１００の不具合が解消される。
【００５４】
次にＣＰＵ１は、パッチプログラム（ｉｎｉｔ．ｃｏｍ３１４）を、ハードディスクドライブ７から削除する（ステップＳ５、図５に示す第（ｍ＋２）行目）。即ち、ｉｎｉｔ．ｃｏｍ３１４は、プリインストールパソコン１００において初回起動に際して１回だけ実行され、その後削除されるランワンスパッチプログラムと捉えることができる。
【００５５】
ＣＰＵ１は、ｃｈｕｓｈａ．ｂａｔ３１１がハードディスクドライブ７に格納されているか否かを判断する（ステップＳ６）。ＣＰＵ１は、ｃｈｕｓｈａ．ｂａｔ３１１が存在する場合（ステップＳ６にてＹＥＳ判定）にはステップＳ７に処理を進め、存在しない場合（ステップＳ６にてＮＯ判定）にはステップＳ８に処理を進める。
【００５６】
ステップＳ６にてｃｈｕｓｈａ．ｂａｔ３１１が存在することを検出したＣＰＵ１は、図４に示すａｕｔｏｅｘｅｃ．ｂａｔ３１２（親バッチファイル）の処理に戻り、その第（ｎ＋１）行目を実行する。これにより、ＣＰＵ１は、ハードディスクドライブ７に格納されているｃｈｕｓｈａ．ｂａｔ３１１を削除する（ステップＳ７）。
【００５７】
そしてＣＰＵ１は、図４に示すａｕｔｏｅｘｅｃ．ｂａｔ３１２の第（ｎ＋２）行目を実行することにより、正規のａｕｔｏｅｘｅｃ．ｂａｔを、これまでのａｕｔｏｅｘｅｃ．ｂａｔ３１２から、ａｕｔｏｅｘｅｃ．ｏｒｇ３１３に更新する（ステップＳ８）。ステップＳ８において、ＣＰＵ１は、ハードディスクドライブ７からａｕｔｏｅｘｅｃ．ｂａｔ３１２を消去してしまい、ａｕｔｏｅｘｅｃ．ｏｒｇ３１３を正規のａｕｔｏｅｘｅｃ．ｂａｔとして設定してもよい。これにより、プリインストールパソコン１００では、次回の起動あるいはリスタート以降、図６に示すバッチファイルが正規のａｕｔｏｅｘｅｃ．ｂａｔとして扱われることになる。
【００５８】
このように、上述した本実施形態によれば、第１の実施形態と同様に、セキュリティに優れ、且つファイルエントリ数が少ない記憶媒体を利用してパッチプログラムが提供される場合であっても、そのパッチプログラムを効率よく適用することができる。
【００５９】
即ち、プリインストールパソコン１００のメーカは、出荷に先だって、フロッピーディスク２０１を利用して、Ｃｈｕｓｈａ．ｂａｔ３１１、ａｕｔｏｅｘｅｃ．ｂａｔ３１２、及びａｕｔｏｅｘｅｃ．ｏｒｇ３１３を当該パソコンにコピーするだけでよいので、出荷直前の不具合にも迅速に対応できる。
【００６０】
また、本実施形態によれば、図７に示すようなソースコードによってパッチプログラムｉｎｉｔ．ｃｏｍ３１４を作成する開発者は、フロッピーディスク２０１のエントリ数の制約を意識する必要がなく、そのｉｎｉｔ．ｃｏｍが含まれるｃｈｕｓｈａ．ｂａｔ３１１をバイナリファイルエディタで編集するだけでよい。
【００６１】
また、本実施形態によれば、プリインストールパソコン１００にて生成されるｉｎｉｔ．ｃｏｍ３１４は、一度実行されると消去されるので、そのプリインストールパソコンに関する機密情報を、第三者に知られることを防止することができる。その理由は、Ｃｈｕｓｈａ．ｂａｔ３１１に含まれる不具合対策用のプログラムの可読性が低く、且つパッチ実行に際してパッチプログラム（ｉｎｉｔ．ｃｏｍ３１４）が人目に触れること無く生成され、実行され、そして削除されるからである。
【００６２】
また、本実施形態によれば、出荷するパソコンの品質を向上することができる。その理由は、プリインストールパソコン１００を開発する開発者がツリー媒体Ａに相当する記録媒体２０２の開発を終了した後であっても、ｃｈｕｓｈａ．ｂａｔ３１１に不具合対策用のパッチプログラムを含めることにより、開発終了後に発見された不具合に出荷間際まで対応できるからである。
【００６３】
また、本実施形態によれば、プリインストールパソコン１００を開発するに際してのメーカの不具合対策費用を削減することができる。その理由は、ｃｈｕｓｈａ．ｂａｔ３１１に不具合対策用のパッチプログラムを含めることにより、例えば当該パソコンの出荷後の初回起動に際して、ユーザが意識することなく不具合に対応することができるためである。また、本実施形態によれば、ユーザに対するパッチ当て作業のための指示書の準備が不要であるからである。更に本実施形態によれば、エントリ数が制限されるフロッピーディスクをプリインストールパソコン１００の生産現場において利用する場合であっても、必要とするフロッピーディスクの枚数を極小化することができるからである。
【００６４】
（他の実施例）
上述した実施形態は、説明の便宜上から、ＭＳ−ＤＯＳ（登録商標）、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）等のＭｉｃｒｏｓｏｆｔ社製ＯＳをパソコンにプリインストールする構成を例に説明した。しかしながら、本発明はこのような構成には限定されない。例えば、本発明は、ＵＮＩＸ（登録商標）やＬｉｎｕｘ（登録商標）等のＯＳにおいても実現することができる。即ち、ＵＮＩＸやＬｉｎｕｘ等のＯＳにおいて各ユーザがログオンする際にＯＳが実行するデフォルトシェルスクリプトの中に、管理者権限を有するユーザが同様の仕掛けを施すとよい。この場合、全ユーザはシステム不具合への対応を意識することなく、その不具合に対処することができる。この場合、自動実行する対象はパッチプログラムではなくスクリプトである。従って、バイナリファイルエディタではなく、一般的なテキストファイルエディタを用いて、スクリプトをｅｃｈｏコマンドのコマンドライン文字列に与えればよい。
【００６５】
ここで、一例として、Ｌｉｎｕｘにおける実施例について以下に例示すると、ログオンスクリプト）に下の３行を記述すればよい。
【００６６】
（１行目）ｅｃｈｏ  “／＾＄／ｄ”＿＞  ｉｎｉｔ  ＃“／＾＄／ｄ”という内容のｓｅｄスクリプトファイルを生成する，
（２行目）ｓｅｄ  −ｆ  ｉｎｉｔ￣／．ｂａｓｈｒｃ  ＃ｉｎｉｔスクリプトファイルに従って￣／．ｂａｓｈｒｃファイルをｓｅｄで処理する，
（３行目）ｒｍ  −ｆ  ｉｎｉｔ  ＃ｉｎｉｔスクリプトファイルを削除する。
【産業上の利用可能性】
【００６７】
本発明は、上述した実施形態には限定されない。例えば本発明は、ユーザがログオンする汎用コンピュータのＯＳで、かつログオンに際してバッチやスクリプトが自動的に実行される各種システムに適用することが可能である。即ち、本発明は、例えば、カーナビゲーションシステム、ＰＯＳ（Ｐｏｉｎｔ−Ｏｆ−Ｓａｌｅ  Ｓｙｓｔｅｍ）、携帯電話、携帯ゲーム機等の、ＯＳが搭載された各種の電子機器にも適用することができる。
【００６８】
尚、上述した各実施形態を例に説明した本発明は、上述したパソコン１００に対して、その説明において参照したフローチャート（図３）、複数種類のバッチファイル（３１１〜３１３）の機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、当該装置のＣＰＵに読み出して実行することによって達成される。また、当該装置内に供給されたコンピュータ・プログラムは、読み書き可能な一時記憶メモリ（ＲＡＭ３）またはハードディスク装置７等の不揮発性の記憶デバイスに格納すれば良い。
【００６９】
また、前記の場合において、当該各装置内へのコンピュータ・プログラムの供給方法は、フロッピーディスク（登録商標）２０１やＣＤ−ＲＯＭ等の各種記録媒体２０２を介して当該装置内にインストールする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは、係るコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると解釈することができる。
【００７０】
また、上述した実施形態では、説明の便宜上から、不具合を解決するための（機能修正のための）パッチプログラムがＣｈｕｓｈａ．ｂａｔ３１１に記述された構成について説明した。しかしながら本発明は係る構成には限定されず、Ｃｈｕｓｈａ．ｂａｔ３１１に記述するパッチプログラムは、新たな機能を実行する（機能拡張）等の各種目的のためのプログラムであってもよい。
【符号の説明】
【００７１】
１    ＣＰＵ
２    ＲＯＭ
３    ＲＡＭ
４    ディスプレイ
５    通信インタフェース（Ｉ／Ｆ）
６    メディアドライブ
７    ハードディスクドライブ（ＨＤ）
８    バス
１０    情報処理装置
１１    実行部
１２    記憶装置
１００    パソコン（パーソナルコンピュータ）
１２２    第１のバッチファイル
１２３    第２のバッチファイル
１２４    第３のバッチファイル
２００    外部フロッピーディスクドライブ
２０１    フロッピーディスク
２０２    記録媒体
１２１，３０１    ＯＳ
３０２    アプリケーションプログラム群（ＡＰＰ群）
３１１    Ｃｈｕｓｈａ．ｂａｔ（第１のバッチファイル）
３１２    ａｕｔｏｅｘｅｃ．ｂａｔ（第２のバッチファイル）
３１３    ａｕｔｏｅｘｅｃ．ｏｒｇ（第３のバッチファイル）
３１４    ｉｎｉｔ．ｃｏｍ（パッチプログラム）
【図１】
0005400099.tif 000002
【図２】
0005400099.tif 000003
【図３】
0005400099.tif 000004
【図４】
0005400099.tif 000005
【図５】
0005400099.tif 000006
【図６】
0005400099.tif 000007
【図７】
0005400099.tif 000008
【図８】
0005400099.tif 000009