次の方法で共有

AppDataを復元後、AppData\Local 配下にあるジャンクションが消失。復元方法はありますか?

Anonymous
2012-09-07T10:11:57+00:00

Windows 7 64bit SP1を使用しています。

一部アプリケーションの動作に不都合があったため、AppData の復元を行いました。

通常使用しているユーザーをPcuserとした場合、まず、Pcuserでログインした状態で復元を実施しました。

PcuserディレクトリにあるAppData(C:\Users\Pcuser\AppData)のプロパティから「以前のバージョン」を選択して行い、このとき、複数のファイルやフォルダで復元エラーが起こり、スキップして最後まで実施しましたが、不安だったので、Administratorでログインし直した上で、再度復元操作を行いました。

このときは特にエラーが発生することもなく復元されました。

再起動し、Pcuserでログイン後、不具合の出たアプリケーションの動作が回復していることを確認しました。

しかし、AppDataの内容を確認してみたところ、C:\Users\Pcuser\AppData\Local にあるはずの、下記3つのジャンクションが無くなっていました。

Application Data

History

Temporary Internet Files

もしかしたら、AppData配下にあるこの3つ以外のジャンクションも消失しているかもしれませんが、同一の環境を作成した別ユーザーがないため、どういうジャンクションがどこにあるのか判りません。

AppData内にあるはずのシステム既定のジャンクションをすべて復元したいのですが、どうすれば良いでしょう。

ともかく、AppData/Localにある上記3つのジャンクションだけでも復活させたいのですが、何か方法はありますでしょうか?

自身でもひと通り調べましたが、決定打が無い状態です。

マイドキュメントなど、「shell:My Document」としてデフォルトジャンクションが復元されるような方法も見つかりません。

sfc コマンドを使用してシステム不整合をチェックしましたが、問題は見つからないという結果です。

ただ、mklink /J で上記3つのジャンクションを自分で作成してやることはできましたが、本来あるべきシステム既定のデフォルトジャンクションと全く同じようには再現できませんでした。

以前、バックアップというよりも、緊急時のシステム使用のため、別のHDDにシステムをクローンしていましたので、そのHDDの中から当該ジャンクションを単純にコピーすれば何とかなるかと安易にやってみましたが、エラーメッセージも無く当然のようにコピーはできませんでした。

ちなみにバックアップイメージは作成していません…。これがネックなのですが。

どなたか解決方法をご存知ではないでしょうか?


2012/09/07 23:49 追記

AppData\Local の下で、mklink /J を使い、試しに消失したHistory を作成。

Historyのプロパティを表示し「以前のバージョン」タブを選択すると、消失する前のHistoryが復元できるようになっていました。

しかし、復元しようとしても「SYSTEMからアクセス許可を得る必要があります」とアクセス拒否となります。

とりあえず、Administrator に Backup Operator グループを設定し、再度復元を試みましたがやはり駄目でした。

セーフモードで起動し、復元しようとしましたが「以前のバージョン」に復元ポイントが読み込まれず手詰まり。

SYSTEMなら…と思い、修復モードで起動して、コマンドプロンプトを開き、Notepad.exe を実行。

ファイルメニューの「開く」で出てくるダイアログで、Historyの復元ができないかと C:\Users\Pcuser にアクセスしてみましたが、残念ながら隠しフォルダの AppData は表示されないようでした。

ならばコマンドプロンプトで C:\Users\Pcuser まで行き、dir /ah で AppData が確認できたので AppData\Local まで行くも、復元コマンドが解らず断念しました。volrest.exe は Windows 7 には無いらしいですし…。

Windows 通常起動状態だと簡単に「以前のバージョン」を選択できるがアクセス許可が無い。

修復モード起動のコマンドプロンプトでは、ユーザーはおそらく SYSTEM だと思いますが、Notepad.exe によって使えるファイル選択ダイアログでは History は選択できず、シェルで History が見えてもコマンドが解らず復元できない…。

あと一歩という感じなのですが…。

コミュニティ センター | 監視されない

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません
質問作成者が受け入れた回答
  1. Anonymous
    2012-09-11T16:05:59+00:00

    一応、AppData\Local 以下にある、3つのジャンクションのみ、それらしく復元しました。

    根本的な解決ではありませんが、何となくそれっぽく復元する方法を記載しておきます。

    ● AppData\Local\History の例

    コマンドプロンプトで、C:\Users\Pcuser\AppData\Local に行きます。

    ジャンクションを作成します。

    mklink /J  "History"  "C:\Users\Pcuser\AppData\Local\Microsoft\Windows\History"

    アイコンを設定します。プロパティのカスタマイズで、アイコンの変更を選び、参照ファイルを ieframe.dll にし、History ディレクトリのものを指定します。

    コマンドプロンプトに戻り、属性を設定します。

    attrib +S +H "History" /L

    「+S」が要のようです。

    システムデフォルトジャンクションと同じように、ACL を設定します。

    icacls "History" /L /deny Everyone:(S,RD)

    所有者を、SYSTEM に変更します。

    icacls "History" /L /setowner SYSTEM

    この時点で、ACL を見てみると下記のようになります。(なっていなければ設定します)

    icacls "History" /L

    History Everyone:(DENY)(S,RD)

         NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)

         BUILTIN\Administrators:(I)(OI)(CI)(F)

         MyPcName\Pcuser:(I)(OI)(CI)(F)

    この状態で、おそらくシステムデフォルトのHistoryジャンクションが復元できたかと思います。エクスプローラで History のプロパティを見ても、「全般」と「以前のバージョン」のタブしかなく、しかも「以前のバージョン」では以前のHistoryを選択できなくなります。

    上記を同じように、Application Data と、Temporary Internet Files に対して行ってやります。

    ちなみに、Application Data は、設定後もプロパティで各種タブを見ることができますが、他のユーザーでも同じなので、デフォルトに戻せたかと思います。

    History はダブルクリックしても何も起きません。これもシステムデフォルトの動作だと思われます。

    他の2つのジャンクションは、ダブルクリックすると「場所が利用できません」のタイトルの警告が出て、「アクセスが拒否されました」となります。システムデフォルトかと思います。

    AppData 配下では、"AppData\Roaming\Microsoft\Windows\Start Menu\プログラム" というジャンクションもあるようですが、こちらは私の方では削除されていませんでした。もし無くなっていた場合は、同じ手順で復元できるかと思われます。

    AppData の復元(以前のバージョン)で、ジャンクションが消えてしまった原因も解りませんし、ジャンクションの復元方法についても本当にこの手順で良いのか解りませんが、一応はそれらしく直せたのではと…。

    OSの機能やツールで、何らかのものがあればそれに越したことはないのですが。

    0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2012-09-14T03:53:03+00:00

    shigi.kohryu さん、こんにちは。

    Microsoft Answers のご利用ありがとうございます。

    AppData\Local 以下にある3つのジャンクションを復元できたのですね。

    同様の現象に遭遇した方にも、確認点としてこちらのスレッドを活用していただければと思い、[ 回答としてマーク ] をさせていただきました。

    またなにかありましたら、Answers をご利用くださいね。

    0 件のコメント コメントはありません
  2. Anonymous
    2012-09-11T04:09:51+00:00

    返信ありがとうございます。

    私のほうでもテストユーザーを作り、何度かAppDataを復元してみましたが、本件のようにジャンクションが消える事象は再現していません。

    理由はわかりませんが、何らかの要因が重なったときでないと発生しないようですね。

    ちなみに、Deleteでジャンクションを消し、AppDataを復元すると、ジャンクションを復元できない現象は再現しました。

    Notepad からAppDataを見に行く方法ですが、単純に隠し属性をオフにしてやれば見れました。しかし、ファイル選択ダイアログで当該ジャンクションまで参照できても、プロパティで以前のバージョンを選ぶことはできませんでした。

    システム全体の復元をすれば直るかとも思いましたが、ユーザーデータは復元されないため、直りませんでした。

    私の環境でなぜAppDataの復元でジャンクションが消えたのかの原因も知りたいところですが、これについては復元機能を使わなければ発生は避けられ、予防できることですので、問題は対処方法ですね。

    やはりOSの回復ツールや機能として、デフォルトジャンクションを復元するようなものが無ければ、通常の操作での復元は無理かと思います。

    mklink /J で必要なジャンクションを生成したあと、ACLを別ユーザーのものからリストアしてやればそれらしいジャンクションになりますが、釈然としない感じです。

    私としては、運用を止めない(OS再インストールせず)で、もっとも確実は復元方法は、ユーザーの作り直しかと…。

    システム転送ツールを使えば、ユーザー設定もリストアできますし。

    ただ、根本的な解決にはなっていないと思いますので、何かもっとスマートな復旧方法がありましたらアドバイス頂きたいです。

    0 件のコメント コメントはありません
  3. Anonymous
    2012-09-11T02:09:33+00:00

    shigi.kohryu さん、こんにちは。

    Microsoft Answers への投稿、ありがとうございます。

    AppData のプロパティから 「以前のバージョン」 へ復元を行った際に、 AppData\Local 配下にあるフォルダー3つが消えてしまったのですね。

    こちらで Windows 7 の PC 2台で AppData のプロパティから以前のバージョンへ復元し確認したところ、 AppData(C:\Users\ ユーザー名 \AppData) 配下には該当のフォルダーは消えませんでした。

    また、コンピューターの回復のコマンドプロンプトから Notepad を実行してみたのですが、同じように AppData などの隠しフォルダーも表示できないという状態は同じでした。

    私も、ジャンクションを復旧する方法や、Windows RE 環境で、フォルダーを以前のバージョンに戻す方法を調べてみたのですが、有効な情報を得ることができませんでした。

    お力になれずすいません。有効なコマンドなど、この件について良い情報をお持ちの方からの投稿をお待ちしております。

    0 件のコメント コメントはありません