C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

C# HKLM レジストリ登録 権限追加

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■89999 / inTopicNo.1)  C# HKLM レジストリ登録 権限追加
  
□投稿者/ ante (1回)-(2019/01/29(Tue) 11:02:32)

分類:[C#] 

2019/01/29(Tue) 11:02:48 編集(投稿者)
お世話になります。
C#でレジストリ登録しますが、特定のHKLMのサブキーへへレジストリの権限を追加(everyone)できずに困っています。
上手くいく端末もあり、できるものとできないものの切り分けができていない状態です。
何かヒントがあれば教示いただけますでしょうか。

対象OS:Windows10 x64 x64ベースプロセッサ

□ソースコード
using Microsoft.Win32;
using System;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Windows.Forms;

namespace ConsoleApp6 {
    class Program {
        static void Main(string[] args) {
            RegistryKey regkey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Hoge");
            regkey.SetValue("InstallStatus", "Installed");
            regkey.Close();

            try {
                SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
                NTAccount account = sid.Translate(typeof(NTAccount)) as NTAccount;
                using (RegistryKey regKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Hoge")) {
                    RegistrySecurity rs = regKey.GetAccessControl();
                    RegistryAccessRule rar = new RegistryAccessRule(
                                                  account.ToString(),
                                                  RegistryRights.FullControl,
                                                  InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
                                                  PropagationFlags.None,
                                                  AccessControlType.Allow);
                    rs.AddAccessRule(rar);
                    regKey.SetAccessControl(rs);
                }
            }
            catch (Exception ex) {
                MessageBox.Show(ex.ToString());
            }
        }
    }
}


□ビルド
プラットフォームターゲット:Any CPU
32ビット優先

→
□出来たレジストリ
コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Hoge

□エラーメッセージ
こちらを右クリックし、アクセス許可をクリックすると、
「Hogeのアクセス許可の順序が正しくありません。これによりいくつかのエントリが無効になる可能性があります。
- アクセス許可を正しく並べるには、[並べ替え]をクリックしてください。
- アクセス許可を変更しない場合は(表示は読み取り専用になります)、[キャンセル]をクリックしてください。」

よろしくお願いいたします。

引用返信 編集キー/
■90032 / inTopicNo.2)  Re[1]: C# HKLM レジストリ登録 権限追加
□投稿者/ Ante (26回)-(2019/01/31(Thu) 16:04:43)
続報;
仮想環境だけこの事象が発生するのですよね。

入れたOS:windows10 consumer edition version 1803 updated aug 2018 x64

引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ