(57)【要約】【課題】  複数のソフトウェアなどのインストール処理を一括で容易に行うためのプログラムであるマスターインストーラを実行する際、インストール処理やプログラム起動など、処理ごとに適切に管理者アカウントとその他のアカウントを切換えて実行する必要がある。【解決手段】  上記課題を鑑み、本発明においてはマスターインストーラを起動した際に、管理者アカウント実行部とユーザアカウント実行部との処理プロセスにおいて、プロセス間の通信を確保し、前記管理者アカウント実行部が処理に応じたアカウントを判定し、当該処理に応じたアカウントが前記ユーザアカウントであった場合、前記ユーザアカウント実行部の処理プロセスにおいて当該処理を実行するため、前記管理者アカウント実行部が確保されたプロセス間の通信を利用して、前記ユーザアカウント実行部に当該処理を委譲する。【選択図】  図２
2008310424.tif 000002
【特許請求の範囲】
【請求項１】
管理者アカウントと、情報処理装置における処理の実行権限が管理者アカウントより限定されているユーザアカウントとが登録され、それぞれのアカウント実行部の処理プロセスにおいて処理を実行する情報処理装置おいて、マスターインストーラを起動した際にマスターインストーラに基づく処理を実現する情報処理方法であって、
管理者アカウント実行部とユーザアカウント実行部との処理プロセスにおいて、プロセス間の通信を確保する確保工程と、
前記管理者アカウント実行部が処理に応じたアカウントを判定する判定工程と、
前記判定工程において、当該処理に応じたアカウントが前記ユーザアカウントであった場合、前記ユーザアカウント実行部の処理プロセスにおいて当該処理を実行するため、前記管理者アカウント実行部が前記確保工程で確保されたプロセス間の通信を利用して、当該処理を委譲する委譲工程と備えることを特徴とする情報処理方法。
【請求項２】
前記判定工程は、前記処理がＷｅｂブラウザの起動であった場合、当該処理に応じたアカウントをユーザアカウントと判定することを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記Ｗｅｂブラウザが、前記ユーザアカウント実行部の処理プロセスにおいて起動された場合、管理者アカウント実行部の処理プロセスで起動された場合よりもセキュリティの高いモードで起動されるＷｅｂブラウザであることを特徴とする請求項２に記載の情報処理方法。
【請求項４】
前記判定工程は、前記処理が通常使うプリンタを設定する処理であった場合、当該処理に応じたアカウントを前記ユーザアカウントと判定することを特徴とする請求項１乃至請求項３のいずれか１項に記載の情報処理方法。
【請求項５】
前記判定工程は、前記処理がファイル操作であった場合、ファイルパスを元に当該処理に応じたアカウントを判定し、前記処理がレジストリ操作であった場合、レジストリパスを元に当該処理に応じたアカウントを判定することを特徴とする請求項１乃至請求項４のいずれか１項に記載の情報処理方法。
【請求項６】
前記ユーザアカウント実行部の処理プロセスにおいて前記処理が完了した場合、前記管理者アカウント実行部の処理プロセスに対して前記プロセス間の通信を介して当該処理が終了したことを通知する通知工程と、
当該処理の完了の通知を受信した後に、前記管理者アカウント実行部の処理プロセスを終了する終了工程を備えることを特徴とする請求項１に記載の情報処理方法。
【請求項７】
管理者アカウントと、情報処理装置における処理の実行権限が管理者アカウントより限定されているユーザアカウントとが登録され、それぞれのアカウント実行部の処理プロセスにおいて処理を実行する情報処理装置における情報処理工程をコンピュータによって実現するためのプログラムであって、
管理者アカウント実行部とユーザアカウント実行部との処理プロセスにおいて、プロセス間の通信を確保する確保工程と、
前記管理者アカウント実行部が、実行しようとする処理に応じたアカウントを判定する判定工程と、
前記判定工程において、当該処理に応じたアカウントが前記ユーザアカウントであった場合、前記ユーザアカウント実行部の処理プロセスにおいて当該処理を実行するため、前記管理者アカウント実行部が前記確保工程で確保されたプロセス間の通信を利用して、当該処理を委譲する委譲工程とをコンピュータによって実現するためのプログラム。
【請求項８】
前記判定工程は、前記実行しようとする処理がＷｅｂブラウザの起動であった場合、当該処理に応じたアカウントをユーザアカウントと判定することを特徴とする請求項７に記載のプログラム。
【請求項９】
前記Ｗｅｂブラウザが、前記ユーザアカウント実行部の処理プロセスにおいて起動された場合、管理者アカウント実行部の処理プロセスで起動された場合よりもセキュリティの高いモードで起動されるＷｅｂブラウザであることを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記判定工程は、前記実行しようとする処理が通常使うプリンタを設定する処理であった場合、当該処理に応じたアカウントを前記ユーザアカウントと判定することを特徴とする請求項７乃至請求項９のいずれか１項に記載のプログラム。
【請求項１１】
前記判定工程は、前記実行しようとする処理がファイル操作であった場合、ファイルパスを元に当該処理に応じたアカウントを判定し、前記実行しようとする処理がレジストリ操作であった場合、レジストリパスを元に当該処理に応じたアカウントを判定することを特徴とする請求項７乃至請求項１０のいずれか１項に記載のプログラム。
【請求項１２】
前記ユーザアカウント実行部の処理プロセスにおいて前記処理が完了した場合、前記管理者アカウント実行部の処理プロセスに対して前記プロセス間の通信を介して当該処理が終了したことを通知する通知工程と、
当該処理の完了の通知を受信した後に、前記管理者アカウント実行部の処理プロセスを終了する終了工程とをコンピュータによって実現するための請求項７に記載のプログラム。
【請求項１３】
請求項７乃至請求項１２のいずれか１項に記載のプログラムを格納したコンピュータにより読み取り可能な記憶媒体。
【請求項１４】
管理者アカウントと、情報処理装置における処理の実行権限が管理者アカウントより限定されているユーザアカウントとが登録され、それぞれのアカウント実行部の処理プロセスにおいて処理を実行する情報処理装置であって、
マスターインストーラを起動した際に、管理者アカウント実行部とユーザアカウント実行部との処理プロセスにおいて、プロセス間の通信を確保する確保手段と、
前記管理者アカウント実行部がマスターインストーラに基づく処理に応じたアカウントを判定する判定手段と、
前記判定手段において、当該処理に応じたアカウントが前記ユーザアカウントであった場合、前記ユーザアカウント実行部の処理プロセスにおいて当該処理を実行するため、前記管理者アカウント実行部が前記確保手段で確保されたプロセス間の通信を利用して、当該処理を委譲する委譲手段と備えることを特徴とする情報処理装置。
【請求項１５】
前記判定手段は、前記処理がＷｅｂブラウザの起動であった場合、当該処理に応じたアカウントをユーザアカウントと判定することを特徴とする請求項１４に記載の情報処理装置。
【請求項１６】
前記Ｗｅｂブラウザが、前記ユーザアカウント実行部の処理プロセスにおいて起動された場合、管理者アカウント実行部の処理プロセスで起動された場合よりもセキュリティの高いモードで起動されるＷｅｂブラウザであることを特徴とする請求項１５に記載の情報処理装置。
【請求項１７】
前記判定手段は、前記処理が通常使うプリンタを設定する処理であった場合、当該処理に応じたアカウントを前記ユーザアカウントと判定することを特徴とする請求項１４乃至請求項１６のいずれか１項に記載の情報処理装置。
【請求項１８】
前記ユーザアカウント実行部の処理プロセスにおいて前記処理が完了した場合、前記管理者アカウント実行部の処理プロセスに対して前記プロセス間の通信を介して当該処理が終了したことを通知する通知手段と、
当該処理の完了の通知を受信した後に、前記管理者アカウント実行部の処理プロセスを終了する終了手段を備えることを特徴とする請求項１４に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェアのインストール処理に関するものである。特に管理者アカウントと一般ユーザアカウントなどのその他のアカウントで権限が異なるオペレーションシステム（ＯＳ）におけるインストール処理に関するものである。
【背景技術】
【０００２】
マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）  ＮＴ（その後継であるＷｉｎｄｏｗｓ（登録商標）  ２０００／ＸＰ／Ｖｉｓｔａ含む）（登録商標）、ＵＮＩＸ（登録商標）などのオペレーティングシステム（ＯＳ）では、管理者アカウントと一般ユーザアカウントを別々に管理できる。ここでいうアカウントとはコンピュータを使用するときのＩＤである。各アカウントにはコンピュータを使用するための権利が与えられており、例えば管理者アカウントにはシステム全体に影響するファイルやレジストリを変更する等の各種処理に対する実行権限が与えられている。一方、一般ユーザカウントにはシステム全体に影響するファイルやレジストリを変更するなどの権限は与えらず、処理を実行する権限は限定されている。そのため一般ユーザアカウントはソフトウェアをシステムへインストールすることができず、インストール処理を行うためには管理者アカウントが必要となる。
【０００３】
ＵＮＩＸ（登録商標）オペレーティングシステムでもｒｏｏｔと呼ばれる特殊なアカウントがあり、ｒｏｏｔアカウントにはシステム全体に影響するファイルを変更する権利が与えられており、それ以外のアカウントにはそのような権限は与えられていない。
【０００４】
またアカウントにはパスワードが関連付けられており、ユーザはコンピュータを使用するときにアカウント名とパスワードを入力しシステムへの認証作業を行う。これをログイン（またはログオン）と呼ぶ。アカウント名に関連付けられたパスワードが正しく入力されればログインが許可され、ユーザはそのコンピュータを使用することできる。このログインのときに入力したアカウントをログインアカウントと呼ぶ。ログインアカウントは管理者アカウントでも一般ユーザアカウントでも構わない。管理者アカウントでログインすれば、ログインアカウントは管理者アカウントであり、それはユーザが管理者としてコンピュータを使用することを意味する。一般ユーザアカウントでログインすればログインアカウントは一般ユーザアカウントであり、それは非管理者としてコンピュータを使用することを意味する。
【０００５】
さらにこのようなＯＳでは厳密なアカウント管理を行うため、サブプロセスも権限を引き継いだ状態となる。つまり管理者アカウントで実行したプログラムが別のプログラムを起動すると、このプログラムもまた管理者アカウントになる。逆に一般ユーザアカウントで実行したプログラムが別のプログラムを起動すると、これもまた一般ユーザアカウントになる。従来から、あるアカウントで実行されたプログラムはパスワードの入力なしに別のアカウントのプログラムを実行することはなかった。
【０００６】
一方パーソナルコンピュータの普及とインターネットの普及にともない「悪意のあるソフトウェア」の存在が問題になっている。これは、例えばユーザがホームページを見ているだけでソフトウェアがインストールされる、メールに添付されたプログラムを実行と表面的なプログラムとは別のソフトウェアがインストールされるといったことが挙げられる。このようなソフトウェアは知らぬ間にユーザのファイルをインターネットへ送信する、ユーザのローカルファイルを削除するなどの悪意のある行為を行い、多く社会問題になっている。
【０００７】
従来のＯＳであってもＷｅｂを見る作業やメールを見る作業は一般ユーザアカウントでログインした状態で行い、インストール処理は管理者アカウントでログインしなおしてから操作するというオペレーションを徹底していればよい。それであれば、上記のようにホームページやメールの添付ファイルを実行するだけで「悪意のあるソフトウェア」が勝手にインストールされることを未然に防ぐことは可能である。
【０００８】
しかしながらユーザは、制限の少ない管理者アカウントとしてログインし、管理者としてコンピュータを使用することが多い。そのため悪意あるソフトウェアのインストールを防止できていない。また、ユーザ自身、自分のアカウントが管理者アカウントかそれ以外のアカウントであるかを意識していないといったことも考えられる。
【０００９】
特許文献１（特表２００２−５１７８５３）では、普段は一般ユーザアカウントやトークンの制限された管理者アカウントで処理を行う。そして、プログラム実行時に本来の管理者権限をプログラムに与えることで動作を制限する提案がある。トークンの制限された管理者アカウントとは、管理者アカウントと同じＩＤを持つが、権限が弱められた状態である。
【００１０】
例えば、あるＯＳにおいて、管理者アカウントでログインしてもある程度、権限が制限された管理者アカウントとして扱われ、システムを変更するような処理を実行するときに必ず確認が求められる。これに同意することで初めて本当の管理者アカウントで処理を実行することになる。同様に一般ユーザアカウントでログインしていても、システムを変更するような処理を実行するときに自動的にアカウント名とパスワードの要求画面が表示され、一時的に管理者アカウントで処理を実行する。
【００１１】
この方法であればインストール処理などのシステムを改変するような処理を行う前に確認が求められ、ユーザはこれを拒否することも可能となる。
【００１２】
また、他のあるＯＳにおいては、ある処理に対して特別なアカウントを与えることができるとする。例えば印刷に関する常駐プログラム（デーモン）には印刷に関する権利のみを与えることで常駐プログラムに不具合があったり、印刷に関する常駐プログラムが不正にアクセスされたりしてもシステムを改変することができなくなる。
【特許文献１】特表２００２−５１７８５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、パーソナルコンピュータ（ＰＣ）の普及にともない、ソフトウェアが多数開発され、デジタルカメラやプリンタといった電化製品に複数のソフトウェアが同梱されていることは一般的になってきた。特に多いときには１０を超えるソフトウェアが、ＰＣと連動させて用いる電化製品購入時に同梱されることもある。
【００１４】
ソフトウェア数の増加によるソフトウェアインストール手順の複雑化を避けるため、マスターインストーラと呼ばれるソフトウェアを用意することが一般的である。これは複数のソフトウェアインストーラを順次実行し、ユーザはあたかも一つのソフトウェアをインストールする感覚で全てのインストール処理を行うための支援ソフトウェアである。
【００１５】
ところが先の特許文献１のように、インストーラを起動すると管理者アカウント名とパスワードの要求画面が毎回表示されるようだとインストールの手間や時間がかかることになる。よって、ユーザに対して簡単に手間をかけずに一括インストールを行うことを提供するといったそもそもの目的を充分に満たすことができなくなってします可能性がある。
【００１６】
また、マスターインストーラ自体を管理者アカウントで実行すれば、管理者アカウントとパスワードの要求画面は一度しか表示されないようになるが、その場合は別の問題が発生する。
【００１７】
一つは管理者アカウント実行部で実行した場合と、一般ユーザアカウント実行部で実行した場合で動作モードが異なるプログラムをマスターインストーラから実行したときの問題である。例えば、あるＯＳにおいてデフォルトのＷｅｂブラウザを、一般ユーザアカウント実行部などで実行する。すると、インターネット上に存在するファイルを開くために、ブラウザと異なるソフトウェアを実行する必要がある場合に、これを未然に防止する、セキュリティの高いモードが有効になる。また、管理者アカウントで実行するとこのセキュリティが高いモードが無効になる。つまり、インターネット上に存在するファイルを自由に開くことができる。
【００１８】
マスターインストーラは管理者アカウントで動作するので、例えば、マスターインストーラ実行部から、あるブラウザ起動された場合、管理者アカウントで動作するためこのセキュリティが高いモードが無効になる。マスターインストーラにより提供されるＷｅｂブラウザを用いて行う処理は、例えばカスタマーサービスにおいてのＷｅｂサービスなどのユーザ登録を行うためのブラウザ起動などが挙げられる。こういったＷｅｂサービスなどのユーザ登録に関しては、特に管理者権限は必要ない。つまり、管理者権限は特に必要ないのにも関わらず、マスターインストーラから、前述のブラウザ起動された場合、結果としてユーザのコンピュータのセキュリティレベルを下げるという問題が発生する。
【００１９】
さらにログインアカウントが一般ユーザアカウントである場合、もう一つ別の問題が発生する。例えばスキャナのデータを受信し、ユーザデフォルトの画像データ用フォルダに保存する常駐プログラムが存在するとする。画像データフォルダはアカウントごとに管理され、別のアカウントの画像データフォルダは見えないようになっているのが一般的である。常駐プログラムがログインアカウントで動作していれば、常駐プログラムはログインアカウントの画像データフォルダにスキャンデータを保存する。しかし、常駐プログラムにおいて一旦、アカウントが切換わり、管理者アカウントで動作してしまうと、その後は管理者アカウントの画像データフォルダにスキャンデータを保存する。このため、ログインユーザである一般ユーザはファイルにアクセスできなくなる問題が発生する。これはつまり、インストール処理のためにマスターインストーラが管理者アカウントとして動作させた場合に常駐プログラムを実行すると、こういった問題が発生することとなる。
【００２０】
同様の例として、従来からＯＳには通常使う、デフォルトのプリンタを設定することができる。これはユーザが印刷を行うときデフォルトで選ばれるプリンタドライバを決めるための設定であり、この設定もアカウントごとに別々の設定にすることができる。マスターインストーラはプリンタドライバをインストールした後で、インストールしたプリンタドライバを通常使うプリンタに設定する。しかしながら、管理者アカウントで実行しているとログインアカウントである一般ユーザアカウント側の通常使うプリンタの設定ではない。つまり、ユーザがプリンタドライバをインストールする際に、本当に設定するべき自分自身のログインアカウントの設定ではなく、管理者アカウントの通常使うプリンタしか設定することができないという問題が発生する。
【００２１】
よって本発明は、マスターインストーラを実行する際、インストール処理やプログラム起動などの処理ごとに適切に管理者アカウントとその他のアカウントを切換えて実行可能な情報処理方法及び情報処理方法を実現するためのプログラムの提供を目的とする。
【課題を解決するための手段】
【００２２】
上記課題を鑑み、本発明における情報処理方法は、管理者アカウントと、情報処理装置における処理の実行権限が管理者アカウントより限定されているユーザアカウントとが登録され、それぞれのアカウント実行部の処理プロセスにおいて処理を実行する情報処理装置おいて、マスターインストーラを起動した際にマスターインストーラに基づく処理を実現する情報処理方法であって、管理者アカウント実行部とユーザアカウント実行部との処理プロセスにおいて、プロセス間の通信を確保する確保工程と、前記管理者アカウント実行部が処理に応じたアカウントを判定する判定工程と、前記判定工程において、当該処理に応じたアカウントが前記ユーザアカウントであった場合、前記ユーザアカウント実行部の処理プロセスにおいて当該処理を実行するため、前記管理者アカウント実行部が前記確保工程で確保されたプロセス間の通信を利用して、当該処理を委譲する委譲工程と備えることを特徴とする。
【００２３】
また、本発明におけるプログラムは、上述の情報処理方法を提供するためのコンピュータにより実行可能なプログラムである。
【発明の効果】
【００２４】
本発明においては、情報処理装置においてマスターインストーラを実行する際の、インストール処理やプログラム起動などの処理を、処理ごとに適切に管理者アカウントとその他のアカウントを切換えて実行できる。
【００２５】
また、マスターインストーラを実行する際に、特定Ｗｅｂブラウザを起動するときには、管理者アカウントで起動することがないので、意図せずセキュリティの低い（外部からプログラムなどのインストールが自由に行える）モードでブラウザを起動することがない。
【００２６】
また、マスターインストーラを実行する際に、ログインアカウントで設定すべき処理と管理者アカウントで設定すべき処理を切換えるので、ユーザにとって適切な初期設定を、自分のログインアカウントの設定として反映することができる。
【発明を実施するための最良の形態】
【００２７】
（実施例１）
本発明に好適なマスターインストーラの実施例を説明する。マスターインストーラは複数のソフトウェアなどのインストール処理を一括で容易に行うためのプログラムである。主な処理はファイルを所定の位置にコピーし、レジストリの書き込みを行い、別のインストーラを起動することである。またファイルの削除や、外部プログラムの起動、常駐プログラムの起動を行う場合もある。更に、マスターインストーラにより提供される処理は、プリンタドライバとその周辺ソフトウェアのインストール、初期設定等の処理に加え、カスタマーサービスにおけるＷｅｂサービスなどのユーザ登録を行うためのブラウザ起動処理を含む。このＷｅｂブラウザを立ち上げて行う処理は、管理者権限で行う必要がない。
【００２８】
本実施例では管理者アカウント実行部で実行した場合と、一般のユーザアカウント実行部などで実行した場合で、各々、動作モードが異なる処理をマスターインストーラから実行した際の処理について説明する。
【００２９】
インストール処理とＷｅｂサービスなどにおけるユーザ登録を行うためのブラウザ起動の処理などとにおいて、処理を実行するアカウント実行部を切換えてそれぞれの処理を行う。具体的には、ブラウザ起動コマンドをログインアカウント処理コマンドとすることで、Ｗｅｂブラウザの起動をログインアカウントから行い、Ｗｅｂブラウザのセキュリティの高いモードを有効にした状態で実行できるようにする。
【００３０】
ここで、Ｗｅｂブラウザとして例えば、Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ  ７（ＩＥ７）などが挙げられる。
【００３１】
本実施例のマスターインストーラはインストール処理を処理コマンドとして定義し、これを逐次処理する。図３に本実施例で使用する処理コマンドを示す。これらの処理コマンドは、事前に処理内容、具体的には、ファイルコピー先やレジストリ書き込み先などを勘案し、管理者アカウントで処理すべき内容か、ログインアカウントで処理すべき内容か判断して設定しておくことができる。本実施例ではＷｅｂブラウザ起動処理のみログインアカウントで実行すべき処理であるから、ＣＭＤ１０１からＣＭＤ１０８を管理者アカウントとして処理すべきコマンドとし、ＣＭＤ２０１をログインアカウントとして処理すべきコマンドと定義づける。
【００３２】
本実施例における図３のようなコマンドなどの各種データを格納したマスターインストーラプログラムは、例えばＣＤ−ＲＯＭなどの記憶媒体に記憶され、プリンタ等の画像処理装置と共にユーザに提供される。そして、ユーザはこのＣＤ−ＲＯＭを情報処理装置にセットすることにより、マスターインストーラを起動することになる。ここで、マスターインストーラは、ネットワークなどを介して予めインターネットサイトなどから提供され、情報処理装置にダウンロードした状態で、起動されてもよい。
【００３３】
次に本実施例におけるマスターインストーラを実現するための情報処理装置（ＰＣなど）のハードウェア構成（図１）を説明する。
【００３４】
Ｈ０１は、情報処理装置において装置全体の制御を司る制御部（以後ＣＰＵと称する）である。Ｈ０２は各種データを入力するキーボード、Ｈ０３はＲＡＭ・Ｈ０５に貯えられている画像データを表示するカラー表示器である。Ｈ０４は装置全体を制御する制御手順およびその他の必要な情報をあらかじめ記憶するリードオンリーメモリ（ＲＯＭ）である。Ｈ０５はプログラムの実行、ならびにワークエリアとして利用されるランダムアクセスメモリ（ＲＡＭ）である。Ｈ０６は各種データの読み書きやプログラムが格納されているハードディスクドライブである。Ｈ０７はプリンタインターフェースであり、Ｈ０８はプリンタである。Ｈ０９はデータバスであり、各種データを転送するために用いられる。Ｈ１０はＣＤＲＯＭドライブである。ハードディスクドライブＨ０６やＣＤＲＯＭドライブＨ１０は総称して外部記憶装置（記憶媒体）と呼ばれ、アプリケーションプログラムやインストーラ、プリンタドライバなどが格納されている。これらの各種プログラムはＲＡＭ  Ｈ０５にロードされて、ＣＰＵ  Ｈ０１により制御される。
【００３５】
図２は、本実施例におけるマスターインストーラを実行した際の、情報処理装置における処理ステップに基づくフローチャートである。これら処理ステップは、情報処理装置のＣＰＵがプログラムを読み込み、実現される。
【００３６】
本実施例ではユーザアカウント実行部（以下、ログインアカウントインストーラ部）と管理者アカウント実行部（以下、管理者アカウントインストーラ部）の二つのインストーラから構成される。ユーザはログインアカウントで各種処理の実行指示を行う。この実施例において示す、ログインユーザアカウントとは、管理者アカウント以外のアカウントを示す。すなわち、ユーザは‘制限された’管理者アカウント（一般ユーザアカウント）としてログインし、ログインアカウントインストーラ部を起動する。
【００３７】
図２のＳ１１０１からＳ１１０６はログインアカウントインストーラ部のステップとなり、Ｓ１２０１からＳ１２１９は管理者アカウントインストーラ部のステップとなる。まずログインアカウントインストーラ部の処理を説明し、次に管理者アカウントインストーラ部の処理を説明する。
【００３８】
ログインアカウントインストーラ部は実行を開始するとＳ１１０１を実行する。Ｓ１１０１は管理者アカウントインストーラとのプロセス間で通信経路を確保する処理である。ここにおいて、各アカウントにおける処理プロセス間の通信を確保できる。本実施例ではプロセス間通信としてＷｉｎｄｏｗｓ（登録商標）  ＮＴオペレーティングシステムで用意された「名前付きパイプ（Ｎａｍｅｄ  Ｐｉｐｅ）」を用いる。言うまでもないが本発明はプロセス間通信としてどのような方法を用いても構わない。例えばメッセージキューやシグナル、共有メモリなどの方法を用いてもよい。
【００３９】
Ｓ１１０２は管理者アカウント起動処理である。ログインアカウントが一般ユーザアカウントなら、起動時に管理者アカウントのアカウント名とパスワードの入力が必要となる。例えば、ログインアカウントがマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）  Ｖｉｓｔａオペレーティングシステムにおける‘制限された’管理者アカウントなら、管理者アカウントとして実行してよいかの確認のみが必要となる。
【００４０】
Ｓ１１０３とＳ１１０４はログインアカウントインストーラ部のメインループとなる。Ｓ１１０３は管理者アカウントインストーラ部が終了したかどうかの判断処理である。ここではＳ１１０２で起動した管理者アカウントインストーラが終了したかどうかを判定するため、Ｓ１１０２で起動したときのプロセスから終了のシグナルが通知されたか否かを判定する。本実施例ではプロセスのシグナルを用いて判定しているが、本発明はプロセス間通信の方法にとらわれるものではない。例えばメッセージキューを用いても良いし、共有メモリを用いてもよい。管理者アカウントインストーラ部が終了したならログインアカウントインストーラ部も終了する。管理者アカウントインストーラが実行中ならＳ１１０４へ進む。Ｓ１１０４は管理者アカウントインストーラ部から処理依頼が来たかどうかの判断処理である。ここではＳ１１０１で確保した名前付きパイプを経由して処理すべき内容を受信する。その際、実行に必要なパラメータがあればこれも受信する。
【００４１】
Ｓ１１０５はＳ１１０４で受信した処理内容を実行する処理である。本実施例では外部プログラムであるＷｅｂブラウザを起動する。Ｓ１１０５はログインアカウントとして動作しているため、Ｗｅｂブラウザもログインアカウントとして起動し、動作する。Ｓ１１０６はＳ１１０５の処理結果を管理者アカウントインストーラ部へ返却する処理である。インストール結果の返却はＳ１１０１で確保したプロセス間通信経路を用いる。Ｓ１１０６の処理が完了したらＳ１１０３へ戻り、次に処理すべき内容に備えることになる。
【００４２】
次に管理者アカウントインストーラ部の説明を行う。
【００４３】
管理者アカウントインストーラ部はログインアカウントインストーラ部から実行されることを想定しているが、ログインアカウントインストーラ部を経由せず、直接起動されることも考慮している。
【００４４】
Ｓ１２０１はインストール処理コマンドを取得する処理である。本実施例ではインストール処理コマンドは外部ファイルに記述されているが、プログラム内部でこのような情報を保持してもよい。また明確にコマンドとして存在していなくても、異なる処理関数という形でプログラムとして実装しても構わない。
【００４５】
Ｓ１２０２はＳ１２０１で取得したインストール処理コマンドがブラウザ起動コマンドかどうか判断する処理である。ブラウザ起動コマンドならＳ１２１１へ進む。そうでなければＳ１２０３へ進む。
【００４６】
Ｓ１２０３はＳ１２０１で取得したインストール処理コマンドがインストーラ起動コマンドかどうか判断する処理である。インストーラ起動コマンドならＳ１２０４へ進む。そうでなければＳ１２０５へ進む。
【００４７】
Ｓ１２０４はインストーラ起動コマンドの指定に従いインストーラを起動し、インストール処理が完了するまで待つ処理である。インストール処理が完了したらＳ１２０５へ進む。
【００４８】
Ｓ１２０５はＳ１２０１で取得したインストール処理コマンドがファイルやディレクトリ操作コマンドか判定する処理である。ファイルやディレクトリ操作処理ならＳ１２０６へ進む。そうでなければＳ１２０７へ進む。Ｓ１２０６はファイルやディレクトリ操作コマンドの内容に従いファイル作成、削除、リネーム、ディレクトリ作成、削除、リネーム処理を行う。処理が完了したらＳ１２０７へ進む。Ｓ１２０７はＳ１２０１で取得したインストール処理コマンドがレジストリ操作コマンドか判断する。レジストリ操作コマンドならＳ１２０８へ進む。そうでなければＳ１２１６へ進む。Ｓ１２０８はレジストリ操作コマンドの内容に従い、レジストリ書込み、削除を行う。処理が完了したらＳ１２１６へ進む。
【００４９】
Ｓ１２１１は管理者アカウントでブラウザを起動してよいか確認する処理である。具体的には情報処理装置における実行ＯＳと起動されるＷｅｂブラウザの名称とバージョン番号をチェックする。予め登録されている特定のＯＳやＷｅｂブラウザであった場合は、ログインアカウントで起動すべきブラウザであると判断する。ここで、特定のＯＳやＷｅｂブラウザは、マスターインストーラプログラムを格納したＣＤ−ＲＯＭなど、情報処理装置のＣＰＵがアクセス可能な記憶領域に予め登録されているものとする。
【００５０】
ログインアカウントで起動すべきと判断した場合はＳ１２１２へ進む。そうでなければ管理者アカウントで起動してよいと判断する。管理者アカウントで起動してよいと判断した場合はＳ１２１３へ進む。本実施例では例えば、実行ＯＳとしてマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）  ＶｉｓｔａでＷｅｂブラウザとしてＩＥ７がデフォルトのブラウザであった場合、ログインアカウントでＷｅｂブラウザを起動するべきであると判断する。
【００５１】
Ｓ１２１２はプロセス間通信経路が確保されているか確認する処理である。管理者アカウントインストーラ部が直接起動された場合はプロセス間通信経路がない。この場合でも正常に動作させるためである。プロセス間通信経路が確保されていればＳ１２１４へ進む。確保されていなければＳ１２１３へ進む。Ｓ１２１３は外部プログラムであるＷｅｂブラウザを起動する。Ｓ１２１３は管理者アカウントで実行するため、Ｗｅｂブラウザも管理者アカウントで実行することになる。Ｗｅｂブラウザを実行したらＳ１２０３へ進む。Ｓ１２１４はＷｅｂブラウザの起動処理をログインアカウントインストーラ部へ通知する処理である。処理の通知はプロセス間通信を用いる。Ｓ１２１５はログインアカウントインストーラ部からの処理結果通知を受信する処理である。結果を受信したらＳ１２１６へ進む。
【００５２】
Ｓ１２１６はインストール処理でエラーが発生したかどうか判断する。エラーが発生していればＳ１２１７へ進む。発生していなければＳ１２１８へ進む。Ｓ１２１７はインストールエラー表示を行う処理である。エラー表示後管理者アカウントインストーラ部を終了する。Ｓ１２１８は全てのインストール処理コマンドの実行が完了したかどうか判断する。全てのインストール処理コマンドの実行が完了すれば管理者アカウントインストーラ部を終了する。そうでなければＳ１２０１へ戻る。
【００５３】
最後に本マスターインストーラから起動されるＷｅｂブラウザの処理フローを説明する。例えば、ＩＥ７などのブラウザは保護モードというセキュリティ機構を持つが、これはログインアカウントで実行したときのみ有効となる。そこでこの機能を有効にするため、本実施例ではＷｅｂブラウザがログインアカウントインストーラ部のＳ１１０５から実行される。つまりログインアカウントとしてプログラムは実行されることとなる。図４がＷｅｂブラウザにおける主な処理を示すフローチャートである。実際のＷｅｂブラウザはもっと複雑だが、本実施例として関係ある部分にしぼって記述したものである。
【００５４】
Ｓ１３０１はＷｅｂブラウザが管理者アカウントで実行しているか判定する処理である。管理者アカウントで実行しているならＳ１３０２へ進む。管理者アカウントで実行していないならＳ１３０３へ進む。本実施例ではログインアカウントインストーラ部から起動されるため管理者アカウントで実行していないと判断される。Ｓ１３０２は内部の保護モードフラグを無効にする処理である。次にＳ１３０４へ進む。Ｓ１３０３は内部の保護モードフラグを有効にする処理である。次にＳ１３０４へ進む。Ｓ１３０４はデフォルトのホームページを表示する処理である。Ｓ１３０５以後がメインループである。Ｓ１３０５はキーボードやマウスなどのユーザ入力を取得する処理である。Ｓ１３０６はＳ１３０５で入力されたものがＵＲＬかどうか判断する処理である。ＵＲＬが入力されたらＳ１３１１へ進む。ＵＲＬの入力でなければＳ１３０７へ進む。Ｓ１３０７は入力されたものがマウスクリックでリンク先がクリックされたかどうか判断する処理である。リンク先がクリックされたらＳ１３１１へ進む。リンク先のクリックで無ければＳ１３０８へ進む。Ｓ１３０８はＳ１３０５で入力されたものがプログラムの終了の指示かどうか判断する処理である。プログラムの終了指示ならウェブブラウザは終了する。終了指示でなければＳ１３０５へ戻る。
【００５５】
Ｓ１３１１はＵＲＬがＨＴＭＬファイルを指示しているか判定する処理である。ＨＴＭＬファイルを指示している場合はＳ１３１２へ進む。ＨＴＭＬファイルでなければＳ１３２１へ進む。Ｓ１３１２はＵＲＬ先のＨＴＭＬファイル（ページ）をダウンロードする。Ｓ１３１３はダウンロードしたＨＴＭＬ（ページ）を画面表示する。表示が完了したらＳ１３０５へ戻る。
【００５６】
Ｓ１３２１はＵＲＬが実行ファイルを指示しているか判定する処理である。実行ファイルを指示している場合はＳ１３２２へ進む。実行ファイルでなければＳ１３３１へ進む。Ｓ１３２２は内部保護モードフラグが有効になっているか、無効になっているか判断する処理である。保護モードフラグが有効ならＳ１３２３へ進む。保護モードフラグが無効ならＳ１３２６へ進む。Ｓ１３２３は実行許可確認画面の表示処理である。Ｓ１３２４は実行確認の入力待ち処理である。Ｓ１３２５はＳ１３２４の入力結果の判断処理である。実行許可が指示されたらＳ１３２６へ進む。実行許可が指示されなかったらＳ１３０５へ戻る。Ｓ１３２６はＵＲＬで指示された実行ファイルをダウンロードする処理である。Ｓ１３２７はＳ１３２６でダウンロードしたファイルを実行する処理である。実行が完了したらＳ１３０５へ戻る。
【００５７】
Ｓ１３３１はＵＲＬが外部プログラムファイルを用いて開くファイルかどうか判定する処理である。例えば拡張子がＤＯＣであればマイクロソフト社のＭＳ  ＷＯＲＤが外部プログラムとなる。外部プログラムが必要ならＳ１３３２へ進む。外部プログラムが不要なファイルであればＳ１３０５へ戻る。Ｓ１３３２は内部保護モードフラグが有効になっているか、無効になっているか判断する処理である。保護モードフラグが有効ならＳ１３３３へ進む。保護モードフラグが無効ならＳ１３３６へ進む。Ｓ１３３３は実行許可確認画面の表示処理である。Ｓ１３３４は実行確認の入力待ち処理である。Ｓ１３３５はＳ１３３４の入力結果の判断処理である。実行許可が指示されたらＳ１３３６へ進む。実行許可が指示されなかったらＳ１３０５へ戻る。Ｓ１３３６はＵＲＬで指示されたファイルをダウンロードする処理である。Ｓ１３３７はＳ１３３６でダウンロードしたファイルに対応した外部プログラムを起動し、ダウンロードしたファイルを開く処理である。外部アプリが起動し、ファイルが開けばＳ１３０５へ戻る。
【００５８】
以上、上記の実施例では、マスターインストーラから複数のソフトウェアをインストールする際、起動する処理がどういった処理であるかを判断する。そして、ブラウザの起動の場合、情報処理装置のＯＳ、デフォルトブラウザが予め登録されている、ユーザアカウントで起動すべきものであるかを判断する。これらの処理によって、ユーザの手間をかけることなく、必要に応じてＷｅｂブラウザをセキュリティの高いモードで実行することが可能となる。
【００５９】
（実施例２）
さらに別のマスターインストーラの実施例を説明する。この本実施例では印刷と画像スキャンが可能な複合機などの画像形成装置のセットアップを行うマスターインストーラを対象とする。
【００６０】
本実施例ではログインアカウントが一般ユーザアカウントである場合において、一般ユーザアカウントと管理者アカウントで別々に管理された情報を使う場合に発生する問題を回避するための例を示す。本実施例のマスターインストーラは、インストール処理を処理コマンドとして定義し、これを逐次処理する。その際、処理内容に応じて動的にログインアカウントで処理すべきか、管理者アカウントで処理すべきかを判定する。その結果、本実施例では任意のコマンドをログインアカウントで実行することが可能となり、実施例１で示したＷｅｂブラウザだけでなく、常駐プログラムもログインアカウントとして実行することが可能となる。本実施例では、常駐プログラムとしてスキャンデータ保存プログラムを説明する。
【００６１】
図７に本実施例のインストールコマンドを説明する。図３と異なり、事前にどちらのアカウントで処理すべきかを示すフラグは存在しない。
【００６２】
実施例２のハードウェア構成は、実施例１のそれと同じであるため説明は省略する。
【００６３】
図５は、本実施例におけるマスターインストーラを実行した際の、情報処理装置における処理ステップに基づくフローチャートである。これら処理ステップは、情報処理装置のＣＰＵがプログラムを読み込み、そして実現される。本実施例では、ログインアカウントインストーラ部と管理者アカウントインストーラ部の二つのインストーラから構成され、ユーザはログインアカウントインストーラ部を実行する。図５のＳ２１０１からＳ２１１５はログインアカウントインストーラ部のステップとなり、Ｓ２２０１からＳ２２２１は管理者アカウントインストーラ部のステップとなる。まずログインアカウントインストーラ部の処理を説明し、次に管理者アカウントインストーラ部の処理を説明する。
【００６４】
ログインアカウントインストーラ部は実行を開始するとＳ２１０１を実行する。Ｓ２１０１は管理者アカウントインストーラとのプロセス間通信経路を確保する処理である。本実施例では、例えばプロセス間通信としてＷｉｎｄｏｗｓ（登録商標）  ＮＴオペレーティングシステムで用意された「名前付きパイプ」を用いる。
【００６５】
Ｓ２１０２は管理者アカウント起動処理である。起動の際、必要なら管理者アカウントのアカウント名とパスワードの入力が必要となる。
【００６６】
Ｓ２１０３とＳ２１０４はログインアカウントインストーラ部のメインループとなる。Ｓ２１０３は管理者アカウントインストーラ部が終了したかどうかの判断処理である。ここではＳ２１０２で起動した管理者アカウントインストーラが終了したかどうかを判定するためＳ２１０２で起動したときのプロセスから終了のシグナルが通知されたか判定する。管理者アカウントインストーラ部が終了したならログインアカウントインストーラ部も終了する。管理者アカウントインストーラが実行中ならＳ２１０４へ進む。Ｓ２１０４は管理者アカウントインストーラ部からインストール処理コマンドが来たかどうかの判断処理である。ここではＳ２１０１で確保した名前付きパイプを経由して処理すべき内容を受信する。その際実行に必要なパラメータがあればこれも受信する。Ｓ２１０５はＳ２１０４で受信したインストール処理コマンドがブラウザ起動コマンドかどうか判断する。ブラウザ起動コマンドならＳ２１０６へ進む。そうでなければＳ２１０７へ進む。Ｓ２１０６は外部プログラムであるＷｅｂブラウザを起動する。
【００６７】
Ｓ２１０７はＳ２１０４で取得したインストール処理コマンドがファイルやディレクトリ操作コマンドか判定する処理である。ファイルやディレクトリ操作処理ならＳ２１０８へ進む。そうでなければＳ２１０９へ進む。Ｓ２１０８はファイルやディレクトリ操作コマンドの内容に従いファイル作成、削除、リネーム、ディレクトリ作成、削除、リネーム処理を行う。処理が完了したらＳ２１０９へ進む。Ｓ２１０９はＳ２１０４で取得したインストール処理コマンドがレジストリ操作コマンドか判断する。レジストリ操作コマンドならＳ２１１０へ進む。そうでなければＳ２１１１へ進む。Ｓ２１１０はレジストリ操作コマンドの内容に従い、レジストリ書込み、削除を行う。処理が完了したらＳ２１１１へ進む。Ｓ２１１１はＳ２１０４で取得したインストール処理コマンドがプログラム常駐起動コマンドかどうか判断する。プログラム常駐起動コマンドならＳ２１１２へ進む。そうでなければＳ２１１３へ進む。Ｓ２１１２はプログラム常駐起動コマンドに従い、外部プログラムを起動する。常駐起動を行うため、起動された外部プログラムが終了するのを待つ必要はない。外部プログラムの起動が完了したらＳ２１１３へ進む。Ｓ２１１３はＳ２１０４で取得したインストール処理コマンドがデフォルトプリンタ設定処理かどうか判断する。デフォルトプリンタ設定処理ならＳ２１１４へ進む。そうでなければＳ２１１５へ進む。Ｓ２１１４は通常使うプリンタの設定を変更する処理である。ここでインストールしたプリンタを通常使うプリンタに設定する。これらＳ２１０５からＳ２１１４までの処理はログインアカウントとして処理を行うことになる。
【００６８】
Ｓ２１１５は処理結果を管理者アカウントインストーラ部へ送信する処理である。送信が完了したらＳ２１０３へ戻る。
【００６９】
次に管理者アカウントインストーラ部の説明を行う。
【００７０】
Ｓ２２０１はインストール処理コマンドを取得する処理である。本実施例ではインストール処理コマンドは外部ファイルに記述されているが、プログラム内部でこのような情報を保持してもよい。また明確にコマンドとして存在していなくても、異なる処理関数という形でプログラムとして実装しても構わない。
【００７１】
Ｓ２２０２はＳ２２０１で取得したインストール処理コマンドがブラウザ起動コマンドかどうか判断する処理である。ブラウザ起動コマンドならＳ２２０３へ進む。そうでなければＳ２２０５へ進む。
【００７２】
Ｓ２２０３は管理者アカウントでＷｅｂブラウザを起動してよいか確認する処理である。具体的には、実行ＯＳと起動されるＷｅｂブラウザの名称とバージョン番号が、予めログインアカウントで起動すべきものであるとして記憶されているものであるか否かをチェックする。ログインアカウントで起動すべきと判断した場合はＳ２２１７へ進む。そうでなければ管理者アカウントで起動してよいと判断する。管理者アカウントで起動してよいと判断した場合はＳ２２０４へ進む。本実施例では実行ＯＳとしてマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）  Ｖｉｓｔａ、ＷｅｂブラウザとしてＩＥ７がデフォルトのブラウザの場合、ログインアカウントでＷｅｂブラウザを起動するべきと判断する。
【００７３】
Ｓ２２０４は外部プログラムであるＷｅｂブラウザを起動する処理である。
【００７４】
Ｓ２２０５はＳ２２０１で取得したインストール処理コマンドがファイル・ディレクトリ操作コマンドかどうか判断する処理である。ファイル・ディレクトリ操作コマンドならＳ２２０６へ進む。そうでなければＳ２２０８へ進む。
【００７５】
Ｓ２２０６はファイル・ディレクトリ操作の対象がシステム領域かどうかを、例えばファイル操作であれば、ファイルパスなどのパスを元に判断する処理である。本実施例ではアプリケーションインタフェース（ＡＰＩ）で取得したシステムに関するディレクトリに含まれるかどうかで判断する。例えばＵＮＩＸ（登録商標）オペレーティングシステムであれば、ｒｏｏｔアカウントのみ書き込み権限のあるディレクトリに含まれているかどうか判定すればよい。ここで、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）  ＮＴオペレーティングシステムでも同様に管理者グループのみ書き込み権限があるかどうか判断することは可能である。しかし、古いファイルシステム（例えばＦＡＴ３２）では権限の設定保存ができないため、完全にチェックすることができないのでＡＰＩによる判断のほうが望ましい。システム領域への書き込みと判断した場合はＳ２２０７へ進む。システム領域への書き込みでないと判断した場合はＳ２２１７へ進む。Ｓ２２０７はＳ２２０１で取得したコマンドに従いファイル・ディレクトリ操作を実行する処理である。
【００７６】
Ｓ２２０８はＳ２２０１で取得したインストール処理コマンドがレジストリ操作コマンドかどうか判断する処理である。レジストリ操作コマンドならＳ２２０９へ進む。そうでなければＳ２２１１へ進む。Ｓ２２０９はレジストリ操作の対象がシステム領域かどうか判断する処理である。本実施例ではレジストリパスがＨＥＫＹ＿ＣＵＲＲＥＮＴ＿ＵＳＥＲ以外をシステム領域と判断する。システム領域への操作と判断した場合はＳ２２１０へ進む。システム領域への操作ではないと判断した場合はＳ２２１７へ進む。Ｓ２２１０はＳ２２０１で取得したコマンドに従い、レジストリ操作を実行する処理である。
【００７７】
Ｓ２２１１はＳ２２０１で取得したインストール処理コマンドがプログラム常駐起動コマンドかどうか判断する処理である。プログラム常駐起動コマンドならＳ２２１２へ進む。そうでなければＳ２２１４へ進む。Ｓ２２１２は常駐プログラムがログインアカウントで常駐するプログラムかどうかの判断処理である。常駐プログラムが予めログインアカウントとして常駐すべきプログラムとして登録されているか否かを判断する。一方、サービスとして登録されたものは管理者アカウントとして常駐するプログラムと判断する。
【００７８】
ここで、本実施例では、予めログインアカウントにより常駐すべきプログラムとして、アカウント毎に決められた起動時実行フォルダに、例えばレジストリに起動時実行プログラムとして予め登録されている。
【００７９】
また、サービスとはマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムにおける常駐プログラムの一形態である。ＵＮＩＸ（登録商標）オペレーティングシステムにおけるデーモン（Ｄａｅｍｏｎ）に相当する。
【００８０】
ログインアカウントで常駐するプログラムと判断したらＳ２２１７へ進む。そうでなければＳ２２１３へ進む。Ｓ２２１３はサービスプログラムを開始する処理である。
【００８１】
Ｓ２２１４はＳ２２０１で取得したインストール処理コマンドがデフォルトプリンタ設定コマンドかどうか判断する処理である。デフォルトプリンタ設定コマンドならＳ２２１７へ進む。そうでなければＳ２２１５へ進む。
【００８２】
Ｓ２２１５はＳ２２０１で取得したインストール処理コマンドがインストーラ起動処理かどうか判断する処理である。インストーラ起動処理ならＳ２２１６へ進み、そうでなければＳ２２１９へ進む。
【００８３】
Ｓ２２１７はＳ２２０１で取得したインストール処理コマンドをログインアカウントインストーラ部へ通知する処理である。Ｓ２２１８へログインアカウントインストーラ部から処理結果を受信する処理である。受信が完了したらＳ２２１９へ進む。
【００８４】
Ｓ２２１９はインストール処理でエラーが発生したかどうか判断する処理である。エラーが発生すればＳ２２２０へ進む。そうでなければＳ２２２１へ進む。Ｓ２２２０はインストールエラー表示を行う。エラー表示後管理者アカウントインストーラ部は終了する。Ｓ２２２１は全てのインストール処理コマンドを実行したかどうか判断する処理である。全てのインストール処理コマンドを実行したら管理者アカウントインストーラ部は終了する。そうでなければＳ２２０１へ戻る。
【００８５】
最後にログインアカウントインストーラ部から実行されるプログラムとしてスキャンデータ保存プログラムとデフォルトプリンタプログラムの詳細を説明する。
【００８６】
スキャンデータ保存プログラムは常駐プログラムとして動作し、スキャナから受信した画像データを画像フォルダに保存するプログラムである。例えば、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムでは「マイピクチャ」と呼ばれるユーザごとの画像保存フォルダが決められている。スキャンデータ保存プログラムも、このフォルダへ画像データを保存するのが望ましいが、管理者アカウントでスキャンデータ保存プログラムを実行すると管理者アカウントのマイピクチャフォルダへ保存することになる。しかし、本発明を用いることでログインアカウントのマイピクチャフォルダへ画像データを保存することが可能となる。
【００８７】
図６は本実施例における、情報処理装置のＣＰＵにおいて実現される処理のためのスキャンデータ保存プログラムに基づくフローチャートを示す。
【００８８】
Ｓ２３０１はユーザ入力部である。スキャンデータ保存プログラムは常駐プログラムなのでユーザ入力として指示するのはプログラム終了のみとなる。
【００８９】
Ｓ２３０２はユーザ入力がプログラム終了指示かどうか判断する。プログラム終了指示なら終了する。そうでなければＳ２３０３へ進む。
【００９０】
Ｓ２３０３はデバイスからのスキャン開始指示の受信処理である。
【００９１】
Ｓ２３０４はＳ２３０３でスキャン開始指示を受信したか判断する。開始指示を受信したらＳ２３０５へ進む。そうでなければＳ２３０１へ戻る。Ｓ２３０５はスキャンデータ受信処理である。
【００９２】
Ｓ２３０６はスキャンデータ保存先取得処理である。ここでスキャンデータ保存プログラムが属するアカウントの画像保存フォルダ（マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムにおける「マイピクチャ」フォルダ）のディレクトリを取得する。本実施例ではスキャンデータ保存プログラムはログインアカウントインストーラ部から実行されるため、ログインアカウントの画像保存フォルダが保存先ディレクトリとなる。
【００９３】
Ｓ２３０７はスキャンデータファイル名決定処理である。本実施例ではファイル名は日付と時間を用いてＹＹＹＹＭＭＤＤ−ｈｈｍｍｓｓ．ＪＰＥＧとなる。ＹＹＹＹは４桁の西暦、ＭＭは２桁の月、ＤＤは２桁の日、ｈｈは２桁の時、ｍｍは２桁の分、ｓｓは２桁の秒となる。
【００９４】
Ｓ２３０８はスキャンデータ保存処理である。Ｓ２３０５で受信した画像データをＳ２３０６とＳ２３０７で決まったパスに保存する。保存処理が完了したらＳ２３０１へ戻る。
【００９５】
本実施例においては、マスターインストーラを実行する際に、管理者アカウントで実行する処理と一般ユーザアカウントで実行する他の処理（Ｗｅｂブラウザや常駐プログラムの一部）とを切換える。このアカウントの切換えを適宜行うことにより、適切にセキュリティの高いモードでのＷｅｂブラウザの起動を行いつつ、ユーザに対する適切な設定処理（通常用いるデフォルトプリンタの設定など）やデータの保存を可能とする。
【００９６】
また、適するフォルダにスキャン画像を保存することができる。
【００９７】
（実施例３）
先の二つの実施例はマスターインストーラをログインアカウントインストーラ部と管理者アカウントインストーラ部に分け、管理者アカウントインストーラ部が処理を振り分けていた。本実施例ではログインアカウントが一般ユーザカウントの場合において、ログインアカウントインストーラ部が処理を振り分けるものである。つまりログインアカウントインストーラ部でインストール処理中に管理者アカウントで実行するべき処理内容があれば管理者アカウントインストーラ部へ処理を委譲する。
【００９８】
本実施例におけるインストールコマンドは実施例２のそれと同じであるため説明は省略する。
【００９９】
本実施例のハードウェア構成は実施例１のそれと同じであるため説明は省略する。
【０１００】
図８は、本実施例におけるマスターインストーラを実行した際の、情報処理装置における処理ステップに基づくフローチャートである。これら処理ステップは、情報処理装置のＣＰＵがプログラムを読み込み、そして実現される。まずログインアカウントインストーラ部の処理を説明する。
【０１０１】
Ｓ３１０１はプロセス間通信経路の確保処理である。Ｓ３１０２は管理者アカウントインストーラ部の起動処理である。Ｓ３１０３はインストール処理コマンドを取得する処理である。本実施例ではインストール処理コマンドは外部ファイルに記述されているが、プログラム内部でこのような情報を保持してもよい。また明確にコマンドとして存在していなくても、異なる処理関数という形でプログラムとして実装しても構わない。
【０１０２】
Ｓ３１０４はＳ３１０３で取得したインストール処理コマンドがブラウザ起動コマンドかどうか判断する処理である。ブラウザ起動コマンドならＳ３１０５へ進む。そうでなければＳ３１０７へ進む。Ｓ３１０５は管理者アカウントでＷｅｂブラウザを起動してよいか確認する処理である。具体的には実行ＯＳと起動されるＷｅｂブラウザの名称とバージョン番号をチェックする。本実施例では実行ＯＳとしてマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）  Ｖｉｓｔａで、ＷｅｂブラウザとしてＩＥ７がデフォルトのブラウザの場合、ログインアカウントでＷｅｂブラウザを起動するべきと判断することになる。そうでなければ管理者アカウントで起動してよいと判断する。管理者アカウントで起動してよいと判断した場合はＳ３１１９へ進む。ログインアカウントで起動すべきと判断した場合はＳ３１０６へ進む。Ｓ３１０６は外部プログラムであるＷｅｂブラウザを起動する処理である。
【０１０３】
Ｓ３１０７はＳ３１０３で取得したインストール処理コマンドがファイル・ディレクトリ操作コマンドかどうか判断する処理である。ファイル・ディレクトリ操作コマンドならＳ３１０８へ進む。そうでなければＳ３１１０へ進む。Ｓ３１０８はファイル・ディレクトリ操作の対象がシステム領域かどうか判断する処理である。本実施例ではアプリケーションインタフェース（ＡＰＩ）で取得したシステムに関するディレクトリに含まれるかどうかで判断する。例えばＵＮＩＸ（登録商標）オペレーティングシステムであれば、ｒｏｏｔアカウントのみ書き込み権限のあるディレクトリに含まれているかどうか判定すればよい。マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）  ＮＴオペレーティングシステムでも同様に管理者グループのみ書き込み権限があるかどうか判断することは可能である。しかしながら、古いファイルシステム（例えばＦＡＴ３２）では権限の設定保存ができないため、完全にチェックすることができないのでＡＰＩによる判断のほうが望ましい。システム領域への書き込みと判断した場合はＳ３１１９へ進む。システム領域への書き込みでないと判断した場合はＳ３１０９へ進む。Ｓ３１０９はＳ３１０３で取得したコマンドに従いファイル・ディレクトリ操作を実行する処理である。
【０１０４】
Ｓ３１１０はＳ３１０３で取得したインストール処理コマンドがレジストリ操作コマンドかどうか判断する処理である。レジストリ操作コマンドならＳ３１１１へ進む。そうでなければＳ３１１３へ進む。Ｓ３１１１はレジストリ操作の対象がシステム領域かどうか判断する処理である。本実施例ではレジストリパスがＨＥＫＹ＿ＣＵＲＲＥＮＴ＿ＵＳＥＲ以外をシステム領域と判断する。システム領域への操作と判断した場合はＳ３１１９へ進む。システム領域への操作ではないと判断した場合はＳ３１１２へ進む。Ｓ３１１２はＳ３１０３で取得したコマンドに従い、レジストリ操作を実行する処理である。
【０１０５】
Ｓ３１１３はＳ３１０３で取得したインストール処理コマンドがプログラム常駐起動コマンドかどうか判断する処理である。プログラム常駐起動コマンドならＳ３１１４へ進む。そうでなければＳ３１１６へ進む。Ｓ３１１４は常駐プログラムがログインアカウントで常駐するプログラムかどうかの判断処理である。常駐プログラムが、アカウント毎に決められた起動時実行フォルダに含まれているプログラムか、レジストリに起動時実行プログラムとして登録されていれば、ログインアカウントで常駐するプログラムと判断する。一方サービスとして登録されたものは管理者アカウントとして常駐するプログラムと判断する。サービスとはマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムにおける常駐プログラムの一形態である。ＵＮＩＸ（登録商標）オペレーティングシステムにおけるデーモン（Ｄａｅｍｏｎ）に相当する。ログインアカウントで常駐するプログラムと判断したらＳ３１１９へ進む。そうでなければＳ３１１５へ進む。Ｓ３１１５は常駐プログラムを起動する処理である。
【０１０６】
Ｓ３１１６はＳ３１０３で取得したインストール処理コマンドがデフォルトプリンタ設定コマンドかどうか判断する処理である。デフォルトプリンタ設定コマンドならＳ３１１７へ進む。そうでなければＳ３１１８へ進む。Ｓ３１１７は通常使うプリンタの設定処理である。ログインアカウントの通常使うプリンタをＳ３１０３で取得したコマンドで指定されたプリンタに設定する。
【０１０７】
Ｓ３１１８はＳ３１０３で取得したインストール処理コマンドがインストーラ起動処理かどうか判断する処理である。インストーラ起動処理ならＳＳ３１１９へ進み、そうでなければＳ３１２１へ進む。
【０１０８】
Ｓ３１１９はＳ３１０３で取得したインストール処理コマンドを管理者アカウントインストーラ部へ通知する処理である。Ｓ３１２０はログインアカウントインストーラ部から処理結果を受信する処理である。受信が完了したらＳ３１２１へ進む。
【０１０９】
Ｓ３１２１はインストール処理でエラーが発生したかどうか判断する処理である。エラーが発生すればＳ３１２２へ進む。そうでなければＳ３１２３へ進む。Ｓ３１２２はインストールエラー表示を行う。エラー表示後ログインアカウントインストーラ部は終了する。Ｓ３１２３は全てのインストール処理コマンドを実行したかどうか判断する処理である。全てのインストール処理コマンドを実行したらログインアカウントインストーラ部は終了する。そうでなければＳ３１０１へ戻る。
【０１１０】
次に管理者アカウントインストーラ部のフローチャートを説明する。ログインアカウントインストーラ部は実行を開始するとＳ３２０１を実行する。Ｓ３２０１とＳ３２０２は管理者アカウントインストーラ部のメインループとなる。Ｓ３２０１はログインアカウントインストーラ部が終了したかどうかの判断処理である。ログインアカウントインストーラ部が終了したなら管理者アカウントインストーラ部も終了する。ログインアカウントインストーラが実行中ならＳ３２０２へ進む。Ｓ３２０２はログインアカウントインストーラ部からインストール処理コマンドが来たかどうかの判断処理である。ここではＳ３１０１で確保した名前付きパイプを経由して処理すべき内容を受信する。その際実行に必要なパラメータがあればこれも受信する。Ｓ３２０３はＳ３２０２で受信したインストール処理コマンドがブラウザ起動コマンドかどうか判断する。ブラウザ起動コマンドならＳ３２０４へ進む。そうでなければＳ３２０５へ進む。Ｓ３２０４は外部プログラムであるＷｅｂブラウザを起動する。Ｓ３２０５はＳ３２０２で取得したインストール処理コマンドがファイルやディレクトリ操作コマンドか判定する処理である。ファイルやディレクトリ操作処理ならＳ３２０６へ進む。そうでなければＳ３２０７へ進む。Ｓ３０６はファイルやディレクトリ操作コマンドの内容に従いファイル作成、削除、リネーム、ディレクトリ作成、削除、リネーム処理を行う。処理が完了したらＳ３２０７へ進む。Ｓ３２０７はＳ３２０２で取得したインストール処理コマンドがレジストリ操作コマンドか判断する。レジストリ操作コマンドならＳ３２０８へ進む。そうでなければＳ３２０９へ進む。Ｓ３２０８はレジストリ操作コマンドの内容に従い、レジストリ書込み、削除を行う。処理が完了したらＳ３２０９へ進む。Ｓ３２０９はＳ３２０２で取得したインストール処理コマンドがプログラム常駐起動コマンドかどうか判断する。プログラム常駐起動コマンドならＳ３２１０へ進む。そうでなければＳ３２１１へ進む。Ｓ３２１０はプログラム常駐起動コマンドに従い、外部プログラムを起動する。常駐起動を行うため、起動された外部プログラムが終了するのを待つ必要はない。外部プログラムの起動が完了したらＳ３２１１へ進む。Ｓ３２１１はＳ３２０２で取得したインストール処理コマンドがインストーラ起動コマンドかどうか判断する。インストーラ起動コマンドならＳ３２１２へ進む。そうでなければＳ３２１３へ進む。Ｓ３２１２は外部プログラムであるインストーラを起動する処理である。インストーラが終了したらＳ３２１３へ進む。これらＳ３２０１からＳ３２１２までの処理は管理者アカウントとして処理を行うことになる。Ｓ３２１３は処理結果をログインアカウントインストーラ部へ送信する処理である。送信が完了したらＳ３２０１へ戻る。
【０１１１】
本実施例においては、管理者アカウントで実行する処理と一般ユーザアカウントで実行する他の処理（Ｗｅｂブラウザや常駐プログラムの一部）とを切換える。これにより、適切にセキュリティの高いモードでのＷｅｂブラウザの起動を行いつつ、ユーザに対する適切な設定処理やデータの保存を、アカウントの切換えを適宜行うことにより可能とする。
【０１１２】
［他の実施の形態］
以上、様々な実施形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。例えば、プリンタ、ファクシミリ、ＰＣ、サーバとクライアントとを含むコンピュータシステムなどの如くである。
【０１１３】
本発明は、前述した実施形態の各機能を実現するソフトウェアプログラムを、システム若しくは装置に対して直接または遠隔から供給し、そのシステム等に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
【０１１４】
従って、本発明の機能・処理をコンピュータで実現するために、情報処理装置にインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の一つである。
【０１１５】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１１６】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、記録媒体としては、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１１７】
また、プログラムは、クライアントの情報処理装置のブラウザを用いてインターネットのホームページからダウンロードしてもよい。すなわち、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードしてもよいのである。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明の構成要件となる場合がある。
【０１１８】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布してもよい。この場合、所定条件をクリアしたユーザにのみ、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報で暗号化されたプログラムを復号して実行し、プログラムを情報処理装置にインストールしてもよい。
【０１１９】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現されてもよい。なお、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ってもよい。もちろん、この場合も、前述した実施形態の機能が実現され得る。
【０１２０】
さらに、記録媒体から読み出されたプログラムが、情報処理装置に挿入された機能拡張ボードや情報処理装置に接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ってもよい。このようにして、前述した実施形態の機能が実現されることもある。
【図面の簡単な説明】
【０１２１】
【図１】本発明における、情報処理装置のハードウェア構成図を示す図である。
【図２】実施例１における、マスターインストーラを実行した際の、情報処理装置における処理ステップに基づくフローチャートを示す図である。
【図３】実施例１におけるコマンド分類表の一例を示す図である。
【図４】実施例１における、情報処理装置において実行されるウェブブラウザの処理ステップに基づくフローチャートを示す図である。
【図５】実施例２における、マスターインストーラを実行した際の、情報処理装置における処理ステップに基づくフローチャートを示す図である。
【図６】実施例２における、情報処理装置において実現されるスキャンデータ保存処理ステップに基づくフローチャートを示す図である。
【図７】実施例２におけるコマンド分類表の一例を示す図である。
【図８】実施例３における、マスターインストーラを実行した際の、情報処理装置における処理ステップに基づくフローチャートを示す図である。
【符号の説明】
【０１２２】
Ｈ０１  ＣＰＵ
Ｈ０４  ＲＯＭ
Ｈ０５  ＲＡＭ
Ｈ０８  プリンタ
Ｈ１０  ＣＤＲＯＭドライブ
【図１】
2008310424.tif 000003
【図２】
2008310424.tif 000004
【図３】
2008310424.tif 000005
【図４】
2008310424.tif 000006
【図５】
2008310424.tif 000007
【図６】
2008310424.tif 000008
【図７】
2008310424.tif 000009
【図８】
2008310424.tif 000010