(57)【要約】【課題】  複数の工程から構成され、かつ工程間に画像形成装置の再起動を含むような一連のソフトウェア設定作業を、少ない認証回数で効率的に実施するための技術を提供することを目的とする。【解決手段】  可搬記憶媒体から取得した実行対象スクリプトの設置作業に関する複数の工程からなる処理のうち、最初の工程の処理が実行済みであるかを判定し、最初の工程の処理が実行済みでないと判定された場合は、ユーザー認証を行い、実行対象スクリプトの複数の工程からなる処理のうち、１つの工程の処理を実行し、前記処理を実行後、再起動を行う。最初の工程の処理が実行済みであると判定された場合は、ユーザー認証は行わない。【選択図】  図１０
2016009454.tif 000002
【特許請求の範囲】
【請求項１】
複数の工程から構成される一連の設置作業を行う画像形成装置であって、
可搬記憶媒体から取得した実行対象スクリプトの設置作業に関する複数の工程からなる処理のうち、最初の工程の処理が実行済みであるかを判定する判定手段と、
前記判定手段で、最初の工程の処理が実行済みでないと判定された場合は、ユーザー認証を行うユーザー認証手段と、
前記実行対象スクリプトの複数の工程からなる処理のうち、１つの工程の処理を実行する実行手段と、
前記実行手段で、前記処理を実行後、再起動を行う再起動手段を有し、
前記判定手段で、最初の工程の処理が実行済みであると判定された場合は、ユーザー認証は行わないことを特徴とする画像形成装置。
【請求項２】
前記実行手段で実行済みの工程を示す情報を保持する保持手段を有することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記再起動手段で再起動後、前記実行手段は、前記保持手段で保持された情報が示す工程の次の工程の処理を実行することを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記可搬記憶媒体の挿入を検知する検知手段を有し、
前記保持手段は、さらに、前記検知手段で挿入が検知された可搬記憶媒体を一意に特定する情報を保持し、
前記保持手段で保持された可搬記憶媒体を一意に特定する情報を用いて、前記検知手段で挿入が検知された可搬記憶媒体が、以前に挿入されたことがあるかを判定し、以前に挿入されたことがあると判定された場合、前記実行手段は、前記保持手段で保持された情報が示す工程の次の工程の処理を実行することを特徴とする請求項２に記載の画像形成装置。
【請求項５】
複数の工程から構成される一連の設置作業を行う画像形成装置の制御方法であって、
判定手段が、可搬記憶媒体から取得した実行対象スクリプトの設置作業に関する複数の工程からなる処理のうち、最初の工程の処理が実行済みであるかを判定する判定工程と、
認証手段が、前記判定工程で最初の工程の処理が実行済みでないと判定された場合は、ユーザー認証を行うユーザー認証工程と、
実行手段が、前記実行対象スクリプトの複数の工程からなる処理のうち、１つの工程の処理を実行する実行工程と、
再起動手段が、前記実行工程で前記処理を実行後、再起動を行う再起動工程を有し、
前記判定工程で最初の工程の処理が実行済みであると判定された場合は、ユーザー認証は行わないことを特徴とする画像形成装置の制御方法。
【請求項６】
第１の保持手段が、前記実行工程で実行済みの工程を示す情報を保持する第１の保持工程を有することを特徴とする請求項５に記載の画像形成装置の制御方法。
【請求項７】
前記再起動工程で再起動後、前記実行工程は、前記保持工程で保持された情報が示す工程の次の工程の処理を実行することを特徴とする請求項６に記載の画像形成装置。
【請求項８】
検知手段が、前記可搬記憶媒体の挿入を検知する検知工程と、
第２の保持手段が、前記検知工程で挿入が検知された可搬記憶媒体を一意に特定する情報を保持する第２の保持工程を有し、
前記第２の保持工程で保持された可搬記憶媒体を一意に特定する情報を用いて、前記検知工程で挿入が検知された可搬記憶媒体が、以前に挿入されたことがあるかを判定し、以前に挿入されたことがあると判定された場合、前記実行工程は、前記第１の保持工程で保持された情報が示す工程の次の工程の処理を実行することを特徴とする請求項６に記載の画像形成装置の制御方法。
【請求項９】
コンピューターを、請求項１乃至４の何れか１項に記載の画像形成装置が有する各手段と
して機能させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを格納した、コンピューターが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置におけるソフトウェアの初期設置作業の技術に関する。
【背景技術】
【０００２】
画像形成装置を新規導入するにあたり、事前に画像形成装置の使用環境に応じた初期設置作業を行う必要がある。初期設置作業には、印刷物の仕上げ処理を行うフィニッシャーなどのハードウェアオプションの取り付けや、画像形成装置の制御プログラムのインストールや設定変更作業などのソフトウェアの初期設置作業が挙げられる。
上記のような初期設置作業を自動実施する方法として、スクリプトを用いてコンピューターの実行環境を設定する方法が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２２４８２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１は、コンピューターに対するソフトウェアの自動設定を実施する前に、自動設定システムを利用するための認証を行う必要がある。しかしながら、特許文献１が開示する技術にはソフトウェアの自動設定中に再起動が発生した場合の処理が記載されていない。しかしながら、コンピューターの再起動後に処理を継続実行するためには、再起動後に再認証が必要になることが想定される。
【０００５】
複数の工程から構成される一連のソフトウェア初期設置作業においても、作業を開始する前に、認証処理を行うのが望ましい。しかしながら、複数の工程から構成される一連のソフトウェア初期設置作業は、作業開始後に、工程間で再起動が必要となり、それらの再起動の度に不要な認証作業が必要になってしまうという課題がある。
【０００６】
そこで本発明では、複数の工程から構成され、かつ工程間に画像形成装置の再起動を含むような一連のソフトウェア設定作業を、少ない認証回数で効率的に実施するための技術を提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明の画像形成装置は以下の構成を有する。すなわち、複数の工程から構成される一連の設置作業を行う画像形成装置であって、可搬記憶媒体から取得した実行対象スクリプトの設置作業に関する複数の工程からなる処理のうち、最初の工程の処理が実行済みであるかを判定する判定手段と、前記判定手段で、最初の工程の処理が実行済みでないと判定された場合は、ユーザー認証を行うユーザー認証手段と、前記実行対象スクリプトの複数の工程からなる処理のうち、１つの工程の処理を実行する実行手段と、前記実行手段で、前記処理を実行後、再起動を行う再起動手段を有し、前記判定手段で、最初の工程の処理が実行済みであると判定された場合は、ユーザー認証は行わないことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、複数の工程から構成され、かつ工程間に画像形成装置の再起動を含むような一連のソフトウェア設定作業を、少ない認証回数で効率的に実施することができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態のシステム構成を示す図
【図２】画像形成装置の構成を示す図
【図３】画像形成装置のソフトウェア構成を示す図
【図４】拡張プログラムの設定情報を示す図
【図５】画像形成装置の機能構成の一例を示す図
【図６】初期設置作業サポート機能が使用するＵＳＢストレージ内のフォルダー及びファイル構成の一例を示す図
【図７】スクリプトを示す図
【図８】スクリプトの実行順序のイメージを示す図
【図９】ソフトウェアの初期設置作業の実行状況ファイルの一例を示す図
【図１０】実施例１のソフトウェアの初期設置作業を説明するフローチャート
【図１１】実施例２のソフトウェアの初期設置作業を説明するフローチャート
【図１２】実施例３のソフトウェアの初期設置作業を説明するフローチャート
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１１】
＜実施例１＞
図１は、画像形成装置を含む初期設置作業システムを示しており、画像形成装置１０１、可搬記憶媒体１０２、クライアントコンピュータ１０３を備える。画像形成装置１０１は、スキャナ、プリンタ、ファクシミリ、ファイル送信機能等の複数の機能を有する複合機である。また、画像形成装置１０１は、外部記憶装置である可搬記憶媒体１０２を接続するインタフェースを有している。可搬記憶媒体１０２を接続するインタフェースの種別は問わないが、本実施例ではＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースを用いることとする。ＵＳＢインタフェースに可搬記憶媒体１０２を接続することで、画像形成装置１０１は、可搬記憶媒体１０２に対してデータの読み書きを行うことができる。
【００１２】
可搬記憶媒体１０２は、ホストとなる機器から容易に取り外せる記憶装置であれば種別を問わないが、本実施例では、可搬記憶媒体１０２として、ＵＳＢマスストレージクラスを実装するＵＳＢストレージ２０４（図２）を用いる。クライアントコンピュータ１０３は、パーソナルコンピュータであり、可搬記憶媒体１０２を接続するためのインタフェースを有している。可搬記憶媒体１０２を接続するインタフェースの種別は問わないが、本実施例では、ＵＳＢインタフェースを用いる。ＵＳＢインタフェースに可搬記憶媒体１０２を接続することで、クライアントコンピュータ１０３は、可搬記憶媒体１０２に対してデータの読み書きを行うことができる。また、クライアントコンピュータ１０３は、Ｗｅｂブラウザープログラムを有し、画像形成装置１０１が公開するＷｅｂサイトにアクセスすることで、画像形成装置１０１の各種設定を行うことができる。
【００１３】
図２は、画像形成装置の構成例を示す図である。画像形成装置１０１は、制御ユニット２００、操作部２０１、スキャナ２０２、プリンタ２０３を備える。ＵＳＢストレージ２０４は、データを格納するための外部記憶装置であり、画像形成装置１０１に対して着脱可能である。ＵＳＢストレージ２０４は、ＵＳＢホストＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２１４を介して制御ユニット２００に接続される。制御ユニット２００は、操作部関連の処理部として、ＣＰＵ２１０、ＲＡＭ２１１、操作部Ｉ／Ｆ２１２、ネットワークＩ／Ｆ２１３、ＵＳＢホストＩ／Ｆ２１４、ＲＯＭ２１５、ＨＤＤ２１６、画像バスＩ／Ｆ２１７、システムバス２１８を備える。ＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称である。ＲＡＭは、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略称である。ＲＯＭは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略称である。ＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略称である。また、制御ユニット２００は、印刷、スキャン関連の処理部として、画像バス２１９、デバイスＩ／Ｆ２２０、スキャナ画像処理部２２１、プリンタ画像処理部２２２を備える。なお、制御ユニット２００は、スキャナ２０２、及びスキャナ画像処理部２２１については必要に応じて備えることになる。また、ＵＳＢストレージ２０４も必要に応じて画像形成装置１０１に着脱することになる。
【００１４】
ＣＰＵ２１０は、制御ユニット２００全体を制御するためのコントローラである。ＲＡＭ２１１は、画像データやソフトウェアの動作に必要な処理を一時記憶するためのメモリーであり、保持部である。
【００１５】
操作部Ｉ／Ｆ２１２は、操作部２０１とのインタフェースであり、操作部２０１で表示する画像データを操作部２０１に対して出力する。また、操作部Ｉ／Ｆ２１２は、ユーザーが操作部２０１により入力した情報をＣＰＵ２１０へ伝達する。ネットワークＩ／Ｆ２１３は、ネットワークと接続しており、ネットワークを介して、外部の装置と情報のやり取りをするインタフェースである。外部の装置とは、例えばクライアントコンピュータ１０３を指す。ＵＳＢホストＩ／Ｆ２１４は、ＨＤＤ２１６に格納されているデータをＵＳＢストレージ２０４に出力する。また、ＵＳＢホストＩ／Ｆ２１４は、ＵＳＢストレージ２０４に格納されているデータを読み出し、読み出したデータをＣＰＵ２１０に伝える。なお、ＵＳＢホストＩ／Ｆ２１４には、ＵＳＢストレージ２０４を含む複数のＵＳＢデバイスが接続可能である。ＲＯＭ２１５は、ブートＲＯＭであり、システムのブートプログラムが格納されている。ＨＤＤ２１６は、システムソフトウェア、画像データ、設定情報などを格納する。
【００１６】
画像バスＩ／Ｆ２１７は、システムバス２１８と画像バス２１９とを接続し、データ変換を行うバスブリッジである。システムバス２１８は、制御ユニット２００を構成する各コンポーネント同士の共通データ交換経路である。画像バス２１９は、ＰＣＩバス、またはＩＥＥＥ１３９４で構成されており、画像データを高速に転送する経路である。デバイスＩ／Ｆ２２０は、画像入出力デバイスであるスキャナ２０２及びプリンタ２０３と制御ユニット２００とを接続し、画像データの同期系／非同期系の変換を行う。スキャナ画像処理部２２１は、入力画像に対し、補正や加工、編集を行う。プリンタ画像処理部２２２は、プリント出力画像データに対して、プリンタの性能に応じた補正、解像度の変換などを行う。
【００１７】
図３は、ソフトウェアの初期設置作業を実行するための、画像形成装置のソフトウェア構成の一例を示す図である。ＯＳ３００上では、ネイティブプログラム３０１と拡張プログラム実行プラットフォーム３０２が動作している。ネイティブプログラム３０１は、プリンタやＦＡＸ、スキャナなどの、画像形成装置に元々備わっている機能の制御用プログラムである。拡張プログラム実行プラットフォーム３０２は、画像形成装置に機能を追加する拡張プログラムの実行プラットフォームである。ネイティブプログラム３０１上では、ファームウェア更新サービス３０３、オプション有効化サービス３０４、設定管理サービス３０５が動作している。また、拡張プログラム実行プラットフォーム３０２上では、拡張プログラムシステムサービス３０６と拡張プログラム３０７とが動作している。
【００１８】
ファームウェア更新サービス３０３は、ファームウェアを更新するための各種機能を提供するサービスである。例えば、ファームウェア更新サービス３０３は、ユーザーから指定されたファームウェアを参照し、該ファームウェアの更新が必要か否かを判断する。また、ファームウェア更新サービス３０３は、ネイティブプログラム３０１に対し、またはネイティブプログラム３０１を介して、ファームウェアを更新する。オプション有効化サービス３０４は、ネイティブプログラム３０１に予め組み込まれているオプション機能（以下、組み込みオプションプログラムとも表記する）を、有効化するためのプログラムである。オプション有効化サービス３０４は、ユーザーから指定されたオプションライセンスファイルにより特定されるオプション機能を識別し、有効化する。
【００１９】
設定管理サービス３０５は、プリンタやＦＡＸなどの各種設定情報を管理するためのプログラムである。設定管理サービス３０５は、例えば、ユーザーから１つまたは複数の設定、または複数の設定情報を含むファイルを指定されると、ネイティブプログラム３０１の設定情報を書き換える機能を提供する。なお、設定管理サービス３０５は、ユーザインタフェース（以下、ＵＩと記述）を持っており、ユーザーは画像形成装置１０１の操作部２０１に表示される設定メニュー画面（不図示）を介して設定変更の指示ができる。拡張プログラムシステムサービス３０６は、拡張プログラムに共通に有用なユーティリティライブラリであり、システムから提供される。拡張プログラム３０７から拡張プログラムシステムサービス３０６の機能を呼び出すことにより、拡張プログラムを開発する手間を省くことができる。
【００２０】
拡張プログラム３０７は、拡張プログラム実行プラットフォーム３０２または各サービス（３０３から３０６）を介してのみ、他の拡張プログラム３０７など、画像形成装置１０１の各モジュールへアクセスすることができる。また、ＵＩを持つ拡張プログラム３０７は、画像形成装置１０１の操作部２０１に表示されるメインメニュー画面（不図示）にアイコン等を表示することもできる。操作部Ｉ／Ｆ２１２は、操作部２０１を通じて、メインメニュー画面上のアイコンがユーザーによって選択されたことを検知すると、その選択を示す情報をＣＰＵ２１０に送信する。上記選択を示す情報を受け取ったＣＰＵ２１０が、ユーザーに選択された拡張プログラムのＵＩを操作部２０１に表示する。
【００２１】
なお、図３に示すソフトウェア構成は、基本的な部分のみであり、実施環境によっては、画像形成装置１０１が他のサービス等を備えるようにしてもよい。また、設定を制限するなどの理由によって不要となるサービスについては、画像形成装置１０１が備えないようにしてもよい。
【００２２】
図４は、拡張プログラムの設定情報の一例を示す図である。拡張プログラム３０７の設定情報は、ＨＤＤ２１６に格納され、拡張プログラム３０７が独自に管理する。ｄａｔａフォルダー４００は、拡張プログラム３０７の設定情報を格納するフォルダーである。ｄａｔａフォルダー４００は、拡張プログラム３０７がインストールされたときに拡張プログラム実行プラットフォーム３０２が作成する。ｄａｔａフォルダー４００の中には、Ｃｏｎｆｉｇフォルダー４０１、Ｌｏｇフォルダー４０３、Ｄａｔａフォルダー４０５が存在する。Ｃｏｎｆｉｇフォルダー４０１の中には、Ｃｏｎｆｉｇ．ｔｘｔファイル４０２が格納されている。
【００２３】
Ｃｏｎｆｉｇ．ｔｘｔファイル４０２は、拡張プログラム３０７が動作するために必要な情報を永続化したファイルである。拡張プログラム３０７が動作するために必要な情報は、例えば、接続先サーバーのＩＰアドレスが挙げられる。Ｌｏｇフォルダー４０３の中には、Ｌｏｇ．ｔｘｔファイル４０４が格納されている。Ｌｏｇ．ｔｘｔファイル４０４は、拡張プログラム３０７が実行した処理の記録を永続化したファイルである。Ｄａｔａフォルダー４０５の中には、Ｄａｔａ１．ｄａｔファイル４０６、Ｄａｔａ２．ｄａｔファイル４０７が格納されている。Ｄａｔａ．ｄａｔファイル４０６及びＤａｔａ２．ｄａｔファイル４０７は、拡張プログラム３０７が処理する情報（例えば、印刷データ）である。
【００２４】
以下に、画像形成装置の初期設置作業について説明する。画像形成装置の初期設置作業を行うにあたり、作業者は、他の画像形成装置に配信するための設定を事前に行った画像形成装置（以下、リファレンス画像形成装置）を用意する。作業者は、リファレンス画像形成装置の設定情報を、他の画像形成装置に適用するために、リファレンス画像形成装置の設定情報をエクスポートする。尚、設定情報のエクスポート方法については詳細に説明しないが、ネイティブプログラム３０１や設定管理サービス３０５などにエクスポート機能が用意されている場合は、それを用いてもＵＳＢストレージ２０４などに設定情報をエクスポートしてもよい。また、画像形成装置にＷｅｂサービス（不図示）が用意されている場合は、ＵＳＢストレージ２０４を用いずにクライアントコンピュータ１０３からＷｅｂＵＩにアクセスして設定情報をエクスポートしてもよい。
【００２５】
次に、作業者は、初期設置作業に必要なファームウェアやアプリケーション、ライセンス情報の記載されたファイルを用意する。初期設置作業に必要なＵＳＢストレージ２０４内のフォルダー、及びファイル構成については、図６を参照して後述する。
【００２６】
作業者は、初期設置作業の対象となる画像形成装置（以下、配信対象画像形成装置）の初期設置作業に移る。まず、作業者は、配信対象画像形成装置の一機能である初期設置作業サポート機能を起動する。ここで初期設置作業サポート機能は、拡張プログラムの初期設置作業サポートプログラムとして用意し、初期設置作業を実施する前にインストールしても良い。また初期設置作業サポートプログラムは、画像形成装置が生産現場から出荷される段階でインストールされていてもよい。次に、作業者は、配信対象画像形成装置にＵＳＢストレージ２０４を挿入することにより初期設置作業を実行する。尚、初期設置作業の実行は、ＵＳＢストレージ２０４の挿入を検知したときに、初期設置作業を開始するためのＵＩを操作部２０１に表示しても良い。配信対象画像形成装置に対する初期設置作業が完了すると、作業者は、配信対象画像形成装置に接続されたＵＳＢストレージ２０４を抜去し、次の配信対象画像形成装置の初期設置作業に移る。
【００２７】
図５は、初期設置作業を実施する画像形成装置１０１の機能構成の一例を示す図である。初期設置作業を実施する画像形成装置１０１は、画像形成装置１０１のＨＤＤ２１６に格納されており、ＣＰＵ２１０によって実行されることで初期設置作業サポート機能を実現する。初期設置作業サポート機能は、ＵＩ制御部５０１と、ストレージ管理部５０２と、処理実行部５０３と、スクリプト解析部５０４とを有する。ＵＩ制御部５０１は、初期設置作業サポート機能を操作するためのＵＩを、操作部２０１を通じてユーザーに提供し、ユーザーの操作を受け付ける。ストレージ管理部５０２は、ＵＳＢストレージ２０４に格納されたデータの読み書きを行う。また、ストレージ管理部５０２は、ＵＳＢストレージ２０４の挿入及び抜去の状態変化を検知する。処理実行部５０３は、ＵＩ制御部５０１、ストレージ管理部５０２、及びスクリプト解析部５０４の指示に従い、各種初期設置作業の処理を行う。スクリプト解析部５０４は、ＵＳＢストレージ２０４に格納されているスクリプトを解析し、処理実行部５０３が実行すべき初期設置作業とその順序を決定する。
【００２８】
図６は、初期設置作業サポート機能が使用するＵＳＢストレージ内のフォルダー及びファイル構成の一例を示す図である。ルートフォルダ６００の中には、Ｆｉｒｍｗａｒｅフォルダー６０１、ＥｍｂｅｄｄｅｄＦｕｎｃフォルダー６０３、ＤｅｖＣｏｎｆｉｇフォルダー６０５、Ａｐｐフォルダー６０７、Ｌｏｇフォルダー６１０、Ｓｃｒｉｐｔ．ｘｍｌファイル６１２が存在する。Ｆｉｒｍｗａｒｅフォルダー６０１は、画像形成装置１０１に対して更新したいファームウェアを格納するフォルダーである。Ｆｉｒｍｗａｒｅフォルダー６０１の中には、ファームウェア群をｚｉｐ形式でアーカイブしたＦｉｒｍｗａｒｅ＿ｖ１．０．１．ｚｉｐファイル６０２が存在する。ＥｍｂｅｄｄｅｄＦｕｎｃフォルダー６０３は、画像形成装置１０１にプリインストールされている機能、つまり組み込みオプションプログラムをアクティベートするためのライセンスファイルを格納するフォルダーである。ＥｍｂｅｄｄｅｄＦｕｎｃフォルダー６０３の中には、ライセンスファイルＥｍｂｅｄｄｅｄＦｕｎｃ−Ｌｉｃｅｎｓｅ．ｌｉｃ６０４が存在する。
【００２９】
ＤｅｖＣｏｎｆｉｇフォルダー６０５は、リファレンス画像形成装置にて事前に設定し、かつエクスポートした設定情報を格納するフォルダーである。ＤｅｖＣｏｎｆｉｇフォルダー６０５の中には、リファレンス画像形成装置からエクスポートした設定情報がｚｉｐ形式でアーカイブされたファイルｄｅｖｉｃｅＣｏｎｆｉｇｕｒａｔｉｏｎＦｉｌｅ．ｚｉｐ６０６が存在する。Ａｐｐフォルダー６０７は、初期設置作業にて画像形成装置１０１に対してインストールすべき拡張プログラム、及び拡張プログラムのインストールに必要なライセンスファイルを格納するフォルダーである。Ａｐｐフォルダー６０７の中には、拡張プログラムＡｐｐｌｉｃａｔｉｏｎ００１．ｊａｒ６０８、及びライセンスファイルＡｐｐ００１−Ｌｉｃｅｎｓｅ．ｌｉｃ６０９が存在する。Ｌｏｇフォルダー６１０は、初期設置作業サポート機能が実行した結果のファイル（以降、ログ）を格納するためのフォルダーである。Ｌｏｇフォルダー６１０の中には、Ｌｏｇ．ｔｘｔ６１１が存在する。
【００３０】
初期設置作業サポート機能を実行する前は、Ｌｏｇフォルダー６１０、及びＬｏｇ．ｔｘｔ６１１は存在しない。これらのフォルダー及びファイルは、初期設置作業サポート機能を実行中または実行後に、初期設置作業サポート機能が作成したＬｏｇフォルダー４０３及びＬｏｇ．ｔｘｔ４０４をＵＳＢストレージにコピーすることによって作成される。または、初期設置サポートプログラムが、Ｌｏｇフォルダー６１０及びＬｏｇ．ｔｘｔ６１１に直接書き込みを行っても良い。Ｓｃｒｉｐｔ．ｘｍｌ６１２は、初期設置作業を自動的に処理するための作業手順を示すスクリプトである。スクリプトの詳細については、図７を参照して後述する。本スクリプトは初期設置作業手順を定義するファイルである。画像形成装置１０１が、スクリプトファイル６１２の存在の有無によって初期設置作業サポート機能の実行可否を決定してもよい。つまり、スクリプトファイル６１２が存在すること自体を、使用中のＵＳＢストレージ２０４が初期設置作業サポート機能用のＵＳＢストレージであることを示す識別子としてもよい。図６に示す初期設置作業サポート機能が使用するＵＳＢストレージ内のフォルダー及びファイル構成は一例であり、これに限らず任意のフォルダー構成としてよい。
【００３１】
図７は、本実施例で用いられるスクリプト（実行対象スクリプト）を示す図である。スクリプトは、初期設置作業サポート機能が、画像形成装置１０１の初期設置作業を自動実施するための作業手順を示す指示書である。スクリプト７００は、初期設置作業サポート機能のストレージ管理部５０２で読み込まれ、処理実行部５０３を介しスクリプト解析部５０４によって解析される。スクリプト解析部５０４によってスクリプト７００が解析されると、処理実行部５０３が、解析結果に基づいて、スクリプト７００に記載された初期設置作業を実行する。
【００３２】
図７に示すスクリプト７００は、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記載されており、画像形成装置識別部７０１と処理記載部７０２とを有する。なお、図７ではＸＭＬによりスクリプトを表現しているが、スクリプトの表現形式は、ＸＭＬに限定されず、シェルスクリプトなどで書かれていてもよい。
【００３３】
画像形成装置識別部７０１には、初期設置作業の対象である画像形成装置１０１を識別するための情報が記載されている。画像形成装置識別部７０１は、画像形成装置１０１の識別子である＜ｄｅｖｉｃｅＩｄ＞と、本スクリプトの内容を任意の文字列で示す＜ｃｏｍｍｅｎｔ＞とを有する。＜ｃｏｍｍｅｎｔ＞は、本スクリプトの内容説明だけでなく、＜ｄｅｖｉｃｅＩｄ＞だけで識別不可能な場合の識別子として利用してもよい。例えば、１つの画像形成装置１０１に対し複数の設定を用意する必要がある場合に識別子として利用可能である。
【００３４】
処理記載部７０２には、初期設置作業を実施するために必要な工程（以降、処理とも記載する）群が記載される。図７では、処理記載部７０２は、ファームウェア更新処理７０３、組み込みオプションプログラムアクティベート処理７０４、設定情報インポート処理７０５を有する。また処理記載部７０２は、拡張プログラムインストール処理７０６、拡張プログラム開始処理７０７を有する。各初期設置作業の処理を示すタグの中には、Ｏｒｄｅｒ属性が含まれており、本実施例ではＯｒｄｅｒの値に応じて初期設置作業の順番が決定する。なお、処理の順番を特に指定しない場合は、Ｏｒｄｅｒの値を同じにすることもできる。Ｏｒｄｅｒの値が同じ場合は、処理実行部５０３は、処理記載部７０２に書かれている順番で実行しても良いし、スクリプト解析部５０４が読み取った順番で実行しても良い。
【００３５】
ファームウェア更新処理７０３は、ファームウェア更新サービス３０３を介してファームウェアを更新する処理である。ファームウェア更新処理７０３は、＜ｕｐｄａｔｅＦｉｒｍｗａｒｅＣｏｍｍａｎｄ＞タグを記載することで処理を定義し、＜ｒｅｌａｔｉｖｅＤｉｒＰａｔｈ＞タグと＜ＦｉｒｍｗａｒｅＮａｍｅ＞によって、使用するファイルを指定している。＜ｒｅｌａｔｉｖｅＤｉｒＰａｔｈ＞タグには、ＵＳＢストレージ２０４内のルートフォルダ６００から更新したいファームウェアまでの相対パスが記載されている。＜ＦｉｒｍｗａｒｅＮａｍｅ＞タグには、更新したいファームウェアが指定されている。図７においてはＺｉｐ形式でアーカイブされたファームウェアが指定されている。
【００３６】
組み込みオプションプログラムアクティベート処理７０４は、＜ａｃｔｉｖａｔｅＥｍｂｅｄｄｅｄＦｕｎｃｔｉｏｎＣｏｍｍａｎｄ＞タグの記載によって処理を定義している。そして、＜ｒｅｌａｔｉｖｅＤｉｒＰａｔｈ＞タグ、及び＜ｌｉｃｅｎｓｅＦｉｌｅＮａｍｅ＞タグによりアクティベートする組み込みオプションプログラムを指定している。＜ｒｅｌａｔｉｖｅＤｉｒＰａｔｈ＞タグには、ＵＳＢストレージ２０４内のルートフォルダ６００からアクティベートする組み込みオプションプログラムのライセンスファイルまでの相対パスが記載されている。＜ｌｉｃｅｎｓｅＦｉｌｅＮａｍｅ＞タグには、組み込みオプションプログラムを有効化するためのライセンスの実体が指定されている。図７においてはｌｉｃ形式のライセンスファイルが指定されているが、ライセンスのファイル形式についてはこれに限定されない。なお、画像形成装置１０１にプリインストールされた組み込みオプションプログラムが存在しない場合、また、有効化しない場合には、この初期設置作業処理の記載は不要である。
【００３７】
設定情報インポート処理７０５は、＜ｉｍｐｏｒｔＤｅｖｉｃｅＣｏｎｆｉｇＣｏｍｍａｎｄ＞タグの記載により処理を定義している。＜ｒｅｌａｔｉｖｅＤｉｒＰａｔｈ＞タグ、及び＜ｃｏｎｆｉｇＦｉｌｅＮａｍｅ＞タグによって、インポートする設定情報ファイルが指定されている。＜ｒｅｌａｔｉｖｅＤｉｒＰａｔｈ＞タグには、ルートフォルダ６００からインポート対象の設定情報ファイルまでの相対パスが記載されている。＜ｃｏｎｆｉｇＦｉｌｅＮａｍｅ＞タグには、インポート対象の設定情報ファイルが指定されている。図７では、Ｚｉｐ形式にアーカイブされた設定情報ファイルが指定されている。なお、設定情報ファイルの形式はＺｉｐファイル形式に限定されない。
【００３８】
拡張プログラムインストール処理７０６は、＜ｉｎｓｔａｌｌＡｐｐｌｉｃａｔｉｏｎＣｏｍｍａｎｄ＞タグの記載により処理を定義している。＜ｒｅｌａｔｉｖｅＤｉｒＰａｔｈ＞タグ、及び＜ＡｐｐＦｉｌｅＮａｍｅ＞タグによって、インストールする拡張プログラムが指定されている。＜ｒｅｌａｔｉｖｅＤｉｒＰａｔｈ＞タグには、ＵＳＢストレージ２０４のルートフォルダ６００からインストール対象の拡張プログラムの実体までの相対パスが記載されている。＜ＡｐｐＦｉｌｅＮａｍｅ＞タグには、インストール対象の拡張プログラムの実体が指定されている。図７においてはＪａｒファイル形式の拡張プログラムが指定されている。尚、拡張プログラムの形式はＪａｒファイル形式に限定されない。また、インストール対象の拡張プログラムに対するライセンスは、＜ｌｉｃｅｎｓｅＲｅｌａｔｉｖｅＤｉｒＰａｔｈ＞タグ、及び＜ｌｉｃｅｎｓｅＦｉｌｅＮａｍｅ＞タグにより指定されている。＜ｌｉｃｅｎｓｅＲｅｌａｔｉｖｅＤｉｒＰａｔｈ＞タグには、ＵＳＢストレージ２０４のルートフォルダ６００から拡張プログラムのライセンスファイルまでの相対パスが記載されている。＜ｌｉｃｅｎｓｅＦｉｌｅＮａｍｅ＞タグには、拡張プログラムのライセンスの実体が指定されている。図７においては．ｌｉｃファイル形式のライセンスファイルが指定されているが、ライセンスのファイル形式についてはこれに限定されない。
【００３９】
拡張プログラム開始処理７０７は、＜ｓｔａｒｔＡｐｐｌｉｃａｔｉｏｎＣｏｍｍａｎｄ＞タグの記載により処理を定義しており、＜ａｐｐＩｄ＞タグにより開始対象の拡張プログラムを指定している。＜ａｐｐＩｄ＞タグには、開始対象の拡張プログラムを唯一に識別するＩＤが指定されている。＜ａｐｐＩｄ＞タグにおいて指定されているＩＤは、例えば図４のＣｏｎｆｉｇ．ｔｘｔ４０２に記載されていても良い。
【００４０】
スクリプトの初期設置作業の処理は、図７のスクリプト７００に記載された処理に限定されない。例えば、スクリプト７００に、画像形成装置１０１の再起動処理などを加えてもよい。また必要に応じて処理の重複、増減があってもよい。
【００４１】
図８は、本実施例で用いられるスクリプト７００の実行順序のイメージを示す図である。ファームウェア更新処理８００は、処理記載部７０２に記載されたファームウェア更新処理７０３を示している。組み込みオプションプログラムアクティベート処理８０１は、処理記載部７０２に記載された組み込みオプションプログラムアクティベート処理７０４を示している。設定情報インポート処理８０２は、処理記載部７０２に記載された設定情報インポート処理７０５を示している。拡張プログラムインストール処理は、処理記載部７０２に記載された拡張プログラムインストール処理７０６を示している。拡張プログラム開始処理８０４は、処理記載部７０２に記載された拡張プログラム開始処理７０７を示している。再起動処理８０５は、処理記載部７０２には記載されていないが、各処理が完了すると自動で再起動することを示している。再起動処理８０５は、初期設置作業における各々の処理に依存関係がある場合に、処理実行部５０３が、画像形成装置１０１の再起動を実施する。各々の処理に依存関係がある場合として、例えば、画像形成装置の設定値の一部は、ファームウェアの更新や組み込みシステムアプリケーションの有効化を適用しないと表示されない項目が存在する。また、適用しないと設定できない項目も存在する。ファームウェアの更新や、組み込みシステムアプリケーションの有効化を適用するためには画像形成装置の再起動が必要な場合があり、その場合、画像形成装置を再起動した後で画像形成装置の設定を変更することになる。
【００４２】
尚、再起動処理８０５は、初期設置作業における特定の処理がスクリプト７００の処理記載部７０２に記載されている場合に実施しても良いし、処理実行部５０３が必要か否かを判断しても良い。また再起動が不要であれば再起動処理８０５を実施しなくても良い。
【００４３】
図９（ａ）は、本実施例で用いられる初期設置作業の現在の実行状況が記載された実行状況ファイルの一例を示す図である。実行状況ファイルは、初期設置作業サポート機能が、画像形成装置１０１の初期設置作業に含まれる複数の工程のうち、どの工程の初期設置作業が完了しているかを示すための記録である。このファイルにより画像形成装置１０１が再起動されても初期設置作業を継続実行することができる。実行状況ファイル９００は、初期設置作業サポート機能のストレージ管理部５０２で読み込まれ、処理実行部５０３を介しスクリプト解析部５０４によって解析される。スクリプト解析部５０４によって実行状況ファイル９００が解析されると、処理実行部５０３が解析結果に基づいて、実行状況ファイル９００に記載された初期設置作業を継続実行する。実行状況ファイル９００は、拡張プログラムの設定情報の一部として、Ｃｏｎｆｉｇフォルダー４０１に新たにファイルとして生成され管理される。なお、実行状況ファイル９００の格納先は、Ｃｏｎｆｉｇフォルダー４０１でなく、拡張プログラムが処理する情報としてＤａｔａフォルダー４０５の中に格納されていても良い。また、実行状況ファイルの格納先を画像形成装置１０１のＨＤＤ２１６内ではなく、ＵＳＢストレージ２０４の中（不図示）にしても良い。
【００４４】
また実行状況ファイル９００は、初期設置作業サポート機能をインストールした際には作成されておらず、ソフトウェアの初期設置作業を開始した後に生成される。実行状況ファイル９００には、画像形成装置１０１を再起動した後でも初期設置作業を継続実行するために、ＵＳＢ  Ｓｅｒｉａｌ  Ｎｕｍｂｅｒ（以降、ＵＳＢシリアル番号）９０１、及び実行状況９０２が記載されている。ＵＳＢシリアル番号９０１は、初期設置作業サポート機能が初期設置作業を開始したときに挿入されているＵＳＢストレージ２０４のシリアル番号が記載される。
【００４５】
実行状況９０２は、スクリプト７００の処理記載部７０２に記載された処理群、及び各処理の実行状態が示されている。図９（ａ）では処理が実行済みであることを示すＥｘｅｃｕｔｅｄ、まだ実行されていないことを示すＵｎｅｘｅｃｕｔｅｄが記載されている。また実行結果としてエラー終了を示すＥｒｒｏｒ（不図示）が記載されてもよい。尚、これら以外にも現在実行中であることを示すＥｘｅｃｕｔｉｎｇ、一時停止中であるＳｕｓｐｅｎｄなどがあっても良く、記載の内容に限定されない。また実行状況に、スクリプト７００の各処理の属性として記載されたＯｒｄｅｒの値が記載されていても良い。実行状況ファイル９００は、タブ区切りのテキスト形式で記載されているが、記載形式に限定されず、ＸＭＬ形式などで記載されていても良い。
【００４６】
図１０は、実施例１のソフトウェア初期設置作業を説明するフローチャートである。図１０では、画像形成装置に対する初期設置作業サポート機能の初期設置作業を例にとって説明する。まずストレージ管理部５０２が、画像形成装置１０１へのＵＳＢストレージ２０４の挿入を検知したかを判断する（Ｓ１０００）。ストレージ管理部５０２がＵＳＢストレージ２０４の挿入を検知した場合は、処理がＳ１００１に進む。ストレージ管理部５０２がＵＳＢストレージ２０４の挿入を検知していない場合は、処理がＳ１０００に戻る。
【００４７】
Ｓ１００１において、ストレージ管理部５０２が、挿入されたＵＳＢストレージ２０４の中にスクリプトファイル６１２が格納されているかを判断する。ＵＳＢストレージ２０４の中にスクリプトファイル６１２が格納されている場合は、処理がＳ１００２に進む。ＵＳＢストレージ２０４の中にスクリプトファイル６１２が格納されていない場合は、ストレージ管理部５０２が、ＵＳＢストレージ２０４が初期設置作業用のＵＳＢストレージではないと判断し、Ｓ１０００へ戻り、新たなＵＳＢストレージ２０４の挿入を待つ。尚、ＵＳＢストレージ２０４の中にスクリプトファイル６１２が格納されていない場合は、次のＵＳＢストレージ２０４の挿入を待たずにプログラムを終了しても良い。その場合、次に初期設置作業を実施する前にプログラムの起動を行う必要がある。
【００４８】
次にＳ１００２において、ストレージ管理部５０２が、画像形成装置１０１のｄａｔａフォルダー４００の中に、実行状況ファイル９００が格納されているかを判断する。ｄａｔａフォルダー４００の中に実行状況ファイル９００が格納されている場合は、処理がＳ１００３に進む。ｄａｔａフォルダー４００の中に実行状況ファイル９００が格納されていない場合は、処理がＳ１００６へ進む。尚、初期設置作業サポート機能の初回起動時は実行状況ファイル９００が存在しないため、処理は必ずＳ１００６へ進むことになる。
【００４９】
Ｓ１００３において、スクリプト解析部５０４が実行状況ファイル９００（図９）を読み込む。読み込まれた実行状況ファイル９００の情報は、処理が終わるまでＲＡＭ２１１に一時的に記憶される。
【００５０】
Ｓ１００４において、処理実行部５０３が、画像形成装置１０１に挿入されているＵＳＢストレージ２０４のＵＳＢシリアル番号を取得する。ＵＳＢシリアル番号は、ＵＳＢストレージ２０４を一意に識別するための識別子である。尚、Ｓ１００４ではＵＳＢストレージ２０４のＵＳＢシリアル番号のみを取得しているが、ＵＳＢストレージ２０４のベンダー情報やプロダクト情報を併せて取得しても良い。
【００５１】
次に、処理実行部５０３が、Ｓ１００３で読み込んだ実行状況ファイル９００のＵＳＢシリアル番号９０１と、Ｓ１００４で取得した現在挿入されているＵＳＢストレージ２０４のＵＳＢシリアル番号を比較する。処理実行部５０３が各々のＵＳＢシリアル番号比較した結果、同じＵＳＢシリアル番号と判断した場合は、処理がＳ１００９に進む。各々のＵＳＢシリアル番号を比較した結果、異なるＵＳＢシリアル番号であると判断した場合は、Ｓ１００３で読み込んだ実行状況ファイル９００の情報をＲＡＭ２１１から削除し、処理がＳ１００６へ進む。尚、同じＵＳＢシリアル番号と判断される場合は、現在挿入されているＵＳＢストレージ２０４が以前に挿入されたことがあり、異なるＵＳＢシリアル番号であると判断される場合は、以前に挿入されたことがない。Ｓ１００６において、処理実行部５０３が、現在画像形成装置１０１にログインしているユーザーの権限を取得する。その後、処理実行部５０３が、Ｓ１００７においてログインしているユーザーがどのような権限で実施しているかを確認する。
【００５２】
Ｓ１００８において、処理実行部５０３は、Ｓ１００７で確認したログインユーザーの権限がシステム管理者であるかを判断する。ログインユーザーの権限がシステム管理者権限である場合は、処理がＳ１００９へ進む。ログインユーザーの権限がシステム管理者権限でない場合は、初期設置作業を実施すべきでないと判断して、処理がＳ１００６へ戻る。尚、ログインユーザーの権限がシステム管理者でなく処理がＳ１００６へ戻る際、ユーザーに対してシステム管理者でログインするように促すための通知をしても良い。またユーザーに対してログイン用の画面（不図示）を提示しても良い。
【００５３】
またＳ１００７のログインユーザーの権限チェックを実施するタイミングとして、初期設置作業を開始するためのボタンを用意した開始画面（不図示）を提示しても良い。つまり処理実行部５０３が、ユーザーによる開始画面の開始ボタンの押下をトリガーに権限チェック（Ｓ１００７）以降の処理を実施しても良い。更にＳ１００８において、処理実行部５０３が、システム管理者か否かを判断しているが、システム管理者に限定されず、例えば初期設置作業者用の権限を用意し、初期設置作業用の権限であるかの判断をしても良い。
【００５４】
Ｓ１００９において、スクリプト解析部５０４が、ＵＳＢストレージ２０４に格納されているスクリプトファイル６１２（図６）を読み込む。読み込まれたスクリプトファイル６１２の情報は、処理が終わるまでＲＡＭ２１１に一時的に記憶される。尚、本処理において、スクリプト解析部５０４が、スクリプト７００に記載された各初期設置作業に対し、何をどのような順番で実行するかの解析や、実行する初期設置作業で使用するファイルがＵＳＢストレージ２０４に格納されているかの確認をしてもよい。この例では、スクリプトの読み込み処理（Ｓ１００９）にて、初期設置作業の実行順序の解析や、ファイル確認が完了しているものとする。
【００５５】
次にＳ１０１０において、処理実行部５０３が、Ｓ１００３でＲＡＭ２１１に一時的に記憶された実行状況ファイル９００の情報と、Ｓ１０１０でＲＡＭ２１１に一時的に記憶されたスクリプト７００の情報を照らし合わせる。そして次に実行すべき初期設置作業の処理を算出する。尚、本処理において、初期設置作業サポート機能の初回起動時は実行状況ファイル９００が存在しないため、実行状況ファイル９００の情報もＲＡＭ２１１に存在しない。そのため初回起動時は、次にやるべき処理としてスクリプト７００の最初に記載された処理を実施する。また実行状況ファイル９００の実行状況９０２の値がＥｘｅｃｕｔｅｄになっている場合は、次の処理を次に実行すべき処理とする。更に実行状況９０２の値がＥｒｒｏｒになっている場合は、次に実行すべき処理が無いと判断する。
【００５６】
Ｓ１０１１において、処理実行部５０３が、Ｓ１０１０で算出した次に実行すべき処理が存在するか否かを判断する。次に実行すべき処理が存在する場合は、処理がＳ１０１２へ進む。次に実行すべき処理が存在しない場合は、初期設置作業の全ての工程（処理）が完了したと判断し、処理がＳ１０１６へ進む。Ｓ１０１２において、処理実行部５０３が、Ｓ１０１０で算出された次に実行すべき処理を実施する。本処理において、処理実行部５０３が実行すべき処理を完了すると、処理がＳ１０１３へ進む。尚、本処理の実行中にエラーが発生した場合は、処理実行部５０３は現在実行している処理をキャンセルし、処理がＳ１０１３へ進む。
【００５７】
次にＳ１０１３において、処理実行部５０３が画像形成装置１０１のｄａｔａフォルダー４００内に実行状況ファイル９００を作成する。また処理実行部５０３は、実行状況ファイル９００の生成と同時に、ＲＡＭ２１１に一時的に記憶されている実行状況ファイル９００の情報も更新する。このとき実行状況ファイル９００には、処理実行部５０３によって現在挿入されているＵＳＢストレージ２０４のＵＳＢシリアル番号と、Ｓ１０１２で実行した処理の結果が記載される。Ｓ１０１２で実行した処理が正常終了していると、処理実行部５０３は、実行した処理をＥｘｅｃｕｔｅｄとして実行状況ファイル９００を作成する。またＳ１０１２で実行しておらず、かつ初期設置作業全体としても未実行の処理に対してはＵｎｅｘｅｃｕｔｅｄを実行状況９０２に書き込む。Ｓ１０１２で実行した処理が異常終了した場合つまりエラーが発生した場合は、処理実行部５０３は、実行状況９０２をＥｒｒｏｒとして実行状況ファイル９００を作成する。尚、本実施例ではＳ１０１２で実行した処理が異常終了した場合も、初期設置作業全体としての処理を継続しているが、処理が異常終了した場合は処理前提を終了しても良い（例えば、Ｓ１０１６に処理が進む）。尚、Ｓ１０１２において、処理実行部５０３が処理のたびに実行状況ファイル９００を再作成しても良いし。実行状況９０２だけを更新しても良い。
【００５８】
Ｓ１０１４において、処理実行部５０３が、Ｓ１０１２で実行した処理を適用するために画像形成装置１０１の再起動が必要か否かを判断する。再起動が必要と判断した場合は、処理がＳ１０１５へ進む。再起動は不要と判断した場合は、処理がＳ１０１０へ進む。尚、再起動が必要か否かを判断する要素として、スクリプト７００に再起動の有無を記載しても良い。また再起動が必要か否かの判断は、処理実行部５０３がＳ１０１２の処理を実行した結果、ネイティブプログラム３０１や拡張プログラム実行プラットフォーム３０２などからの再起動の指示の有無で決めても良い。
【００５９】
Ｓ１０１５において、処理実行部５０３は、画像形成装置１０１を再起動する。このとき別の作業（例えば、印刷ジョブ）が動いている場合は、その作業の完了を待ってから画像形成装置１０１を再起動しても良い。尚、Ｓ１０１２の処理を実行した結果、ネイティブプログラム３０１が自動的に再起動を実行してもよい。その場合、ネイティブプログラム３０１が自動的に再起動を実行する前に、Ｓ１０１３の処理は完了しているものとする。そして、Ｓ１０１５の処理が終わると、Ｓ１０００へ戻る。
【００６０】
Ｓ１０１６において、処理実行部５０３が、ＵＩ制御部５０１を介し、初期設置作業全体の実行結果をユーザーへ通知する。このとき処理実行部５０３は、ＲＡＭ２１１に一時的に記憶された実行状況ファイル９００の情報を参照し、全ての初期設置作業の工程がＥｘｅｃｕｔｅで完了している場合は処理成功画面（不図示）を表示しても良い。また処理実行部５０３は、ＲＡＭ２１１に一時的に記憶された実行状況ファイル９００の情報を参照し、いずれかの初期設置作業の工程がＥｒｒｏｒとなっている場合は処理失敗画面（不図示）を表示しても良い。
【００６１】
尚、図１０において、ｄａｔａフォルダー４００に実行状況ファイル９００が残ったまま処理を完了しているが、全ての処理が完了した後に実行状況ファイル９００を削除しても良い。または初期設置作業サポート機能を画像形成装置１０１からアンインストールする過程において、実行状況ファイル９００を削除しても良い。
【００６２】
また図１０では、Ｓ１０１３において処理が完了するたびにｄａｔａフォルダー４００内の実行状況ファイル９００を作成、または更新しているが、Ｓ１０１３ではＲＡＭ２１１上の実行状況９０２のみが更新されていても良い。その場合はＳ１０１４において再起動が必要と判断された後にｄａｔａフォルダー４００内の実行状況ファイル９００を作成、または更新すれば良い。
【００６３】
本実施例では、Ｓ１００８において、管理者権限であるかどうかを判定したが、管理者でなくとも、許可されたユーザーであるかどうかを判定するユーザー認証であってもよい。
【００６４】
実施例１の画像形成装置によれば、最初の認証を行った後に画像形成装置の再起動を行っても、再度認証せずとも処理を継続することが可能となる。つまり複数の工程から構成され、かつ初期設置作業の工程間に画像形成装置の再起動を含むような一連の初期設置作業を、少ない認証回数で効率的に継続実行することができる。
【００６５】
＜実施例２＞
実施例１の画像形成装置は、初期設置作業の一処理を実行した後、実行状況ファイルを作成し、そのファイルを利用することで、画像形成装置の再起動をしても認証することなく効率的に初期設置作業を実施することができる。しかし初期設置作業を実行中にＵＳＢストレージを抜去してしまうと、実行中の処理、またはＵＳＢストレージへアクセスしたときにエラーが発生し、処理がエラー終了してしまう。この場合、初期設置作業を一度開始すると、意図的にＵＳＢストレージを抜去するなどの方法により、処理を中断することができない。そこで、実施例２の画像形成装置は、抜去された際にフラグを立てることで、ＵＳＢストレージが抜去された場合でも処理をエラー終了とせず、再度ＵＳＢストレージを挿入することで初期設置作業を再開できるようにする。尚、実施例２は、図１０のフローチャートが示す処理以外は、実施例１と同様であるため、各図に対する説明を省略する。
【００６６】
図１１は、実施例２のソフトウェア初期設置作業を説明するフローチャートである。図１１のＳ１０００乃至Ｓ１０１６は、図１０のＳ１０００乃至Ｓ１０１６の処理と同様であるので、説明を省略する。
【００６７】
まず画像形成装置１０１からＵＳＢストレージ２０４が抜去された際の処理について説明する。画像形成装置１０１からＵＳＢストレージ２０４が抜去されると、ストレージ管理部５０２は抜去されたことを検知し、その旨を処理実行部５０３に伝える。処理実行部５０３は、ＵＳＢストレージ２０４の抜去されたことを受け取ると、ＲＡＭ２１１上に作業を中断することを示す作業中断フラグを立てる（Ｓ１１００）（以降、フラグが立っていることをＯＮ、フラグが立っていないことをＯＦＦとする）。尚、本処理は、抜去されたイベントとして発生し、図１１のＳ１０００乃至Ｓ１０１６、及びＳ１１０１、Ｓ１１０２の処理とは別のスレッドとして実行される。つまりＳ１０１２を実行中にＵＳＢが抜去された場合、処理実行部５０３が実行中の処理と同時、または実行中の処理より優先的に本処理を実行するものとする。
【００６８】
Ｓ１１０１において、処理実行部５０３は、ＲＡＭ２１１上の作業中断フラグがＯＮかＯＦＦかを確認する。作業中断フラグがＯＦＦの場合は処理がＳ１０１３へ進み、処理実行部５０３はＳ１０１３において実行状況を更新する。作業中断フラグがＯＮの場合は、処理がＳ１１０２へ進み、処理実行部５０３がＲＡＭ２１１上の作業中断フラグをＯＦＦにする（Ｓ１１０２）。その後、ＵＳＢストレージが挿入されることを待つため、処理がＳ１０００へ進む。尚、作業中断フラグがＯＮの場合は、実行状況ファイル９００の実行状況９０２が更新されない。つまりＳ１０１２において処理実行部５０３が実行した処理結果がエラーであっても、Ｓ１０１２における処理が実行していないことになる。そのため、ＵＳＢストレージ２０４が再度挿入され、処理実行部５０３がＳ１０１０により次に実行すべき処理を算出する際には、実行状況９０２がＵｎｅｘｅｃｕｔｅｄの、ＵＳＢストレージ２０４の抜去時の処理から開始される。尚。Ｓ１０１２において、処理実行部５０３が実行した処理がＵＳＢストレージ２０４の抜去に影響されない処理であり、処理が正常終了した場合は、Ｓ１１０２で実行状況ファイル９００の実行状況９０２を更新してもよい。そして、Ｓ１１０２の処理が終わると、Ｓ１０００へ戻る。
【００６９】
実施例２の画像形成装置によれば、初期設置作業中にＵＳＢストレージを抜去された場合に作業中断フラグを立てることで、初期設置作業全体の処理をエラー終了とせず、ＵＳＢストレージを再度挿入することで初期設置作業を再開することができるようになる。つまり複数の工程から構成され、かつ初期設置作業の工程間に画像形成装置の再起動を含むような一連の初期設置作業を最初からやり直すことなく効率的に継続実行することができる。
【００７０】
＜実施例３＞
実施例１、及び実施例２の画像形成装置は、画像形成装置の再起動後でもＵＳＢストレージ内に存在する実行対象のスクリプト及びその他のデータを信頼し、ファイルの存在チェックのみを実施していた。しかし、初期設置作業における再起動時、つまり画像形成装置のシャットダウンシーケンスから画像形成装置に起動までの間にＵＳＢストレージを抜去され、スクリプトやデータを改竄されても気付くことなく実行してしまう。そこで、実施例３の画像形成装置は、ＵＳＢストレージ内のデータに対する改竄チェックを入れることで、安全かつ効率的に初期設置作業を実施できるようにする。尚、実施例３は、図９の実行状況ファイル、及び図１０、図１１のフローチャートが示す処理以外については、実施例１、実施例２と同様であるため、各図に対する説明を省略する。
【００７１】
図９（ｂ）は、本実施例で用いられる初期設置作業の現在の実行状況が記載された実行状況ファイルの一例を示す図である。尚、９００乃至９０２は実施例１、及び実施例２と同様のため、説明を省略する。９０３は、ＵＳＢストレージ内のデータのハッシュ値（以降、ＵＳＢデータハッシュ値）が記載されており、本実施例においてはＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ  ５）により求められた値が記載されている。尚、本実施例ではＭＤ５によるハッシュ値が記載されているが、これに限らず、ＳＨＡ−１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ  １）やＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）などを用いた値であっても良い。
【００７２】
図１２は、実施例３のソフトウェア初期設置作業を説明するフローチャートである。図１２のＳ１０００乃至Ｓ１０１６は、図１０のＳ１０００乃至Ｓ１０１６の処理と同様であるので、説明を省略する。Ｓ１２００において、処理実行部５０３が、ストレージ管理部５０２を介し、現在挿入されているＵＳＢストレージ２０４内のデータのハッシュ値を計算する。本処理において計算されたハッシュ値は、処理が終わるまでＲＡＭ２１１に一時的に記憶される。
【００７３】
Ｓ１２０１において、処理実行部５０３が、Ｓ１００３で読み込んだ実行結果ファイルのＵＳＢデータハッシュ値９０３と、Ｓ１２００で計算したＵＳＢデータハッシュ値を照らし合わせる。照らし合わせた結果、前回のＵＳＢデータハッシュ値９０３と、今回のＵＳＢデータハッシュ値が一致する場合は、処理がＳ１００４へ進む。ＵＳＢデータハッシュ値が異なる場合は、初期設置作業の途中でデータが改竄された、もしくは修正されたと判断し、Ｓ１００３で読み込んだ実行状況ファイル９００の情報をＲＡＭ２１１から削除し、処理がＳ１００６へ進む。
【００７４】
Ｓ１２０２において、処理実行部５０３が、初期設置作業が初回実行されたとして、開始直後のＵＳＢストレージ２０４内のデータのハッシュ値を計算する。本処理により計算されたＵＳＢデータハッシュ値は、処理が終わるまでＲＡＭ２１１に一時的に記憶される。その後Ｓ１０１３において、処理実行部５０３が、ＵＳＢデータハッシュ値を含めて実行状況ファイル９００を生成、または更新する。
【００７５】
図１２では、実施例２における作業中断のための処理が記載されていないが、図１１で説明された処理を図１２に加えても良い。また実施例３において説明されたデータは全て平文で記載されているが、更に安全な処理を実施するために各データが暗号化されていても良い。
【００７６】
実施例３の画像形成装置によれば、画像形成装置の再起動中などにＵＳＢストレージ内のデータが改竄、または変更されたことを検知することができるため、安全かつ効率的に初期設置作業を実施できるようになる。
【００７７】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能をソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピューター（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2016009454.tif 000003
【図２】
2016009454.tif 000004
【図３】
2016009454.tif 000005
【図４】
2016009454.tif 000006
【図５】
2016009454.tif 000007
【図６】
2016009454.tif 000008
【図７】
2016009454.tif 000009
【図８】
2016009454.tif 000010
【図９】
2016009454.tif 000011
【図１０】
2016009454.tif 000012
【図１１】
2016009454.tif 000013
【図１２】
2016009454.tif 000014