RegistrySecurityとは? わかりやすく解説

RegistrySecurity クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

レジストリ キーの Windows アクセス制御セキュリティを表します。このクラスは継承できません。

名前空間: System.Security.AccessControl
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public NotInheritable Class
 RegistrySecurity
    Inherits NativeObjectSecurity
Dim instance As RegistrySecurity
public sealed class RegistrySecurity : NativeObjectSecurity
public ref class RegistrySecurity sealed :
 public NativeObjectSecurity
public final class RegistrySecurity extends
 NativeObjectSecurity
public final class RegistrySecurity extends
 NativeObjectSecurity
解説解説

RegistrySecurity オブジェクトは、レジストリ キーへのアクセス権、およびアクセス試行の監査方法を示します。レジストリ キーへのアクセス権は規則として表現します。各アクセス規則は RegistryAccessRule オブジェクトで表されます。各監査規則は RegistryAuditRule オブジェクトで表されます。

このオブジェクトには基になる Windows セキュリティ システムが反映されています。Windows セキュリティ システムでは、セキュリティ設定できるオブジェクトごとに、セキュリティで保護されたオブジェクトへのアクセスを制御する随意アクセス制御リスト (DACL: Discretionary Access Control List) と監査対象のアクセス試行を指定するシステム アクセス制御リスト (SACL: System Access Control List) をそれぞれ最大 1 つずつ指定できます。DACL と SACL は、ユーザーとグループのアクセスと監査を指定するアクセス制御エントリ (ACE: Access Control Entry) を順序付けして示したリストです。RegistryAccessRule オブジェクトまたは RegistryAuditRule オブジェクトは、複数の ACE を表す場合があります。

メモメモ

Windows のアクセス制御セキュリティは、レジストリ キーだけに適用できます。キーに格納されている個別のキー/値ペアに適用することはできません。

RegistrySecurity、RegistryAccessRule、およびRegistryAuditRule の各クラスは、ACL と ACE の実装の詳細を隠します。これらのクラスを使用すると、ACE の 17 種類の型を気にせずに、アクセス権の継承と反映を正しく維持する複雑な操作を簡単に行うことができます。また、これらのオブジェクトは、次の一般的なアクセス制御エラーを防止するようにデザインされています。

.NET セキュリティ オブジェクトでサポートされないのは、多くのアプリケーション開発者が避ける必要がある次のような危険なアクティビティだけです。

レジストリ キーの Windows アクセス制御セキュリティを変更するには、RegistryKey.GetAccessControl メソッドを使用して RegistrySecurity オブジェクトを取得します。規則を追加および削除してセキュリティ オブジェクトを変更し、RegistryKey.SetAccessControl メソッドを使用して再度割り当てます。

レジストリ キー間でアクセス制御セキュリティをコピーするには、RegistryKey.GetAccessControl メソッドを使用して、最初のレジストリ キーのアクセス規則と監査規則を表す RegistrySecurity オブジェクトを取得し、次に RegistryKey.SetAccessControl メソッドを使用するか、または RegistrySecurity オブジェクトを受け入れるコンストラクタを使用して、これらの規則を 2 番目のレジストリ キーに割り当てます。

SDDL (Security Descriptor Definition Language) を既に使用しているユーザーは、SetSecurityDescriptorSddlForm メソッドを使用してレジストリ キーのアクセス規則を設定し、次に GetSecurityDescriptorSddlForm メソッドを使用して SDDL 形式のアクセス規則を表す文字列を取得できます。ただし、新規の開発にはこの方法を使用しないことをお勧めします。

使用例使用例

このセクションには、2 つのコード例が含まれています。最初の例は、互換性のある規則を追加および削除するときにこれらの規則がどのようにマージされるかを示しています。2 つ目の例は、継承フラグと反映フラグが規則の追加と削除にどのように影響するかを示しています。

例 1

RemoveAccessRule メソッドで互換性のある規則から権限を削除する方法と、AddAccessRule メソッドで互換性のある規則に権限をマージする方法を表したコード例を次に示します。

この例では、RegistrySecurity オブジェクトを作成し、現在のユーザーに RegistryRights.ReadKey 権限を許可する規則を追加します。さらに、この例では、最初の規則と同じ継承権限と反映権限を使用してユーザーに RegistryRights.SetValue を許可する規則を作成し、RemoveAccessRule メソッドを使用してこの新しい規則を RegistrySecurity オブジェクトから削除します。SetValue は、ReadKey の構成要素です。そのため、互換性のある規則から削除されます。RegistrySecurity オブジェクト内の規則が表示され、ReadKey の残りの構成要素が表示されます。

次に、このプログラム例では、AddAccessRule メソッドを呼び出して SetValue 権限を RegistrySecurity オブジェクト内の規則にマージして戻します。

メモメモ

この例では、セキュリティ オブジェクトが RegistryKey オブジェクトに割り当てられません。このセクションの 2 つ目の例では、セキュリティ オブジェクトを割り当てます。Microsoft.Win32.RegistryKey.GetAccessControl および RegistryKey.SetAccessControl 内の例も同様です。

Option Explicit
Imports System
Imports System.Security.AccessControl
Imports System.Security.Principal
Imports System.Security
Imports Microsoft.Win32

Public Class Example

    Public Shared Sub Main()

        Dim user As String
 = Environment.UserDomainName _ 
            & "\" & Environment.UserName

        ' Create a security object that grants no access.
        Dim mSec As New
 RegistrySecurity()

        ' Add a rule that grants the current user ReadKey
        ' rights. ReadKey is a combination of four other 
        ' rights. The rule is inherited by all 
        ' contained subkeys.
        Dim rule As New
 RegistryAccessRule(user, _
            RegistryRights.ReadKey, _
            InheritanceFlags.ContainerInherit, _
            PropagationFlags.None, _
            AccessControlType.Allow)
        mSec.AddAccessRule(rule)

        ' Create a rule that allows the current user only the 
        ' right to query the key/value pairs of a key, using  
        ' the same inheritance and propagation flags as the
        ' first rule. QueryValues is a constituent of 
        ' ReadKey, so when this rule is removed, using the 
        ' RemoveAccessRule method, ReadKey is broken into
        ' its constituent parts.
        rule = New RegistryAccessRule(user, _
            RegistryRights.QueryValues, _
            InheritanceFlags.ContainerInherit, _
            PropagationFlags.None, _
            AccessControlType.Allow)
        mSec.RemoveAccessRule(rule)

        ' Display the rules in the security object.
        ShowSecurity(mSec)

        ' Add the second rule back. It merges with the 
        ' existing rule, so that the rule is now displayed
        ' as ReadKey.
        mSec.AddAccessRule(rule)

        ' Display the rules in the security object.
        ShowSecurity(mSec)

    End Sub 

    Private Shared Sub ShowSecurity(ByVal
 security As RegistrySecurity)
        Console.WriteLine(vbCrLf & "Current access rules:"
 & vbCrLf)

        For Each ar As RegistryAccessRule
 In _
            security.GetAccessRules(True, True,
 GetType(NTAccount))

            Console.WriteLine("        User: {0}",
 ar.IdentityReference)
            Console.WriteLine("        Type: {0}",
 ar.AccessControlType)
            Console.WriteLine("      Rights: {0}",
 ar.RegistryRights)
            Console.WriteLine(" Inheritance: {0}",
 ar.InheritanceFlags)
            Console.WriteLine(" Propagation: {0}",
 ar.PropagationFlags)
            Console.WriteLine("   Inherited? {0}",
 ar.IsInherited)
            Console.WriteLine()
        Next

    End Sub
End Class 

'This code example produces output similar to following:
'
'Current access rules:
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: EnumerateSubKeys, Notify, ReadPermissions
' Inheritance: ContainerInherit
' Propagation: None
'   Inherited? False
'
'
'Current access rules:
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: ReadKey
' Inheritance: ContainerInherit
' Propagation: None
'   Inherited? False
'
using System;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Security;
using Microsoft.Win32;

public class Example
{

    public static void Main()
    {

        string user = Environment.UserDomainName + "\\"
            + Environment.UserName;

        // Create a security object that grants no access.
        RegistrySecurity mSec = new RegistrySecurity();

        // Add a rule that grants the current user ReadKey
        // rights. ReadKey is a combination of four other 
        // rights. The rule is inherited by all 
        // contained subkeys.
        RegistryAccessRule rule = new RegistryAccessRule(user,
 
            RegistryRights.ReadKey, 
            InheritanceFlags.ContainerInherit, 
            PropagationFlags.None, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

        // Create a rule that allows the current user only the 
        // right to query the key/value pairs of a key, using  
        // the same inheritance and propagation flags as the
        // first rule. QueryValues is a constituent of 
        // ReadKey, so when this rule is removed, using the 
        // RemoveAccessRule method, ReadKey is broken into
        // its constituent parts.
        rule = new RegistryAccessRule(user, 
            RegistryRights.QueryValues, 
            InheritanceFlags.ContainerInherit, 
            PropagationFlags.None, 
            AccessControlType.Allow);
        mSec.RemoveAccessRule(rule);

        // Display the rules in the security object.
        ShowSecurity(mSec);

        // Add the second rule back. It merges with the 
        // existing rule, so that the rule is now displayed
        // as ReadKey.
        mSec.AddAccessRule(rule);

        // Display the rules in the security object.
        ShowSecurity(mSec);
    }

    private static void
 ShowSecurity(RegistrySecurity security)
    {
        Console.WriteLine("\r\nCurrent access rules:\r\n");

        foreach( RegistryAccessRule ar in security.GetAccessRules(true,
 true, typeof(NTAccount)) )
        {
            Console.WriteLine("        User: {0}", ar.IdentityReference);
            Console.WriteLine("        Type: {0}", ar.AccessControlType);
            Console.WriteLine("      Rights: {0}", ar.RegistryRights);
            Console.WriteLine(" Inheritance: {0}", ar.InheritanceFlags);
            Console.WriteLine(" Propagation: {0}", ar.PropagationFlags);
            Console.WriteLine("   Inherited? {0}", ar.IsInherited);
            Console.WriteLine();
        }
    }
}

/* This code example produces output similar to following:

Current access rules:

        User: TestDomain\TestUser
        Type: Allow
      Rights: EnumerateSubKeys, Notify, ReadPermissions
 Inheritance: ContainerInherit
 Propagation: None
   Inherited? False


Current access rules:

        User: TestDomain\TestUser
        Type: Allow
      Rights: ReadKey
 Inheritance: ContainerInherit
 Propagation: None
   Inherited? False
 */

例 2

継承と反映を行うアクセス規則のコード例を次に示します。この例では、RegistrySecurity オブジェクトを作成し、ContainerInherit フラグを持つ 2 つの規則を作成して追加します。最初の規則には、反映フラグがありません。2 番目の規則には、NoPropagateInherit と InheritOnly が存在します。

このプログラムでは、RegistrySecurity オブジェクト内の規則を表示し、RegistrySecurity オブジェクトを使用してサブキーを作成します。さらに、子サブキーと孫サブキーを作成し、各サブキーのセキュリティを表示します。最後に、テスト キーを削除します。

Option Explicit
Imports System
Imports System.Security.AccessControl
Imports System.Security.Principal
Imports System.Security
Imports Microsoft.Win32

Public Class Example

    Public Shared Sub Main()

        Const TestKey As String
 = "TestKey3927"
        Dim cu As RegistryKey = Registry.CurrentUser

        Dim user As String
 = Environment.UserDomainName _ 
            & "\" & Environment.UserName

        ' Create a security object that grants no access.
        Dim mSec As New
 RegistrySecurity()

        ' Add a rule that grants the current user the right
        ' to read and enumerate the name/value pairs in a key, 
        ' to read its access and audit rules, to enumerate
        ' its subkeys, to create subkeys, and to delete the key. 
        ' The rule is inherited by all contained subkeys.
        '
        Dim rule As New
 RegistryAccessRule(user, _
            RegistryRights.ReadKey Or RegistryRights.WriteKey
 _
                Or RegistryRights.Delete, _
            InheritanceFlags.ContainerInherit, _
            PropagationFlags.None, _
            AccessControlType.Allow)
        mSec.AddAccessRule(rule)

        ' Add a rule that allows the current user the right
        ' right to set the name/value pairs in a key. 
        ' This rule is inherited by contained subkeys, but
        ' propagation flags limit it to immediate child 
        ' subkeys.
        rule = New RegistryAccessRule(user, _
            RegistryRights.ChangePermissions, _
            InheritanceFlags.ContainerInherit, _
            PropagationFlags.InheritOnly Or PropagationFlags.NoPropagateInherit,
 _
            AccessControlType.Allow)
        mSec.AddAccessRule(rule)

        ' Display the rules in the security object.
        ShowSecurity(mSec)

        ' Create the test key using the security object.
        '
        Dim rk As RegistryKey = cu.CreateSubKey(TestKey,
 _
            RegistryKeyPermissionCheck.ReadWriteSubTree, _
            mSec)

        ' Create a child subkey and a grandchild subkey, 
        ' without security.
        Dim rkChild As RegistryKey= rk.CreateSubKey("ChildKey",
 _
            RegistryKeyPermissionCheck.ReadWriteSubTree)
        Dim rkGrandChild As RegistryKey = _
            rkChild.CreateSubKey("GrandChildKey",
 _
                RegistryKeyPermissionCheck.ReadWriteSubTree)

        Show(rk)
        Show(rkChild)
        Show(rkGrandChild)

        rkGrandChild.Close()
        rkChild.Close()
        rk.Close()

        cu.DeleteSubKeyTree(TestKey)
    End Sub 

    Private Shared Sub Show(ByVal
 rk As RegistryKey)
        Console.WriteLine(rk.Name)            
        ShowSecurity(rk.GetAccessControl())
    End Sub

    Private Shared Sub ShowSecurity(ByVal
 security As RegistrySecurity)
        Console.WriteLine(vbCrLf & "Current access rules:"
 & vbCrLf)

        For Each ar As RegistryAccessRule
 In _
            security.GetAccessRules(True, True,
 GetType(NTAccount))

            Console.WriteLine("        User: {0}",
 ar.IdentityReference)
            Console.WriteLine("        Type: {0}",
 ar.AccessControlType)
            Console.WriteLine("      Rights: {0}",
 ar.RegistryRights)
            Console.WriteLine(" Inheritance: {0}",
 ar.InheritanceFlags)
            Console.WriteLine(" Propagation: {0}",
 ar.PropagationFlags)
            Console.WriteLine("   Inherited? {0}",
 ar.IsInherited)
            Console.WriteLine()
        Next

    End Sub
End Class 

'This code example produces output similar to following:
'
'Current access rules:
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: SetValue, CreateSubKey, Delete, ReadKey
' Inheritance: ContainerInherit
' Propagation: None
'   Inherited? False
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: ChangePermissions
' Inheritance: ContainerInherit
' Propagation: NoPropagateInherit, InheritOnly
'   Inherited? False
'
'HKEY_CURRENT_USER\TestKey3927
'
'Current access rules:
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: SetValue, CreateSubKey, Delete, ReadKey
' Inheritance: ContainerInherit
' Propagation: None
'   Inherited? False
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: ChangePermissions
' Inheritance: ContainerInherit
' Propagation: NoPropagateInherit, InheritOnly
'   Inherited? False
'
'HKEY_CURRENT_USER\TestKey3927\ChildKey
'
'Current access rules:
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: SetValue, CreateSubKey, Delete, ReadKey
' Inheritance: ContainerInherit
' Propagation: None
'   Inherited? True
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: ChangePermissions
' Inheritance: None
' Propagation: None
'   Inherited? True
'
'HKEY_CURRENT_USER\TestKey3927\ChildKey\GrandChildKey
'
'Current access rules:
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: SetValue, CreateSubKey, Delete, ReadKey
' Inheritance: ContainerInherit
' Propagation: None
'   Inherited? True
using System;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Security;
using Microsoft.Win32;

public class Example
{
    public static void Main()
    {
        const string TestKey = "TestKey3927";
        RegistryKey cu = Registry.CurrentUser;

        string user = Environment.UserDomainName + 
            "\\" + Environment.UserName;

        // Create a security object that grants no access.
        RegistrySecurity mSec = new RegistrySecurity();

        // Add a rule that grants the current user the right
        // to read and enumerate the name/value pairs in a key, 
        // to read its access and audit rules, to enumerate
        // its subkeys, to create subkeys, and to delete the key. 
        // The rule is inherited by all contained subkeys.
        //
        RegistryAccessRule rule = new RegistryAccessRule(user,
 
           RegistryRights.ReadKey | RegistryRights.WriteKey 
               | RegistryRights.Delete, 
           InheritanceFlags.ContainerInherit, 
           PropagationFlags.None, 
           AccessControlType.Allow
        );
        mSec.AddAccessRule(rule);

        // Add a rule that allows the current user the right
        // right to set the name/value pairs in a key. 
        // This rule is inherited by contained subkeys, but
        // propagation flags limit it to immediate child 
        // subkeys.
        rule = new RegistryAccessRule(user, 
            RegistryRights.ChangePermissions, 
            InheritanceFlags.ContainerInherit, 
            PropagationFlags.InheritOnly | 
                PropagationFlags.NoPropagateInherit, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

        // Display the rules in the security object.
        ShowSecurity(mSec);

        // Create the test key using the security object.
        //
        RegistryKey rk = cu.CreateSubKey(TestKey, 
            RegistryKeyPermissionCheck.ReadWriteSubTree, mSec);

        // Create a child subkey and a grandchild subkey, 
        // without security.
        RegistryKey rkChild = rk.CreateSubKey("ChildKey", 
            RegistryKeyPermissionCheck.ReadWriteSubTree);
        RegistryKey rkGrandChild = 
            rkChild.CreateSubKey("GrandChildKey", 
                RegistryKeyPermissionCheck.ReadWriteSubTree);

        Show(rk);
        Show(rkChild);
        Show(rkGrandChild);

        rkGrandChild.Close();
        rkChild.Close();
        rk.Close();

        cu.DeleteSubKeyTree(TestKey);
    }

    private static void
 Show(RegistryKey rk)
    {
        Console.WriteLine(rk.Name);
        ShowSecurity(rk.GetAccessControl());
    }

    private static void
 ShowSecurity(RegistrySecurity security)
    {
        Console.WriteLine("\r\nCurrent access rules:\r\n");

        foreach( RegistryAccessRule ar in security.GetAccessRules(true,
 true, typeof(NTAccount)) )
        {

            Console.WriteLine("        User: {0}", ar.IdentityReference);
            Console.WriteLine("        Type: {0}", ar.AccessControlType);
            Console.WriteLine("      Rights: {0}", ar.RegistryRights);
            Console.WriteLine(" Inheritance: {0}", ar.InheritanceFlags);
            Console.WriteLine(" Propagation: {0}", ar.PropagationFlags);
            Console.WriteLine("   Inherited? {0}", ar.IsInherited);
            Console.WriteLine();
        }

    }
}

/* This code example produces output similar to following:

Current access rules:

        User: TestDomain\TestUser
        Type: Allow
      Rights: SetValue, CreateSubKey, Delete, ReadKey
 Inheritance: ContainerInherit
 Propagation: None
   Inherited? False

        User: TestDomain\TestUser
        Type: Allow
      Rights: ChangePermissions
 Inheritance: ContainerInherit
 Propagation: NoPropagateInherit, InheritOnly
   Inherited? False

HKEY_CURRENT_USER\TestKey3927

Current access rules:

        User: TestDomain\TestUser
        Type: Allow
      Rights: SetValue, CreateSubKey, Delete, ReadKey
 Inheritance: ContainerInherit
 Propagation: None
   Inherited? False

        User: TestDomain\TestUser
        Type: Allow
      Rights: ChangePermissions
 Inheritance: ContainerInherit
 Propagation: NoPropagateInherit, InheritOnly
   Inherited? False

HKEY_CURRENT_USER\TestKey3927\ChildKey

Current access rules:

        User: TestDomain\TestUser
        Type: Allow
      Rights: SetValue, CreateSubKey, Delete, ReadKey
 Inheritance: ContainerInherit
 Propagation: None
   Inherited? True

        User: TestDomain\TestUser
        Type: Allow
      Rights: ChangePermissions
 Inheritance: None
 Propagation: None
   Inherited? True

HKEY_CURRENT_USER\TestKey3927\ChildKey\GrandChildKey

Current access rules:

        User: TestDomain\TestUser
        Type: Allow
      Rights: SetValue, CreateSubKey, Delete, ReadKey
 Inheritance: ContainerInherit
 Propagation: None
   Inherited? True
 */
継承階層継承階層
System.Object
   System.Security.AccessControl.ObjectSecurity
     System.Security.AccessControl.CommonObjectSecurity
       System.Security.AccessControl.NativeObjectSecurity
        System.Security.AccessControl.RegistrySecurity
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
RegistrySecurity メンバ
System.Security.AccessControl 名前空間

RegistrySecurity コンストラクタ


RegistrySecurity プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ AccessRightType オーバーライドされます。 RegistrySecurity クラスでアクセス権を表すために使用する列挙型を取得します。
パブリック プロパティ AccessRuleType オーバーライドされます。 RegistrySecurity クラスでアクセス規則を表すために使用する型を取得します。
パブリック プロパティ AreAccessRulesCanonical  この ObjectSecurity オブジェクトに関連付けられたアクセス規則の順序が標準であるかどうかを指定するブール値を取得します。 ( ObjectSecurity から継承されます。)
パブリック プロパティ AreAccessRulesProtected  この ObjectSecurity オブジェクトに関連付けられた随意アクセス制御リスト (DACL: Discretionary Access Control List) が保護されているかどうかを指定するブール値を取得します。 ( ObjectSecurity から継承されます。)
パブリック プロパティ AreAuditRulesCanonical  この ObjectSecurity オブジェクトに関連付けられた監査規則の順序が標準であるかどうかを指定するブール値を取得します。 ( ObjectSecurity から継承されます。)
パブリック プロパティ AreAuditRulesProtected  この ObjectSecurity オブジェクトに関連付けられたシステム アクセス制御リスト (SACL: System Access Control List) が保護されているかどうかを指定するブール値を取得します。 ( ObjectSecurity から継承されます。)
パブリック プロパティ AuditRuleType オーバーライドされます。 RegistrySecurity クラスで監査規則を表すために使用する型を取得します。
参照参照

関連項目

RegistrySecurity クラス
System.Security.AccessControl 名前空間

RegistrySecurity メソッド


パブリック メソッドパブリック メソッド

  名前 説明
パブリック メソッド AccessRuleFactory オーバーライドされます。 アクセス権、アクセス制御、およびフラグを指定して、指定したユーザーに対して新しいアクセス制御規則を作成します。
パブリック メソッド AddAccessRule 新しい規則をマージできる、一致するアクセス制御を検索します。見つからなかった場合は、新しい規則が追加されます。
パブリック メソッド AddAuditRule 新しい規則をマージできる監査規則を検索します。見つからなかった場合は、新しい規則が追加されます。
パブリック メソッド AuditRuleFactory オーバーライドされます。 規則の適用対象となるユーザー、監査するアクセス権、規則の継承と反映、および規則を発生させる結果を指定して、新しい監査規則を作成します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GetAccessRules  指定したセキュリティ識別子に関連付けられたアクセス規則のコレクションを取得します。 ( CommonObjectSecurity から継承されます。)
パブリック メソッド GetAuditRules  指定したセキュリティ識別子に関連付けられた監査規則のコレクションを取得します。 ( CommonObjectSecurity から継承されます。)
パブリック メソッド GetGroup  指定した所有者に関連付けられているプライマリ グループを取得します。 ( ObjectSecurity から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetOwner  指定したプライマリ グループに関連付けられている所有者を取得します。 ( ObjectSecurity から継承されます。)
パブリック メソッド GetSecurityDescriptorBinaryForm  この ObjectSecurity オブジェクトのセキュリティ記述子情報を表すバイト値の配列を返します。 ( ObjectSecurity から継承されます。)
パブリック メソッド GetSecurityDescriptorSddlForm  この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子の指定したセクションの SDDL (Security Descriptor Definition Language) 形式を返します。 ( ObjectSecurity から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド IsSddlConversionSupported  この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子を SDDL (Security Descriptor Definition Language) 形式に変換できるかどうかを示すブール値を返します。 ( ObjectSecurity から継承されます。)
パブリック メソッド ModifyAccessRule  指定した変更を、この ObjectSecurity オブジェクトに関連付けられた随意アクセス制御リスト (DACL: Discretionary Access Control List) に適用します。 ( ObjectSecurity から継承されます。)
パブリック メソッド ModifyAuditRule  指定した変更を、この ObjectSecurity オブジェクトに関連付けられたシステム アクセス制御リスト (SACL: System Access Control List) に適用します。 ( ObjectSecurity から継承されます。)
パブリック メソッド PurgeAccessRules  指定した IdentityReference に関連付けられたすべてのアクセス規則を削除します。 ( ObjectSecurity から継承されます。)
パブリック メソッド PurgeAuditRules  指定した IdentityReference に関連付けられたすべての監査規則を削除します。 ( ObjectSecurity から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド RemoveAccessRule 指定したアクセス規則と同じユーザーと AccessControlType (許可または拒否)、および互換性のある継承フラグと反映フラグが指定されたアクセス制御規則が検索されます。このような規則が見つかると、指定したアクセス規則に含まれる権限がその規則から削除されます。
パブリック メソッド RemoveAccessRuleAll 指定した規則と同じユーザーおよび同じ AccessControlType (許可または拒否) が指定されたアクセス制御規則をすべて検索し、一致する規則が見つかった場合は、その規則を削除します。
パブリック メソッド RemoveAccessRuleSpecific 指定した規則に正確に一致するアクセス制御規則を検索し、見つかった場合は、その規則を削除します。
パブリック メソッド RemoveAuditRule 指定した規則と同じユーザー、および互換性のある継承フラグと反映フラグが指定された監査制御規則が検索されます。互換性のある規則が見つかると、指定した規則に含まれる権限がその規則から削除されます。
パブリック メソッド RemoveAuditRuleAll 指定した規則と同じユーザーが指定された監査規則をすべて検索し、一致する規則が見つかった場合は、その規則を削除します。
パブリック メソッド RemoveAuditRuleSpecific 指定した規則に正確に一致する監査規則を検索し、見つかった場合は、その規則を削除します。
パブリック メソッド ResetAccessRule AccessControlType に関係なく、指定した規則と同じユーザーが指定されたすべてのアクセス制御規則を削除し、指定した規則を追加します。
パブリック メソッド SetAccessRule 指定した規則と同じユーザーおよび同じ AccessControlType (許可または拒否) が指定されたすべてのアクセス制御規則を削除し、指定した規則を追加します。
パブリック メソッド SetAccessRuleProtection  この ObjectSecurity オブジェクトに関連付けられたアクセス規則の保護を設定または削除します。保護されたアクセス規則を親オブジェクトから継承を通じて変更することはできません。 ( ObjectSecurity から継承されます。)
パブリック メソッド SetAuditRule AuditFlags 値に関係なく、指定した規則と同じユーザーが指定されたすべての監査規則を削除し、指定した規則を追加します。
パブリック メソッド SetAuditRuleProtection  この ObjectSecurity オブジェクトに関連付けられた監査規則の保護を設定または削除します。保護された監査規則を親オブジェクトから継承を通じて変更することはできません。 ( ObjectSecurity から継承されます。)
パブリック メソッド SetGroup  この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子のプライマリ グループを設定します。 ( ObjectSecurity から継承されます。)
パブリック メソッド SetOwner  この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子の所有者を設定します。 ( ObjectSecurity から継承されます。)
パブリック メソッド SetSecurityDescriptorBinaryForm  オーバーロードされます。 指定したバイナリ データからこの ObjectSecurity オブジェクトのセキュリティ記述子を設定します。 ( ObjectSecurity から継承されます。)
パブリック メソッド SetSecurityDescriptorSddlForm  オーバーロードされます。 指定した SDDL (Security Descriptor Definition Language) 文字列からこの ObjectSecurity オブジェクトのセキュリティ記述子を設定します。 ( ObjectSecurity から継承されます。)
パブリック メソッド ToString  現在の Object を表す String を返します。 ( Object から継承されます。)
参照参照

関連項目

RegistrySecurity クラス
System.Security.AccessControl 名前空間

RegistrySecurity メンバ

レジストリ キーの Windows アクセス制御セキュリティを表します。このクラスは継承できません。

RegistrySecurity データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド RegistrySecurity RegistrySecurity クラスの新しいインスタンスを既定値で初期化します。
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ AccessRightType オーバーライドされます。 RegistrySecurity クラスでアクセス権を表すために使用する列挙型を取得します。
パブリック プロパティ AccessRuleType オーバーライドされます。 RegistrySecurity クラスでアクセス規則を表すために使用する型を取得します。
パブリック プロパティ AreAccessRulesCanonical  この ObjectSecurity オブジェクトに関連付けられたアクセス規則の順序が標準であるかどうかを指定するブール値を取得します。(ObjectSecurity から継承されます。)
パブリック プロパティ AreAccessRulesProtected  この ObjectSecurity オブジェクトに関連付けられた随意アクセス制御リスト (DACL: Discretionary Access Control List) が保護されているかどうかを指定するブール値を取得します。(ObjectSecurity から継承されます。)
パブリック プロパティ AreAuditRulesCanonical  この ObjectSecurity オブジェクトに関連付けられた監査規則の順序が標準であるかどうかを指定するブール値を取得します。(ObjectSecurity から継承されます。)
パブリック プロパティ AreAuditRulesProtected  この ObjectSecurity オブジェクトに関連付けられたシステム アクセス制御リスト (SACL: System Access Control List) が保護されているかどうかを指定するブール値を取得します。(ObjectSecurity から継承されます。)
パブリック プロパティ AuditRuleType オーバーライドされます。 RegistrySecurity クラスで監査規則を表すために使用する型を取得します。
パブリック メソッドパブリック メソッド
  名前 説明
パブリック メソッド AccessRuleFactory オーバーライドされます。 アクセス権、アクセス制御、およびフラグを指定して、指定したユーザーに対して新しいアクセス制御規則を作成します。
パブリック メソッド AddAccessRule 新しい規則をマージできる、一致するアクセス制御を検索します。見つからなかった場合は、新しい規則が追加されます。
パブリック メソッド AddAuditRule 新しい規則をマージできる監査規則を検索します。見つからなかった場合は、新しい規則が追加されます。
パブリック メソッド AuditRuleFactory オーバーライドされます。 規則の適用対象となるユーザー、監査するアクセス権、規則の継承と反映、および規則を発生させる結果を指定して、新しい監査規則を作成します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GetAccessRules  指定したセキュリティ識別子に関連付けられたアクセス規則のコレクションを取得します。 (CommonObjectSecurity から継承されます。)
パブリック メソッド GetAuditRules  指定したセキュリティ識別子に関連付けられた監査規則のコレクションを取得します。 (CommonObjectSecurity から継承されます。)
パブリック メソッド GetGroup  指定した所有者に関連付けられているプライマリ グループを取得します。 (ObjectSecurity から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetOwner  指定したプライマリ グループに関連付けられている所有者を取得します。 (ObjectSecurity から継承されます。)
パブリック メソッド GetSecurityDescriptorBinaryForm  この ObjectSecurity オブジェクトのセキュリティ記述子情報を表すバイト値の配列を返します。 (ObjectSecurity から継承されます。)
パブリック メソッド GetSecurityDescriptorSddlForm  この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子の指定したセクションの SDDL (Security Descriptor Definition Language) 形式を返します。 (ObjectSecurity から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド IsSddlConversionSupported  この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子を SDDL (Security Descriptor Definition Language) 形式に変換できるかどうかを示すブール値を返します。 (ObjectSecurity から継承されます。)
パブリック メソッド ModifyAccessRule  指定した変更を、この ObjectSecurity オブジェクトに関連付けられた随意アクセス制御リスト (DACL: Discretionary Access Control List) に適用します。 (ObjectSecurity から継承されます。)
パブリック メソッド ModifyAuditRule  指定した変更を、この ObjectSecurity オブジェクトに関連付けられたシステム アクセス制御リスト (SACL: System Access Control List) に適用します。 (ObjectSecurity から継承されます。)
パブリック メソッド PurgeAccessRules  指定した IdentityReference に関連付けられたすべてのアクセス規則を削除します。 (ObjectSecurity から継承されます。)
パブリック メソッド PurgeAuditRules  指定した IdentityReference に関連付けられたすべての監査規則を削除します。 (ObjectSecurity から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド RemoveAccessRule 指定したアクセス規則と同じユーザーと AccessControlType (許可または拒否)、および互換性のある継承フラグと反映フラグが指定されたアクセス制御規則が検索されます。このような規則が見つかると、指定したアクセス規則に含まれる権限がその規則から削除されます。
パブリック メソッド RemoveAccessRuleAll 指定した規則と同じユーザーおよび同じ AccessControlType (許可または拒否) が指定されたアクセス制御規則をすべて検索し、一致する規則が見つかった場合は、その規則を削除します。
パブリック メソッド RemoveAccessRuleSpecific 指定した規則に正確に一致するアクセス制御規則を検索し、見つかった場合は、その規則を削除します。
パブリック メソッド RemoveAuditRule 指定した規則と同じユーザー、および互換性のある継承フラグと反映フラグが指定された監査制御規則が検索されます。互換性のある規則が見つかると、指定した規則に含まれる権限がその規則から削除されます。
パブリック メソッド RemoveAuditRuleAll 指定した規則と同じユーザーが指定された監査規則をすべて検索し、一致する規則が見つかった場合は、その規則を削除します。
パブリック メソッド RemoveAuditRuleSpecific 指定した規則に正確に一致する監査規則を検索し、見つかった場合は、その規則を削除します。
パブリック メソッド ResetAccessRule AccessControlType に関係なく、指定した規則と同じユーザーが指定されたすべてのアクセス制御規則を削除し、指定した規則を追加します。
パブリック メソッド SetAccessRule 指定した規則と同じユーザーおよび同じ AccessControlType (許可または拒否) が指定されたすべてのアクセス制御規則を削除し、指定した規則を追加します。
パブリック メソッド SetAccessRuleProtection  この ObjectSecurity オブジェクトに関連付けられたアクセス規則の保護を設定または削除します。保護されたアクセス規則を親オブジェクトから継承を通じて変更することはできません。 (ObjectSecurity から継承されます。)
パブリック メソッド SetAuditRule AuditFlags 値に関係なく、指定した規則と同じユーザーが指定されたすべての監査規則を削除し、指定した規則を追加します。
パブリック メソッド SetAuditRuleProtection  この ObjectSecurity オブジェクトに関連付けられた監査規則の保護を設定または削除します。保護された監査規則を親オブジェクトから継承を通じて変更することはできません。 (ObjectSecurity から継承されます。)
パブリック メソッド SetGroup  この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子のプライマリ グループを設定します。 (ObjectSecurity から継承されます。)
パブリック メソッド SetOwner  この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子の所有者を設定します。 (ObjectSecurity から継承されます。)
パブリック メソッド SetSecurityDescriptorBinaryForm  オーバーロードされます。 指定したバイナリ データからこの ObjectSecurity オブジェクトのセキュリティ記述子を設定します。 (ObjectSecurity から継承されます。)
パブリック メソッド SetSecurityDescriptorSddlForm  オーバーロードされます。 指定した SDDL (Security Descriptor Definition Language) 文字列からこの ObjectSecurity オブジェクトのセキュリティ記述子を設定します。 (ObjectSecurity から継承されます。)
パブリック メソッド ToString  現在の Object を表す String を返します。 (Object から継承されます。)
参照参照

関連項目

RegistrySecurity クラス
System.Security.AccessControl 名前空間



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「RegistrySecurity」の関連用語

RegistrySecurityのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



RegistrySecurityのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS