情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | 編集

レジストリファイルをインポートできないエラー このエントリーを含むはてなブックマーク

.regファイルインポートできないときの対処法

PuTTYの設定ファイルをバックアップしたのはいいものの

OSの再インストールのためにPuTTYの設定(レジストリ)をバックアップ(エクスポート)しておいたことは良かったものの、いざ利用しようと.regファイルをダブルクリックすると

***.reg をインポートできません。レジストリにアクセス中にエラーが発生しました。
と表示されてしまいました。

原因

原因は、OSの再インストール前に作成した.regファイルを利用しようとしたためでした。 レジストリファイル中にある「S-1-5-21-XXX...-XXX」のような文字列はSIDと呼ばれるのですが、OSの再インストール前のユーザーのSIDと、新しい現在のユーザーのSIDは通常一致しません。この不一致により、.regファイルがインポート(結合)できないのです。 このようなSIDの不一致は、他のPCで作成した.regファイルを利用する際にも発生することがあります

対策法1

直接的な方法として、.regファイルに記述されているSID「S-1-5-21-OLD」を新しいSID「S-1-5-21-NEW」で上書きする方法が考えられます。.regファイル中の古いSIDを見つけることは簡単です。「S-1-5-」あたりで検索すれば見つけられます。次に、現在のユーザのSIDを特定します。

regeditからレジストリエディタを起動すると、直接的に見ることが出来ますが、ユーザがたくさんいると、よく分かりません。そこで、コマンドプロンプトから

>whoami /user
と実行します。すると、ユーザ名とSIDのペアが分かるので、それを見れば現在のSIDを取得できます。

以上で古いSIDと新しいSIDの両方が取得できたので、.regファイル亡いの古いSIDを新しいSIDで置換すればOKです。

対策法2

もう一つの対策法は、.regファイルをどんなユーザでも利用できるようにするというものです。こちらの方が汎用性に優れていますね。

まず、.regファイル中の

HKEY_USERS\S-1-5-21-XXX-...-XXXX\
というところを見つけ出します。そして、それらを
HKEY_CURRENT_USER\
ですべて置換します。これだけ。

SIDに依存しなくなり、.regファイルを実行するユーザ(CURRENT_USER)に自動的に適用されることになり、インポートできるようになります。

まとめ

今回は、レジストリファイル(登録エントリ、.reg)がインポートできないというエラーの対策をメモしました。レジストリはOSの様々な挙動を変更できる重要な設定が行われている部分です。ですから、変更には非常に気を遣わなければなりません。今回紹介した方法は、今回私が行った範囲では成功しましたが、他の状況でどうなるかは一切保証できません。自己責任でお願いします。とりあえず、SIDの調べ方はこれで間違いないので、それはどんどん参考にしてみてください

インサイド Microsoft Windows
APIで学ぶWindows徹底理解
Advanced Windows 第5版 上 (マイクロソフト公式解説書)

スポンサーサイト
Windows | コメント:0 | トラックバック:0 | 編集
 | HOME | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。