私のソフトウェア構成の多くは、reg フォルダーに保存されています。ポータブル アプリを開発するには、どのコンピューターからでも動的に参照できるように、HKEY_USERS\S-1-5-21-2715202203-4090495733-1863141328-1000\Software
環境変数を把握しておく必要があります。 上記のシーケンスは、ユーザーごとに異なります。 S-1-5-21-2715202203-4090495733-1863141328-1000
私のレジストリのスクリーンショット
1:
答え1
HKEY_USERSの下にあるキーはSID(セキュリティ識別子)です。すべてのシステムで同じであるよく知られたSIDがいくつかあります。Microsoftは書類これらについて説明しています。同じドキュメントでは、S-1-5-21 は一意ではない SID であると述べられています。したがって、S-1-5-21 で始まる SID は動的に作成され、異なるシステムで同じではありません。
簡単に言うと、同じレジストリ キーは、入手する他の PC には存在しない可能性が高くなります。
レジストリ キーが自分のユーザー アカウント用である場合は、HKEY_CURRENT_USER を使用できます。HKEY_CURRENT_USER は、HKEY_USERS\S-1-5-21-... レジストリ キーのショートカットです。
自分の SID がわからない場合は、 で取得できますwhoami /user
。
答え2
HKEY_USERS//Software/キーにデータが存在すると想定している古いプログラムから、不足しているレジストリ情報を追加するには
.reg マージ ファイルに含まれている新しい SID を作成することはできません。権限に関係なく、新しい SID を作成することはできません。
したがって、既存の SID にキーを配置すると問題は解決します。
または、システム レジストリ エディターでレジストリ ファイル内の SID を SID に変更します。
たとえば、次の内容を含むレジストリ ファイルをマージするとします: [HKEY_USERS\S-1-5-21-1960408961-1202660629-1177238915-1005\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU\exe]
ファイル内のSIDは[S-1-5-21-1960408961-1202660629-1177238915-1005]です
システムレジストリエディタのSIDは異なります
HKEY_USERS\S-1-5-21-1956030832-895603407-332460711-1000\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU\exe
reg.editorのSIDは[S-1-5-21-1956030832-895603407-332460711-1000]です。
したがって、.reg ファイルを編集し、SID をレジストリ エディターの SID に置き換えるだけです。
わかりやすく説明できたと思います。
そして、これが私がこの解決策にたどり着いたきっかけとなった参考資料です。
[[[HKEY_USERSのレジストリサブキー
HKEY_USERS ハイブの下にあるものの例を次に示します。
HKEY_USERS\.DEFAULT
HKEY_USERS\S-1-5-18
HKEY_USERS\S-1-5-19
HKEY_USERS\S-1-5-20
HKEY_USERS\S-1-5-21-0123456789-012345678-0123456789-1004
HKEY_USERS\S-1-5-21-0123456789-012345678-0123456789-1004_Classes
...
HKEY_USERS の下にリストされている SID は、上記のリストとは確実に異なります。
組み込みのシステム アカウントに対応する .DEFAULT、S-1-5-18、S-1-5-19、および S-1-5-20 が存在する可能性はありますが、S-1-5-21-xxx キーは Windows の「実際の」ユーザー アカウントに対応するため、コンピューターごとに固有になります。
感謝をこめて...