レジストリのサブキーの作成について への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 N88-BASIC  (社会人) 投稿日時 2020/11/28 10:24:54
魔界の仮面弁士 さん、ご回答ありがとうございました。

>HKEY_LOCAL_MACHINE は一般ユーザーが編集すべき領域では無い

 とのことで、設定内容が多岐にわたるわけではないので、レジストリエディタのエキスポートを利用して対象の値をファイル保存(この辺りはONEDRIVEは便利です)して、実行する方法をとりたいと思います。
 対象マシンがタブレットですがダブルタップだけで設定できそうです。

ご紹介いただいた方法は、今後の研究課題として試してみたいと思います。

ありがとうございました。
今後ともよろしくお願いいたします。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2020/11/27 17:45:46
レジストリ エディターで
 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Personalization
のキーを右クリックし、[アクセス許可] を確認してみてください。

Authenticated Users に対しては、読み取り専用の権限しか付与されていないと思います。
SYSTEM (NT AUTHORITY\System) であれば書き込めるでしょうけれども。

HKEY_LOCAL_MACHINE は一般ユーザーが編集すべき領域では無いので、
アプリを配布するインストーラーに対して、レジストリの書き換えを行わせるようにするか、
もしくは権限昇格を行い、一時的(あるいは恒久的)に、アプリケーションを管理者モードで
実行させるようにする必要があるでしょう。

https://dobon.net/vb/dotnet/system/asadmin.html
投稿者 N88-Basic  (社会人) 投稿日時 2020/11/27 16:48:04
Windows 10 home(64) Ver 20H2 + Visual Studio 2019 にて、レジストリを操作するアプリを作成していますが実行時エラーが発生します。
状況は以下の通りです。

テスト中のコード(サブキーの作成)(値の設定でも同様のエラーが発生しました)

Dim SubKey_Personalization As String = "SOFTWARE\Policies\Microsoft\Windows\Personalization"
Dim ValueName_NoLockScreen As String = "NoLockScreen"
Dim regkey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(SubKey_Personalization)
regkey.SetValue(ValueName_NoLockScreen, 1)
regkey.Close()

エラーは3行目で内容は以下の通りです。
System.UnauthorizedAccessException
  HResult=0x80070005
  Message=レジストリ キー 'HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Personalization' へのアクセスが拒否されました。
  Source=mscorlib

ただし、値の読出しは問題ありません。
読出しのコード
Dim regkey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(SubKey_Personalization)
Dim iValue As Integer = CInt(regkey.GetValue(ValueName_NoLockScreen)
regkey.Close()

解決策をご存じでしたらご教授ください。
よろしくお願いいたします。