こけめも

メモみたいなもの

調子が悪いWindowsを数分でサクッと安定させちゃう裏技 (同じユーザーSIDを使う方法)

はじめに


本日、はてブホッテントリ入りしていた下記の記事を読ませていただきました。


調子が悪いWindowsを数分でサクッと安定させちゃう裏技 - ぼくんちのTV 別館


内容はMicrosoftのサイトに公開されている手順と同様ですが、図や説明がとても分かりやすく、ご本人の経験に基づく話もあって見習いたい良い記事だと思いました。




ただし、こうしてプロファイルを再作成した場合、一部のレジストリが初期化されてしまいます。
また、一部のアプリケーションで以前のデータが使用できない場合があります。
これは、新しいユーザーを使用することになるためユーザーSIDが異なっていたり、ユーザーレジストリ(HKEY_USERS以下)が別物になることに起因していたりします。
(必ずしもこれだけが原因ではありません)


WindowsのSIDについては下記を参照してください。
Tech TIPS:オブジェクトを識別するSIDとは? - @IT

ユーザー・アカウントやグループなどは、管理ツールに表示される「名前」ではなく、「SID(Security Identifier。セキュリティ識別子)」と呼ばれる一意のID番号列を使用して管理されている。具体的には「S- 1-5-21-917266621-1342861121-1792158721-512」のような数字列のことを指す。システムを新規にセットアップし直さない限り、同じSIDが使われることはない。


例えばユーザー「kojii」を削除し、あらためて同じ「kojii」という名前(とパスワード)を持つユーザーを再作成しても、内部的にはこ れらは別々のユーザーとして扱われる。すると、再作成したユーザーに対しては、削除したユーザーと同じアクセス権が設定されることはないし、アクセス権の 設定や所属するグループなど、すべての設定について、最初からやり直す必要がある。


このように、SIDが異なると別ユーザーとして扱われるため、不都合がでることもあります。
軽量化の効果が薄れてしまいますが、今回はSIDを変えないままプロファイルフォルダを新しくする方法を紹介します。

定義

プロファイルをつくり直すユーザー:user1
操作用に新規作成するユーザー:user2

流れ

作業用ユーザー作成
作業用ユーザーログイン
プロファイルフォルダリネーム
プロファイルレジストリ削除
再ログイン(プロファイルフォルダ再作成)
プロファイルフォルダ内容コピー
作業用ユーザー削除

前提

user1でログインしているものとします。

手順

作業用ユーザー作成

まずは、管理者権限でユーザー(user2)を新しく作成します。
あれ?と思われた方もいるかも知れませんが、これは一時的なユーザーで後ほど削除します。
ログインしたまま自分のプロファイルフォルダをいじれないのでこのような措置を取りました。


ユーザーの作成方法は、調子が悪いWindowsを数分でサクッと安定させちゃう裏技 - ぼくんちのTV 別館や[http//windows.microsoft.com/ja-JP/windows-vista/Fix-a-corrupted-user-profile:title]を参考にしてください。
この時、管理者してユーザーを作成するようにしましょう。

作業用ユーザーログイン

user1でログオフし、先ほど作成したuser2でログインします。

プロファイルフォルダリネーム

ユーザープロファイルが格納されているフォルダ(C:\users)を見ると、user1やuser2のプロファイルフォルダがあります。
※ユーザー名とプロファイルフォルダ名は必ずしも一致するわけではありませんが、分かりやすくするために一致させています。


プロファイルをつくり直すユーザー(user1)のプロファイルフォルダをリネームします。
ここでは「user1」→「user1_old」にリネームします。

プロファイルレジストリ削除

レジストリエディタを実行します。
「スタート」→「プログラムとファイルの検索」に「regedit」と入力してEnterキーを押下します。
ユーザーアカウント制御画面が表示される場合は「はい」ボタンをクリックしてください。


次のレジストリサブキーを参照します。
 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList


レジストリを編集することになるので、まずはバックアップを取っておきましょう。
上記サブキーで右クリックし、「エクスポート」をクリックしてください。


ファイルの保存ダイアログが表示されるので、分かりやすい名前をつけて保存します。


Profilelistのサブキーに、「S-1-5」 で始まりその後に長い数が続くキーが複数あります。
この中から、ProfileImagePathがプロファイルをつくり直すユーザーのプロファイルフォルダ(C:\Users\user1)になっているキーを見つけます。


今回の例で言うと、S-1-5-21-2000493566-1173619566-3056131231-1001 になります。
見つけたら、このレジストを削除します。


なお、この方法は次のMicrosoftの技術文章を参考にしていますので、よければご参照ください。

方法 3:エラーの SID を削除して、新しいプロファイルを作成する

再ログイン(プロファイルフォルダ再作成)

user1として再ログインします。
一度user2でログオフ→user1再ログインしてもいいのですが、この後もuser2での作業があるので簡単に済ませましょう。


「スタート」→「プログラムとファイルの検索」に「cmd」と入力してEnterキーを押下します。

runas /user:user1 cmd


これは、今ログインしているユーザーと別のユーザーでアプリケーションを実行するためのコマンドです。
実行するアプリケーションは何でもいいのですが、今回はcmd(コマンドプロンプト)としています。


こうしてuser1でログインしたとき、プロファイルフォルダもProfilelistのキーも内場合、新たにプロファイルフォルダが作成されます。
試しにC:\Usersフォルダを確認してみましょう。
user1フォルダが作成されていることが分かります。(この時、ユーザー名と同じ名前のフォルダが作成されます)


起動したコマンドプロンプトは不要なので閉じてしまって構いません。

プロファイルフォルダ内容コピー

C:\Users\user1_old の内容を C:\Users\user1 にコピーします。
この時、MSのサイトや「ぼくんちのTV」さんも書いているように、NTUSER*.*はコピーしないようにしましょう。


念のため、「移動」ではなく「コピー」にしておき、user1_oldフォルダもしばらく残しておきます。
user1を使い初めて足りないデータがあれば随時コピーしてください。

作業用ユーザー削除(任意)

ここまできたら、user2はログオフし、user1で再ログインします。
任意ですが、user2はもう不要になったため削除してもらって構いません。

注意

上記手順でも、アプリケーションの設定がすべて正しく引き継がれるわけではないため、手動による設定も必要となります。

最後に

この手順であれば、レジストリ設定やSIDを引き継いで、かつNTUSER ファイルを新しくすることが可能です。
もちろん、この手順のようにしてプロファイルフォルダを作り直すことは、プロファイルが破損した場合でも有効となります。
その場合、Profilelistのレジストリ サブキーから「〜プロファイル破損したユーザーのSID〜」と「〜プロファイル破損したユーザーのSID〜.BAK」というキーの両方を削除しましょう。


まったく新しいユーザーを作ることにもメリットはあるため、状況に応じて使い分けてください。