(57)【特許請求の範囲】
【請求項１】
オペレーティング・システムの第１インスタンスと、複数のアプリケーションと、コンピューター・システムのユーザーによって作成されたデーターとを格納する少なくとも１つの記憶エレメントを備えている前記コンピューター・システムにおいて用いる方法であって、
前記オペレーティング・システムの前記第１インスタンスと前記複数のアプリケーションとを前記少なくとも１つの記憶エレメントから除去するステップであって、前記オペレーティング・システムの前記第１インスタンスが設定値を含む、ステップと、
前記オペレーティング・システムの前記第１インスタンスと交換するために、前記少なくとも１つの記憶エレメント上に前記オペレーティング・システムの第２インスタンスをインストールするステップであって、
前記設定値の１つ以上を前記オペレーティング・システムの前記第２インスタンスに適用する前に、前記設定値の１つ以上を変更し、特定の設定値または設定値の組み合わせが前記オペレーティング・システムの前記第２インスタンスに適用されないように、前記設定値の少なくとも一部を、前記オペレーティング・システムの前記第２インスタンスに適用するステップ
を含むステップと
を含み、前記データーを前記少なくとも１つの記憶エレメントから除去することなく、前記除去するステップおよび前記インストールするステップを実行する、方法。
【請求項２】
請求項１記載の方法において、前記オペレーティング・システムの前記第１インスタンスが、ユーザー・アカウントを含み、前記インストールするステップが、前記ユーザー・アカウントの少なくとも一部を、前記オペレーティング・システムの前記第２インスタンスに移すステップを含む、方法。
【請求項３】
請求項１記載の方法において、前記インストールするステップが、前記オペレーティング・システムのリカバリー・イメージを用いるステップを含む、方法。
【請求項４】
請求項３記載の方法において、前記インストールするステップが、前記リカバリー・イメージを外部記憶媒体から前記少なくとも１つの記憶エレメントに転送するステップを含む、方法。
【請求項５】
請求項３記載の方法において、前記インストールするステップが、前記リカバリー・イメージを前記少なくとも１つの記憶エレメント上のリカバリー・パーティションから読み出すステップを含む、方法。
【請求項６】
請求項３記載の方法において、前記インストールするステップが、前記オペレーティング・システムの前記第１インスタンスをオフライン環境にブートするステップと、前記オペレーティング・システムの前記第１インスタンスを利用して前記リカバリー・イメージを作成するステップとを含む、方法。
【請求項７】
請求項１記載の方法において、前記インストールするステップが、前記除去するステップが完了した後にのみ実行される、方法。
【請求項８】
請求項１記載の方法において、前記インストールするステップが、前記除去するステップの完了前に実行される、方法。
【請求項９】
請求項１記載の方法において、前記除去するステップまたは前記インストールするステップを開始する前に、前記少なくとも１つの記憶エレメントが前記オペレーティング・システムの前記第１インスタンスと前記第２インスタンスの両方を記憶するのに十分な記憶空間を有しているか否かを判定するステップを更に含む、方法。
【請求項１０】
請求項９記載の方法において、前記少なくとも１つの記憶エレメントが前記オペレーティング・システムの前記第１インスタンスと前記第２インスタンスの両方を記憶するのに十分な記憶空間を有していないと判定された場合、前記除去するステップが前記インストールするステップの前に実行される、方法。
【請求項１１】
請求項１０記載の方法において、除去された前記複数のアプリケーションのうちの少なくとも１つを再度取得するように前記ユーザーに指針を与えるステップを更に含む、方法。
【請求項１２】
コンピューター・システムであって、
オペレーティング・システムの第１インスタンス、複数のアプリケーション、および前記コンピューター・システムのユーザーによって作成されたデーターを格納する少なくとも１つの記憶エレメントと、
少なくとも１つのプロセッサーと
を備え、前記少なくとも１つのプロセッサーは、
前記データーを前記少なくとも１つの記憶エレメントから除去することなく、前記オペレーティング・システムの前記第１インスタンスと前記複数のアプリケーションを前記少なくとも１つの記憶エレメントから除去し、
前記データーを前記少なくとも１つの記憶エレメントから除去することなく、前記オペレーティング・システムの前記第１インスタンスと交換するために、前記少なくとも１つの記憶エレメント上に前記オペレーティング・システムの第２インスタンスをインストールし、
前記除去または前記インストールの前に、前記少なくとも１つの記憶エレメントが前記オペレーティング・システムの前記第１インスタンスと前記第２インスタンスの両方を記憶するのに十分な記憶空間を有しているか否かを判定し、
特定の設定値または設定値の組み合わせが前記オペレーティング・システムの前記第２インスタンスに適用されないように、前記オペレーティング・システムの前記第１インスタンスが含む設定値の少なくとも一部を、前記オペレーティング・システムの前記第２インスタンスに適用する
ようにプログラムされている、コンピューター・システム。
【請求項１３】
請求項１２記載のコンピューター・システムにおいて、前記オペレーティング・システムの前記第１インスタンスが、ユーザー・アカウントを含み、前記インストールが、前記ユーザー・アカウントの少なくとも一部を、前記オペレーティング・システムの前記第２インスタンスに移すことを含む、コンピューター・システム。
【請求項１４】
請求項１２記載のコンピューター・システムにおいて、前記少なくとも１つのプロセッサーは、前記オペレーティング・システムの前記第１インスタンスをオフライン環境にブートし、前記オペレーティング・システムの前記第１インスタンスを利用してリカバリー・イメージを作成するように更にプログラムされている、コンピューター・システム。
【請求項１５】
請求項１２記載のコンピューター・システムにおいて、前記少なくとも１つのプロセッサーは、前記データーを前記少なくとも１つの記憶エレメントの保護エリアに移動するように更にプログラムされている、コンピューター・システム。
【請求項１６】
コンピューター・システムに方法を実行させるプログラムであって、前記コンピューター・システムは、オペレーティング・システムの第１インスタンスと、複数のアプリケーションと、該コンピューター・システムのユーザーによって作成されたデーターとを格納する少なくとも１つの記憶エレメントを備え、前記方法は、
前記オペレーティング・システムの前記第１インスタンスと前記複数のアプリケーションとを前記少なくとも１つの記憶エレメントから除去するステップと、
前記オペレーティング・システムの前記第１インスタンスと交換するために、前記少なくとも１つの記憶エレメント上に、前記オペレーティング・システムの第２インスタンスをインストールするステップと、
特定の設定値または設定値の組み合わせが前記オペレーティング・システムの前記第２インスタンスに適用されないように、前記オペレーティング・システムの前記第１インスタンスが含む設定値の少なくとも一部を、前記オペレーティング・システムの前記第２インスタンスに適用するステップと
を含み、前記データーを前記少なくとも１つの記憶エレメントから除去することなく、前記除去するステップおよび前記インストールするステップを実行し、前記インストールするステップが、前記除去するステップの完了前に実行される、プログラム。
【請求項１７】
請求項１６記載のプログラムであって、前記オペレーティング・システムの前記第１インスタンスが、ユーザー・アカウントを含み、前記インストールするステップが、前記ユーザー・アカウントの少なくとも一部を、前記オペレーティング・システムの前記第２インスタンスに移すステップを含む、プログラム。
【請求項１８】
請求項１６記載のプログラムであって、前記インストールするステップが、前記オペレーティング・システムの前記第１インスタンスをオフライン環境にブートするステップと、前記オペレーティング・システムの前記第１インスタンスを利用してリカバリー・イメージを作成するステップとを含む、プログラム。
【請求項１９】
請求項１６記載のプログラムであって、前記方法が更に、前記除去するステップおよび前記インストールするステップの前に、前記少なくとも１つの記憶エレメントが前記オペレーティング・システムの前記第１インスタンスと前記第２インスタンスの両方を記憶するのに十分な記憶空間を有しているか否かを判定するステップを含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本発明は、コンピューター・ソフトウェアに関し、更に特定すれば、システムをその元の工場出荷状態にリセットするために用いられるソフトウェアに関する。
【背景技術】
【０００２】
[0002]  従来のオペレーティング・システムの中には、ユーザーに、コンピューター上で実行する当該オペレーティング・システムおよび／またはアプリケーションを、これらのコンポーネントが以前の時点において存在していた状態に「戻す」（roll back）または「復元する」(restore)能力を提供するものがある。例えば、「システム復元」能力は、システム・ファイル、レジストリー・キー、インストールされているアプリケーション、および／または他のコンポーネントを、システム誤動作または障害の前にこれらのコンポーネントが存在していた状態に戻すことをユーザーに可能にすることができる。同様に、オペレーティング・システムの中には、「システム・リセット」を実行する能力を提供するものがあり、これによってオペレーティング・システムおよび／またはアプリケーションをその元の「工場」設定値にリセットする。通例、システム・リセットは、システムを  オペレーティング・システムおよび／またはアプリケーションに対して何らかの変更が行われる前、および／またはシステムにいずれのデーターも格納される前に存在していた状態に戻すためにシステム復元を実行することを伴う。（「システム復元」および「システム・リセット」という用語は、本明細書では、便宜上これらの能力を指すために用いられるが、これらの用語のいずれかと、従来のオペレーティング・システムのいずれかによって提供される能力を記述するために用いられる用語との間におけるいずれの類似性も、そのオペレーティング・システムによって提供される機能にその用語を限定するように、読解してはならない。）
【発明の概要】
【０００３】
[0003]  出願人は、コンピューター・システムの性能および／または信頼性が、多数の理由のいずれかによりときの経過とともに低下する可能性があることを認めている。例えば、オペレーティング・システムおよび／またはアプリケーションは、以前に観察したときよりも動作が遅くなったり、または頻繁に「クラッシュ」し始めることがある。これの理由の１つは、アプリケーションがもはやユーザーによって用いられていないにも拘わらず、リソースを消費し続けることをあげることができる。他の理由には、ユーザーがアプリケーションをアンインストールしようとしても、システムからそのアプリケーションが完全に除去されないことが考えられる。例えば、アプリケーション絡みでユーザーが体験する問題は、それをアンインストールすることを試みるが、そうするとアプリケーションが「引き裂かれた」(torn)状態で残ってしまうか、または「ゴミ箱」(wastes)の中に残ってしまう可能性があり、システム性能を損なう虞れがある。更に他の理由には、ユーザーによって行われた設定と、１つ以上のアプリケーションおよび／またはオペレーティング・システムによって行われた設定とがときの経過と共に一致しなくなることが考えられる。例えば、ユーザーがある時点において１群の設定を確定したが、後にインストールされたアプリケーションがこれらの設定の一部または全部を、他の設定とは相反するように変化させてしまうことが考えられる。
【０００４】
[0004]  ユーザーがシステム性能および／または信頼性の低下を体験すると、システム全体のリカバリー(recovery)を実行しようとすることがあるが、通例、ユーザーは彼／彼女の個人的なデーターを外部の記憶デバイスにバックアップし、ハード・ドライブをフォーマットし直し、そしてオペレーティング・システムおよびあらゆるアプリケーションをインストールし直す必要がある。システム性能低下に対処するためにシステム全体のリカバリーをユーザーが実行することには、多数の問題が伴う。第１に、これは非常に時間がかかる作業である。加えて、ユーザーの中には、システム全体のリカバリーを開始する前に、彼らの個人データーを外部記憶デバイスにバックアップしなければならないことを認めない者もいるかもしれず、後にハード・ドライブをフォーマットし直すときに、そのデーターを結果的に失う可能性がある。その結果、ユーザーがアプリケーションをアンインストールすることによってシステム性能を改善しようとして失敗したことによって苛々し、更にシステム全体のリカバリーを実行したことの結果彼らの個人的データーを再現不可能に失うと、二重に苛々するという結末になる可能性がある。
【０００５】
[0005]  代わりにユーザーが通常採用する手法は、システムが最適に実行していた以前の状態にシステムを復元すること、またはそれを元の工場出荷状態にリセットすることである。しかしながら、これらの手法の各々にも同様に多数の問題がある。例えば、システムを以前にバックアップしたバージョンに復元するには、バックアップが行われていることが前提条件となる。バックアップを行うのは、時間がかかるプロセスであり、（先に注記したように）外部記憶デバイスが必要となるが、外部記憶デバイスをなくす可能性があり、および／または必要になったときになかなか見つけられなこともあり得る。加えて、システムがいつ最適に実行しているか識別すること、そして彼／彼女がその時点において、今後の使用のためにシステムをバックアップする必要があることを覚えておくことは、ユーザーにとって非常に難しい可能性がある。ユーザーが、ある特定の時点においてシステムが最適に実行していると確信し、バックアップを開始することを覚えていても、ユーザーの確信が誤っていることもある。何故なら、システムは、何の兆候も見られない内でも、後の性能低下の根源的な原因を含む可能性があるからである。加えて、システム復元またはシステム・リセットのいずれを実行しても、システム全体のリカバリーを実行する場合と同様、ユーザーは彼らの個人的データーを外部ドライブにバックアップする必要がある。何故なら、従来の手法では、復元またはリセット動作の間にユーザーのデーターが削除されないことを保証できないからである。
【０００６】
[0006]  本発明の実施形態は、システム上にあるユーザーの個人的データーを破壊することなく、オペレーティング・システムおよび／またはアプリケーションの既存のインスタンスを新たなインスタンスと交換するためにシステム・リセットを実行することによって、ユーザーがシステム性能および／または信頼性低下に取り組むことができる技法を提供し、これにより従来の手法に付随するこれらおよびその他の欠点に取り組む。システム上において性能および／または信頼性低下の原因となり得るアプリケーションはいずれも、完全に除去することができる。オペレーティング・システムおよびアプリケーションの既存のインスタンスを除去する前に、ユーザーの個人的データーをハード・ディスク上にある保護エリア内に待避させておき、除去が行われる間破壊されずに残すことができる。オペレーティング・システムの新たなインスタンスを適用するとき、ユーザーは彼／彼女がシステム上に有することを望むあらゆるアプリケーションを再インストールすることができる。したがって、本発明の実施形態は、ユーザーが、彼らの個人的データーを破壊することなく、そして時間がかかり複雑なバックアップおよび／または復元動作を実行する必要なく、システムの性能および／または信頼性低下に取り組むことができる簡単な技法を提供することができる。
【０００７】
[0007]  以上のことは、本発明の非限定的な摘要である。本発明は、添付した特許請求の範囲によって定義されることとする。
[0008]  添付図面は、同じ縮尺率で描かれることを意図していない。図面において、同じまたはほぼ同じコンポーネントが種々の図において示されている場合、各々、同様の番号によって表されている。明確化のために限って、全ての図面において全てのコンポーネントには名称を付けていない。
【図面の簡単な説明】
【０００８】
【図１】図１は、本発明の実施形態による、システム・リセットを実行する前におけるシステム構成例を示すブロック図である。
【図２】図２は、本発明の実施形態による、オペレーティング・システムの新たなインスタンスの適用時におけるシステム構成例を示すブロック図である。
【図３】図３は、本発明の実施形態による、オペレーティング・システムの新たなインスタンスにユーザー設定およびアカウントを転送したときにおけるシステム構成例を示すブロック図である。
【図４】図４は、本発明の実施形態による、オペレーティング・システムおよび／またはアプリケーションの以前のインスタンスを除去したときのシステム構成例を示すブロック図である。
【図５】図５は、本発明の実施形態にしたがってシステム・リセットを実行するプロセス例を示すフロー・チャートである。
【図６】図６は、本発明の実施形態を実現するために採用することができるコンピューター例を示すブロック図である。
【図７】図７は、本発明の態様を具体化する命令を記録することができるメモリー例を示すブロック図である。
【発明を実施するための形態】
【０００９】
[0016]  本発明の実施形態は、システム・リセットを実行することによって、ユーザーがシステムの性能および／または信頼性低下（例えば、用いられていないアプリケーションがシステム・リソースを不必要に消費することによって起こり、アプリケーションのアンインストールを試してみてそのアプリケーションの残片が後に残ってしまったことによって起こり、および／または他の原因によって起こる）に取り組むことができる技法を提供する。実施形態では、システム・リセットによって、ユーザーのデーターを破壊することなく、システム上にあるオペレーティング・システムの以前のインスタンスを新たなインスタンスと交換し、システム上にインストールされているアプリケーションを除去する。ユーザーのデーターは破壊されずに残るので、本発明の実施形態は、システム全体のリカバリーまたはシステムの復元に必要となる、個人データーを外部記憶デバイスにバックアップするという時間のかかるプロセスに耐える必要なく、またシステムを後に復元しようとするバックアップを取っておくことができるように、システムがいつ最適に実行していたか判断する必要もなく、ユーザーがシステム性能および／または信頼性低下に取り組むことを可能にすることができる。
【００１０】
[0017]  本発明の実施形態は、様々なステップを含むプロセスを提供する。第１に、ユーザーのデーターおよび設定値を特定し一覧表に纏め、次いでストレージにおける１つ以上の保護された位置に移動させる。次に、システム上にあるオペレーティング・システムおよびあらゆるアプリケーションの既存のインスタンスを除去するが、ユーザーの個人的なデーターおよび設定値は不変のままにしておく。次に、オペレーティング・システムの新たなインスタンスを適用し、次いで、ユーザーの設定値またはその一部を、オペレーティング・システムの新たなインスタンスに適用する。その後、ユーザーは、彼／彼女が望むいずれのアプリケーションでも再インストールすることができる。システム上にあるオペレーティング・システムおよびあらゆるアプリケーションの以前のインスタンスは（例えば、その全体が）除去されるので、ユーザーは再インストールされたアプリケーションを選択することができ、不要なアプリケーションの痕跡はシステム上に残らず、その性能を低下させることはない。更に、この手順全体は、ユーザーの個人的なデーターを一時的に外部記憶デバイスに移す必要なく実行することができる。この手順については、以下で図１から図４を参照して更に詳しく説明する。
【００１１】
[0018]  図１は、本発明の実施形態による、システム・リセットを実行する前におけるシステム例の上位図である。図１に示す例では、記憶エレメント１０１が現在のオペレーティング・システム（ＯＳ）１０５を格納しており、あらゆるユーザー・アカウントを反映する。現ＯＳ１０５を構成する情報の記憶エレメント１０１上の位置は、適したやり方であればいずれでも指定することができる。例えば、ＷＡ、ＲｅｄｍｏｎｄのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎが提供するＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）系のオペレーティング・システムでは、現ＯＳ１０５を構成する情報はＣ：＼Ｗｉｎｄｏｗｓ（登録商標）  ｌｏｃａｔｉｏｎに格納することができる。他のオペレーティング・システムでは、１つ以上の他の位置を指定することや、全く位置を指定しない場合もある。  本発明の実施形態は、いずれの特定の位置に格納されているオペレーティング・システムと共に用いることにも限定されない。
【００１２】
[0019]  記憶エレメント１０１は、適したタイプの記憶エレメントであればいずれでも備えることができる。これは、本発明の実施形態はこれに関して限定されないからである。例えば、記憶エレメント１０１は、ハード・ディスク、フラッシュ・ドライブ、および／または他のあらゆる適したタイプの物理的記憶媒体（複数の媒体）を備えるのでもよい。しかしながら、記憶エレメント１０１は、物理的な記憶エレメントを備える必要はなく、代わりに１つ以上の仮想記憶エレメントを備えてもよい。例えば、１つ以上の物理的記憶エレメントを表す１つ以上のソフトウェア構造(constructs)によって、ソフトウェア・エレメント１０１を実装してもよい。更に、図１に示す例は１つの記憶エレメントしか含まないが、本発明の全ての実施形態がそのように限定されるのではなく、代わりに、適した数の記憶エレメントであればいくつでも採用することができる。本発明の実施形態は、いずれの特定の実施態様のやり方にも限定されない。
【００１３】
[0020]  図１に示す例では、記憶エレメント１０１は、アプリケーションを「標準」位置１１５に格納する。これらのアプリケーションは、例えば、インストールされるアプリケーションを格納するためにオペレーティング・システムによって指定されたファイル・システム位置にインストールされたアプリケーションを含むこともできる。例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）系オペレーティング・システムでは、アプリケーション１１５をＣ：＼Ｐｒｏｇｒａｍ  Ｆｉｌｅｓディレクトリに格納することができる。他のオペレーティング・システムでは、１つ以上の他の位置を指定したり、またはアプリケーション１１５を格納する位置を全く指定しない場合もある。システムから除去すべきアプリケーションを指定するための適したやり方であればいずれでも採用することができる。何故なら、本発明の実施形態はこれに関して限定されないからである。
【００１４】
[0021]  図１の例では、記憶エレメント１０１はデーターおよびアプリケーションを「非標準」位置１２０にも格納する。実施形態では、データーおよびアプリケーション１２０が、記憶エレメント１０１上に格納されているが、現ＯＳ１０５およびアプリケーション１１５によってもたらされた(encompass)のではない何らかの情報を表す場合がある。しかしながら、本発明の全ての実施形態がそのように限定されるのではない。保存すべきデーターおよびアプリケーションは、いずれの適したやり方でも指定することができる。例えば、実施形態は記憶エレメント１０１を走査して、ユーザーの個人的データー、アカウント、アプリケーションおよび／または設定値を格納しているように思われる記憶位置を特定し、このような情報を格納するために通常用いられることが分かっている記憶位置（例えば、フォルダー）を探し、あるいは他のいずれかの適したやり方でデーターおよびアプリケーション１２０を特定することができる。
【００１５】
[0022]  図２は、オペレーティング・システム１２５の新たなインスタンスを記憶エレメント１０１に適用した後における、図１に示したシステム例を示す。実施形態では、オペレーティング・システムの新たなインスタンスは、ＯＳの「クリーン・コピー」(clean copy)であり、全ての設定値がデフォルト・モードに置かれており、クリーン・コピーでなければ(otherwise)オペレーティング・システムが提供することができたアプリケーションは含まれていない。しかしながら、新たなオペレーティング・システムのインスタンスは、適した設定値および／またはアプリケーションであればいずれでも組み込むことができる。何故なら、本発明の実施形態はこれに関して限定されないからである。
【００１６】
[0023]  オペレーティング・システム１２５の新たなインスタンスの記憶エレメント１０１への適用は、多数の方法のいずれでも行うことができる。例えば、実施形態は、外部媒体（例えば、記録ディスク）から「リカバリー・イメージ」を転送することを含んでもよい。リカバリー・イメージは、オペレーティング・システムの新たなインストールに必要とされるデーターの本体を含む。他の実施形態では、記憶エレメント１０１のリカバリー・パーティションからリカバリー・イメージを読み出すことを伴うことがある。これに関して、必要な場合にオペレーティング・システムの再インストールを容易に行うことができるように、コンピューターおよび／または記憶エレメントの製造業者が、リカバリー・イメージを、オペレーティング・システムの「生の」インスタンスが格納されている位置とは別の記憶エレメント上の位置にロードすることもできる。
【００１７】
[0024]  更に他の実施形態では、ＯＳ１２５の新たなインスタンスを構成するリカバリー・イメージを作成するために、現ＯＳ１０５をオフライン環境にブートすることを伴うこともある。このオフライン環境は、実施形態では、オペレーティング・システムが実行していない実行環境である。オフライン環境は、例えば、特定の目標に定めたプログラムを実行するのに必要なコンポーネントのみを含むことができる。この環境にブートされると、現オペレーティング・システム１０５によるこれらのプログラムの実行によって、リカバリー・イメージを生成させることができる。次に、図２に示すように、リカバリー・イメージを記憶エレメント１０１に適用することができる。
【００１８】
[0025]  ＯＳ１２５の新たなインスタンスは、記憶エレメント１０１上における適した位置であればどこにでも格納することができる。例えば、実施形態では、ＯＳ１２５の新たなインスタンスは、現ＯＳ１０５が格納されているフォルダー（１つまたは複数）とは異なる１つ以上のフォルダーに格納することができる。本発明の実施形態は、ＯＳ１２５の新たなインスタンスをいずれの特定の位置（１つまたは複数）に格納することにも限定されない。
【００１９】
[0026]  ＯＳ１２５の新たなインスタンスを記憶エレメント１０１に適用したことの結果、記憶エレメント１０１上にはこの時点でオペレーティング・システムの２つのインスタンスが存在することになり、現ＯＳ１０５がユーザーの設定値、アカウント、およびその他の情報を反映する。図３は、これらの設定値、アカウント、およびその他の情報をＯＳ１２５の新たなインスタンスに適用するために変更されたシステム例を示す。具体的には、図３は、ユーザーの設定値、アカウント、およびその他の情報が現ＯＳ１０５からＯＳの新たなインスタンス１２５に転送されることを、１３０において示す。これは、多数の方法のいずれでも実行することができる。例えば、実施形態の中には、現ＯＳ１０５によって維持されているレジストリーの１つ以上のハイブ(hives)を、ＯＳ１２５の新たなインスタンスによって維持されているレジストリーに移す場合もある。
【００２０】
[0027]  ユーザーの設定値、アカウント、およびその他の情報をＯＳ１２５の新たなインスタンスに移すには、多数の動作のいずれを実行することも含むことができる。実施形態の中には、既存の設定値から生ずることが分かっている今後の問題を阻止するためというようなことのために、移動が設定値の変更を含むとよい場合もある。例えば、特定の設定値、または設定値の組み合わせが問題であることが分かっている（例えば、ヘルプ・ラインへのユーザーの通話回数に基づいて）場合、この設定値（１つまたは複数）をＯＳ１２５の新たなインスタンスには適用しないのでもよい。例えば、ワイヤレス・ネットワーク構成に関するある種の設定値の結果ユーザー体験に問題が生ずることが分かっている場合（ユーザーが誤った設定値を入力した(implement)ため、アプリケーションがときの経過と共に設定値を変更したため、および／または他の理由のために、これが生ずることがある）、これらの設定値をＯＳ１２５の新たなインスタンスに移さなくてもよい。実施形態の中には、問題を解決することがわかっている設定値または設定値の組み合わせを、代わりに入力することができる場合がある。本発明の実施形態は、適したやり方であればいずれでも実現することができる。
【００２１】
[0028]  １つ以上のアプリケーションを除去することによって設定値が用いられなくなることがあるので、ユーザー設定値の一部を移さなくてもよい。例えば、ユーザーのデスクトップ上において、除去しようとしているアプリケーションを指す「プログラム・ショートカット」(program shortcut)は、ＯＳ１２５の新たなインスタンスに転送しなくてもよい。ＯＳ１２５の新たなインスタンスに転送される設定値、アカウント、および／またはその他の情報がいずれも有効であり、システム上にある他の情報と相容れることを保証するためには、多数の種類の措置のいずれでも講ずることができる。
【００２２】
[0029]  実施形態では、ユーザー・アカウントへのリンクを指定するあらゆるデーター・ファイルに対して、ＯＳ１２５の新たなコピーにおいてアカウントが存在することを保証するために、ユーザー・アカウント１１１の移動が、データーおよびアプリケーション１２０を検査することを伴うとよい。例えば、ユーザーＡおよびＢが図示のシステムと、ファイルＡ．ｔｘｔおよびＢ．ｔｘｔをそれぞれ用いる場合、ユーザーＡおよびＢのアカウントがＯＳ１２５の新たなインスタンスに移動することを保証するために、ユーザー・アカウントの移動が、ファイルＡ．ｔｘｔおよびＢ．ｔｘｔを調べることを伴うとよい。勿論、本発明の実施形態は、いずれかの適したやり方で、データーがいずれの数（ひとりを含む）のユーザーにでもアクセス可能であることを保証することができる。
【００２３】
[0030]  図４は、現ＯＳ１０５およびアプリケーション１１５を除去したときにおけるシステム例を示す。除去は、多数の方法のいずれでも行うことができる。例えば、現ＯＳ１０５およびアプリケーション１１５を構成する情報の記憶位置が分かっている場合、その記憶位置（１つまたは複数）を指定する１つ以上の削除動作を実行することによって、この情報を除去することができる。現ＯＳ１０５およびアプリケーション１１５を構成する情報の記憶位置の全てが分かっているのではない場合、または確信をもって判定することができない場合、ＯＳ１２５の新たなインスタンスならびにデーターおよびアプリケーション１２０を格納することが分かっている位置に格納されない情報の全てを除去することができる。現ＯＳ１０５およびアプリケーション１１５を除去するためには、多数の技法のいずれでも採用することができる。何故なら、本発明の実施形態はこれに関して限定されないからである。
【００２４】
[0031]  本発明の実施形態は、システム・リセットが行われる前にある種の条件が満たされていることを検証するための手段を設けることもできる。例えば、実施形態は、システム・リセットを開始する前に、記憶エレメント１０１がＯＳ１２５の新たなインスタンスのために十分な格納空間を含むことを検証することができる。含まない場合、最初に記憶エレメント１０１から現ＯＳ１０５を除去し（「ワイプする」）、次いでＯＳ１２５の新たなインスタンスを（例えば、その除去に先立って、現ＯＳ１０５が格納されていた同じ記憶位置（１つまたは複数）に）適用する柔軟性をユーザーに提供するとよい。この技法の一例（即ち、プロセス例５００）を図５に示す。
【００２５】
[0032]  プロセス例５００は、動作５０２から開始し、システム・リセットを開始する前に１つ以上のチェックを行う。例えば、記憶エレメントが、オペレーティング・システムの新たなインスタンス、および現在格納されているオペレーティング・システムの現インスタンスの双方を格納する十分な記憶空間を含むか否か判定を行うことができる。プロセス例５００では、動作５０２は、オペレーティング・システムの新たなインスタンスをインスタンス化するために用いられるリカバリー・イメージを突き止めることも含む。
【００２６】
[0033]  動作５０２におけるチェック（１つまたは複数）の結果、記憶エレメント上にはオペレーティング・システムの新たなインスタンスおよびオペレーティング・システムの現インスタンスの双方を格納するための十分な記憶空間がないと判定された場合、プロセス例５００は動作５０４に進み、リセットを進めるには、オペレーティング・システムの現インスタンスを除去する必要があることの指示をユーザーに与える。実施形態の中には、オペレーティング・システムの現在のインスタンスを除去した結果、オペレーティング・システムの現在のインスタンスにおいて反映されていたユーザー設定値がいずれも保存されず、「工場リセット」が実行されることになる場合がある。しかしながら、本発明の全ての実施形態がこのような実施態様に限定されるのではない。例えば、実施形態の中には、リセットが実行される前にオペレーティング・システムの現在のインスタンスが除去されても、ユーザーの設定値を保存することができる能力を設けることができるものもある。
【００２７】
[0034]  動作５０２において、オペレーティング・システムの双方のインスタンスに対して十分な記憶空間が存在すると判定され、更に動作５０２において実行された他のあらゆる妥当性判断も合格であった場合、プロセス例５００は動作５０６に進み、「基本」および「高度」リセット動作間で選択を行うようにユーザーを促す。実施形態の中には、「高度」リセットを実行することが、リセットに関するある種の選択肢をユーザーに提示することを含む場合もある。ユーザーは、リセットを実行するやり方を指定するために、これらの選択肢から選択することができる。選択肢の一例は、例えば、オペレーティング・システムの現在のインスタンスを、新たなインスタンスを適用する前に除去するか否かであってもよい。多数の選択肢のいずれでも提示することができる。
【００２８】
[0035]  次いで、基本または高度リセット動作を選択するユーザーの入力を、動作５０８において処理する。ユーザーが高度リセットを実行することを選択した場合、プロセス例５００は動作５１０に進み、リセット動作に関する選択肢を指定することをユーザーに許可する。次いで、動作５１０の完了時に、あるいは動作５０８においてユーザーが基本リセット動作を選択したと判断した場合、または動作５０４の完了時に、動作５１２が開始する。
【００２９】
[0036]  動作５１２において、オフライン環境でオペレーティング・システムを再起動させる。先に注記したように、オフライン環境とは、オペレーティング・システムが実行していない実行環境とすることができる。しかしながら、本発明の実施形態はこのような実施形態に限定されるのではない。更に、オフライン環境にブートすることは、オペレーティング・システムの新たなインスタンスを記憶エレメントに適用するために可能な１つの技法に過ぎない。多数の他の技法のいずれでも、代わりに採用することができる。
【００３０】
[0037]  次に、プロセス例５００は動作５１４に進み、オペレーティング・システムの現インスタンスの除去が承認されたか否か（例えば、動作５０４における警告の提示後、またはユーザーが動作５０６において高度リセットを選択し、次いで動作５１０において現インスタンスを除去すべきことを示した後）判定を行う。承認された場合、プロセス５００は動作５１６に進み、動作５１６においてオペレーティング・システムの現インスタンスを除去する。次いで、オフライン・ブート環境におけるプログラムの実行によってというようにして、動作５１８においてリカバリー・イメージを適用する。
【００３１】
[0038]  動作５１４に戻り、オペレーティング・システムの現インスタンスの除去が承認されなかったと判定された場合（例えば、ユーザーが動作５０６において基本リセットを選択したか、または動作５０６において高度リセットを選択したが、動作５１０において現インスタンスを除去すべきことを指定しなかったために）、プロセス５００は動作５２２に進み、既に記憶エレメントに格納されているオペレーティング・システムの現インスタンスに加えて、リカバリー・イメージを適用する。次いで、プロセス例５００は動作５２４に進み、データーおよび設定値を収集して格納し、次いで動作５２６においてリセットを確定する(commit)。
【００３２】
[0039]  動作５２６または５１８のいずれかの完了時に、プロセス５００は動作５２０に進み、適用したリカバリー・イメージを起動する。次いで、動作５２８において、オペレーティング・システムの現インスタンスが、新たなインスタンスを適用する前に除去されたか否か判定を行う。そうである場合、プロセス例５００は動作５３０に進み、「第１ブート」体験をユーザーに示す。これに関して、プロセス例５００におけるオペレーティング・システムの現インスタンスの除去によって、「工場リセット」が実行されたので、動作５３０は、初期設定値を定めること、および／または他の構成設定タスクを実行することをユーザーに許可することを含むとよい。
【００３３】
[0040]  動作５２８において、オペレーティング・システムの既存のインスタンスが、新たなインスタンスを適用する前に除去されなかったと判定された場合、プロセス例５００は動作５３２に進み、オペレーティング・システムの新たに適用されるインスタンスに、データーおよび／または設定値（例えば、動作５２４において収集した）を適用する。次いで、プロセス例５００は動作５３２に進み、リセットを実行した結果除去されたいずれのアプリケーションについてもこれを再度取得することに対する指針を、ユーザーに提示する。これは、多数の方法のいずれでも提示することができる。例えば、以前に購入したプログラムをユーザーに再インストールさせるオンライン設備へのアクセスを、ユーザーに与えることができる。
【００３４】
[0041]  動作５３０または５３４のいずれかの完了時に、プロセス例５００は完了する。
[0042]  尚、以上のことから、本発明の実施形態は、システム・リセットを実行している間に、ユーザーによっては別個に購入する必要があるかもしれない外部記憶デバイスにユーザーの個人的データーおよび／またはカスタム化した設定値を保存し、ユーザーが時間のかかるバックアップを実行するプロセスに耐える必要をなくすることを可能にする。コンピューターおよび／またはオペレーティング・システムの供給業者も便益を得ることができる。何故なら、供給業者は、リセットを実行することに伴うユーザー・サポートの対話減少を体験することができるからであり、リセット動作を簡素化することにより、より多くのユーザーが彼ら自身でその動作を実行する自信を持つことができるからである。更に、システム・リセットの間にユーザーのデーターおよび／または設定値を保存するので、以前では失われたデーターおよび／または設定値に起因して行われていたユーザー・サポートの対話を減少させることができる。
【００３５】
[0043]  本発明の特徴を実施するためのシステムおよび方法の種々の態様は、図６に示すコンピューター・システム例６００のような、１つ以上のコンピューター・システム上で実現することができる。コンピューター・システム６００は、入力デバイス（１つまたは複数）６０２、出力デバイス（１つまたは複数）６０１、プロセッサー６０３、メモリー・システム６０４、およびストレージ６０６を含み、これらは全て、直接または間接的に相互接続メカニズム６０５によって結合されている。相互接続メカニズム６０５は、１つ以上のバス、スイッチ、ネットワーク、および／または他のいずれかの適した相互接続を備えることができる。入力デバイス（１つまたは複数）６０２は、ユーザーまたは機械（例えば、人間の操作者）から入力を受け取り、出力デバイス（１つまたは複数）６０１は、情報をユーザーまたは機械（例えば、液晶ディスプレイ）に表示または送信する。これらの入力および出力デバイス（１つまたは複数）は、とりわけ、ユーザー・インターフェースを提示するために用いることができる。ユーザー・インターフェースを提供するために用いることができる出力デバイスの例には、出力の視覚的提示のためのプリンターまたはディスプレイ、および出力の可聴提示のためのスピーカーまたは他の音響生成デバイスが含まれる。ユーザー・インターフェースのために用いることができる入力デバイスの例には、キーボード、ならびにマウスのようなポインティング・デバイス、タッチ・パッド、およびディジタル化タブレットを含む。他の例として、コンピューターが音声認識によって、または他の可聴フォーマットで入力情報を受けても良い。
【００３６】
[0044]  プロセッサー６０３は、通例、オペレーティング・システム（例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）系のオペレーティング・システム、または他のいずれかの適したオペレーティング・システム）と呼ばれるコンピューター・プログラムを実行する。オペレーティング・システムは、他のコンピューター・プログラムの実行を制御し、スケジューリング、入力／出力および他のデバイスの制御、アカウンティング、コンパイル、ストレージ割り当て、データー管理、メモリー管理、通信およびデーター・フロー管理の機能を備えている。集合的に、プロセッサーおよびオペレーティング・システムは、アプリケーション・プログラムおよび他のコンピューター・プログラム言語を書くコンピューター・プラットフォームを定める。
【００３７】
[0045]  また、プロセッサー６０３は、種々の機能を実装するために１つ以上のコンピューター・プログラムを実行することもできる。これらのコンピューター・プログラムは、いずれのタイプのコンピューター・プログラム言語でも書くことができ、手続き型プログラミング言語、オブジェクト指向プログラミング言語、マクロ言語、またはその組み合わせを含む。これらのコンピューター・プログラムは、記憶システム６０６に格納することができる。記憶システム６０６は、揮発性または不揮発性媒体上に情報を保持することができ、固定でもまたは着脱可能でもよい。記憶システム６０６を図７に更に詳しく示す。
【００３８】
[0046]  記憶システム６０６は、有形コンピューター読み取り可能および書き込み可能不揮発性記録媒体５０１を含むことができ、この上に、コンピューター・プログラムまたはこのプログラムが用いる情報を定義する信号を格納する。記録媒体は、例えば、ディスク・メモリー、フラッシュ・メモリー、および／または情報を記録および格納するために使用可能な他のあらゆる製造品目（１つまたは複数）であってもよい。通例、動作中、プロセッサー６０３は不揮発性記録媒体６０１から揮発性メモリー５０２（例えば、ランダム・アクセス・メモリー、即ち、ＲＡＭ）にデーターを読み込ませる。揮発性メモリー５０２の方が、媒体５０１よりも、プロセッサー６０３がこの情報に速くアクセスすることを可能にする。メモリー５０２は、図６に示す記憶システム６０６またはメモリー・システム６０４内に配置することができる。プロセッサー６０３は、一般に、集積回路メモリー６０４、５０２内部でデーターを操作し、次いで、処理が完了した後にデーターを媒体５０１にコピーする。媒体５０１と集積回路メモリー・エレメント６０４、５０２との間におけるデーター移動を管理する種々のメカニズムが知られており、本発明は、現在知られているか、または今後開発されるかに関係なく、いずれのメカニズムにも限定されない。また、本発明は、特定のメモリー・システム６０４にも記憶システム６０６にも限定されない。
【００３９】
[0047]  以上、本発明の少なくとも１つの実施形態の様々な態様について説明したが、種々の変形、変更、および改良が当業者には想起されることは認められよう。このような変形、変更、および改良は、本開示の一部であることを意図しており、本発明の主旨および範囲内に該当することを意図している。したがって、以上の説明および図面は、一例に過ぎない。
【００４０】
[0048]  本発明の以上で説明した実施形態は、多数の方法のいずれでも実現することができる。例えば、これらの実施形態は、ハードウェア、ソフトウェア、またはその組み合わせを用いて実現することもできる。ソフトウェアで実現する場合、いずれかの適したプロセッサーまたはプロセッサーの集合体において、１つのコンピューターに設けられるのかまたは複数のコンピューターおよび／またはシステム間で分散されるのかには関係なく、ソフトウェア・コードを実行することができる。このようなプロセッサーは、集積回路として実現するとよく、１つ以上のプロセッサーが集積回路コンポーネント内にある。しかし、いずれかの適したフォーマットの回路を用いて、プロセッサーを実現することもできる。
【００４１】
[0049]  尚、本明細書において記載した機能を実行するコンポーネントまたはコンポーネントの集合体はいずれも、先に論じた機能を制御する１つ以上のコントローラーとして包括的に考えることができることは、認められてしかるべきである。１つ以上のコントローラーは、専用のハードウェアによってというように、または以上で明記した機能を実行するためにマイクロコードまたはソフトウェアを用いてプログラミングされた１つ以上のプロセッサーを採用することによって、多数の方法で実現することができる。コントローラーがシステム動作のためのデーターを格納するまたは供給する場合、このようなデーターは、中央のレポジトリー、複数のレポジトリー、またはその組み合わせに格納することができる。
【００４２】
[0050]  更に、コンピューターは、ラック組み立てコンピューター(rack-mounted computer)、デスクトップ・コンピューター、ラップトップ・コンピューター、またはタブレット・コンピューターというような、複数の形態の内いずれでも具体化することもできることは認められてしかるべきである。加えて、コンピューターが、パーソナル・ディジタル・アシスタント（ＰＤＡ）、スマート・フォン、あるいは他のあらゆる適した携帯用または固定電子デバイスを含む、一般にはコンピューターとは見なされないが、適した処理能力を有するデバイスに埋め込まれてもよい。
【００４３】
[0051]  また、コンピューターが１つ以上の入力および出力デバイスを有してもよい。これらのデバイスは、とりわけ、ユーザー・インターフェースを提示するために用いることができる。ユーザー・インターフェースを提供するために用いることができる出力デバイスの例には、出力の視覚的提示のためのプリンターまたはディスプレイ、および出力の可聴提示のためのスピーカーまたは他の音響生成デバイスが含まれる。ユーザー・インターフェースのために用いることができる入力デバイスの例には、キーボード、ならびにマウスのようなポインティング・デバイス、タッチ・パッド、およびディジタル化タブレットを含む。他の例として、コンピューターが音声認識によって、または他の可聴フォーマットで入力情報を受けても良い。
【００４４】
[0052]  このようなコンピューターは、企業ネットワークまたはインターネットのような、ローカル・エリア・ネットワークまたはワイド・エリア・ネットワークを含む、いずれかの適した形態の１つ以上のネットワークによって相互接続することができる。このようなネットワークは、いずれかの適した技術に基づけばよく、いずれかの適したプロトコルにしたがって動作すればよく、ワイヤレス・ネットワーク、有線ネットワーク、または光ファイバ・ネットワークを含むことができる。
【００４５】
[0053]  また、本明細書で概要を説明した種々の方法またはプロセスは、ソフトウェアとしてコード化することができる。このソフトウェアは、種々のオペレーティング・システムまたはプラットフォームのいずれかを採用する１つ以上のプロセッサーにおいて実行可能である。加えて、このようなソフトウェアは、複数の適したプログラミング言語および／またはプログラミングまたはスクリプティング・ツールの内いずれを用いても書くこともでき、更にまた、フレームワークまたは仮想環境において実行される、実行可能機械語コードまたは中間コードとしてコンパイルされてもよい。
【００４６】
[0054]  これに関して、本発明は、１つ以上のプログラムがエンコードされたコンピューター読み取り可能記憶媒体（複数のコンピューター読み取り可能媒体（例えば、コンピューター・メモリー、１つ以上のフロッピー（登録商標）・ディスク、コンパクト・ディスク（ＣＤ）、光ディスク、ディジタル・ビデオ・ディスク（ＤＶＤ）、磁気テープ、フラッシュ・メモリー、フィールド・プログラマブル・ゲート・アレイまたは他の半導体デバイスにおける回路構成、あるいは他の一時的でない、有形コンピューター記憶媒体）として具体化することもできる。このプログラムが１つ以上のコンピューターまたは他のプロセッサーにおいて実行されると、以上で説明した本発明の種々の実施形態を実現する。１つまたは複数のコンピューター読み取り可能記憶媒体は移植可能とすることができ、そこに格納されている１つ以上のプログラムは、１つ以上の異なるコンピューターまたは他のプロセッサーにロードして、先に論じたような本発明の種々の形態を実現することができる。本明細書において用いる場合、「一時的でないコンピューター読み取り可能記憶媒体」という用語は、生産物（即ち、生産品目）または機械(machine)であると見なすことができるコンピューター読み取り可能媒体のみを含む。
【００４７】
[0055]  「プログラム」または「ソフトウェア」という用語は、先に論じた本発明の種々の態様を実施するようにコンピューターまたは他のプロセッサーをプログラミングするために採用することができる、あらゆるタイプのコンピューター・コードまたはコンピューター実行可能命令を指すように、本明細書では包括的な意味で用いられている。加えて、この実施形態の一態様によれば、実行されると本発明の方法を実行する１つ以上のコンピューター・プログラムは、１つのコンピューターまたはプロセッサー上に存在する必要はなく、本発明の種々の態様を実施するために、モジュール状に多数の異なるコンピューターまたはプロセッサー間に分散されていてもよいことは認められてしかるべきである。
【００４８】
[0056]  コンピューター実行可能命令は、１つ以上のコンピューターまたは他のデバイスによって実行する、プログラム・モジュールのような多くの形態とすることができる。一般に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データー構造等を含み、特定のタスクを実行するか、または特定の抽象データー・タイプを実施する。通例、種々の実施形態において所望通りに、プログラム・モジュールの機能を組み合わせることまたは分散することもできる。
【００４９】
[0057]  また、データー構造は、いずれかの適した形態で、コンピューター読み取り可能媒体に格納することができる。図示を簡略化するために、データー構造は、当該データー構造における場所によって関係付けられたフィールドを有するように示すことができる。同様に、このような関係は、コンピューター読み取り可能媒体においてフィールド間で関係を伝える場所と共に、これらのフィールドにストレージを割り当てることによって達成することができる。しかしながら、データー構造のフィールドにおいて情報間に関係を確立するためには、いずれかの適したメカニズムを用いることができ、ポインター、タグ、またはデーター・エレメント間に関係を確立するその他のメカニズムの使用によることが含まれる。
【００５０】
[0058]  本発明の種々の態様は、単独でも、組み合わせでも、または先に説明した実施形態において具体的な論じられなかった種々の構成でも用いることができ、したがって、前述の説明において明記したコンポーネントや図面に示したコンポーネントの詳細や構成には、その応用は限定されない。例えば、一実施形態において説明した態様を、他の実施形態において説明した態様といかように組み合わせてもよい。
【００５１】
[0059]  また、本発明は、方法として具体化することができ、その例を示した。この方法の一部として実行される動作は、いずれの適した方法でも順序を決定することができる。したがって、実施形態は、図示した順序とは異なる順序で動作が実行される構成にすることもでき、一部の動作を同時に実行することを含むことができるが、本明細書において説明した例示的な実施形態では連続的な動作として示されている。
【００５２】
[0060]  「第１」、「第２」、「第３」等のような序数を請求項において用いて請求項の要素を修飾する場合、それ自体は、優先順位も、時間的先行も、あるいは１つの請求項要素の他の要素に対する順序、即ち、方法の動作が実行される時間的順序も言外に含むことはなく、単に、請求項要素を区別するために、ある名称を有する１つの請求項要素を、同じ名称を有する他の要素（序数項の使用を除く）から区別する付箋として用いられるに過ぎない。
【００５３】
[0061]  また、本明細書において用いた言葉づかいや用語は、説明を目的にしているのであり、限定と見なしてはならない。「含む」(including)、「含む」(comprising)、または「有する」(having)、「含む」(containing)、「伴う」(involving)、およびこれらの派生形は、本明細書では、その後に羅列される項目、その均等物、および付加的な項目も包含することを意味する。
【図１】
0005757509.tif 000002
【図２】
0005757509.tif 000003
【図３】
0005757509.tif 000004
【図４】
0005757509.tif 000005
【図５】
0005757509.tif 000006
【図６】
0005757509.tif 000007
【図７】
0005757509.tif 000008