WindowsBuiltInRole 列挙型

定義

IsInRole(String) で使用する一般的なロールを定めます。Specifies common roles to be used with IsInRole(String).

public enum class WindowsBuiltInRole
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum WindowsBuiltInRole
type WindowsBuiltInRole = 
Public Enum WindowsBuiltInRole
継承
WindowsBuiltInRole
属性

フィールド

AccountOperator 548

アカウント オペレーターは、コンピューター上またはドメイン上でユーザー アカウントを管理します。Account operators manage the user accounts on a computer or domain.

Administrator 544

管理者は、コンピューターまたはドメインに対して完全で、無制限のアクセス権を所有しています。Administrators have complete and unrestricted access to the computer or domain.

BackupOperator 551

バックアップ オペレーターは、ファイルのバックアップまたは復元の目的だけでセキュリティ制限をオーバーライドできます。Backup operators can override security restrictions for the sole purpose of backing up or restoring files.

Guest 546

ゲストには、ユーザーよりも制約があります。Guests are more restricted than users.

PowerUser 547

パワー ユーザーは、いくつかの制限付きで、管理者とほぼ同等のアクセス許可を所有しています。Power users possess most administrative permissions with some restrictions. したがって、パワー ユーザーは、保証されたアプリケーションだけでなくレガシ アプリケーションも実行できます。Thus, power users can run legacy applications, in addition to certified applications.

PrintOperator 550

印刷オペレーターは、プリンターを制御できます。Print operators can take control of a printer.

Replicator 552

レプリケーターは、ドメイン内のファイルのレプリケーションをサポートします。Replicators support file replication in a domain.

SystemOperator 549

システム オペレーターは、特定のコンピューターを管理します。System operators manage a particular computer.

User 545

ユーザーは、偶然または意図的に、システム全体にわたる変更を行うことはできません。Users are prevented from making accidental or intentional system-wide changes. したがって、保証されたアプリケーションは実行できますが、多くのレガシ アプリケーションは実行できません。Thus, users can run certified applications, but not most legacy applications.

WindowsBuiltInRole列挙型の使用例を次に示します。The following example shows the use of the WindowsBuiltInRole enumeration.

public:
   static void DemonstrateWindowsBuiltInRoleEnum()
   {
      AppDomain^ myDomain = Thread::GetDomain();

      myDomain->SetPrincipalPolicy( PrincipalPolicy::WindowsPrincipal );
      WindowsPrincipal^ myPrincipal = dynamic_cast<WindowsPrincipal^>(Thread::CurrentPrincipal);

      Console::WriteLine( "{0} belongs to: ", myPrincipal->Identity->Name );

      Array^ wbirFields = Enum::GetValues( WindowsBuiltInRole::typeid );

      for each ( Object^ roleName in wbirFields )
      {
         try
         {
            Console::WriteLine( "{0}? {1}.", roleName,
               myPrincipal->IsInRole(  *dynamic_cast<WindowsBuiltInRole^>(roleName) ) );
         }
         catch ( Exception^ ) 
         {
            Console::WriteLine( "{0}: Could not obtain role for this RID.",
               roleName );
         }
      }
   }
using System;
using System.Threading;
using System.Security.Permissions;
using System.Security.Principal;

class SecurityPrincipalDemo
{
    public static void DemonstrateWindowsBuiltInRoleEnum()
    {
        AppDomain myDomain = Thread.GetDomain();

        myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
        WindowsPrincipal myPrincipal = (WindowsPrincipal)Thread.CurrentPrincipal;
        Console.WriteLine("{0} belongs to: ", myPrincipal.Identity.Name.ToString());
        Array wbirFields = Enum.GetValues(typeof(WindowsBuiltInRole));
        foreach (object roleName in wbirFields)
        {
            try
            {
                // Cast the role name to a RID represented by the WindowsBuildInRole value.
                Console.WriteLine("{0}? {1}.", roleName,
                    myPrincipal.IsInRole((WindowsBuiltInRole)roleName));
                Console.WriteLine("The RID for this role is: " + ((int)roleName).ToString());
            }
            catch (Exception)
            {
                Console.WriteLine("{0}: Could not obtain role for this RID.",
                    roleName);
            }
        }
        // Get the role using the string value of the role.
        Console.WriteLine("{0}? {1}.", "Administrators",
            myPrincipal.IsInRole("BUILTIN\\" + "Administrators"));
        Console.WriteLine("{0}? {1}.", "Users",
            myPrincipal.IsInRole("BUILTIN\\" + "Users"));
        // Get the role using the WindowsBuiltInRole enumeration value.
        Console.WriteLine("{0}? {1}.", WindowsBuiltInRole.Administrator,
           myPrincipal.IsInRole(WindowsBuiltInRole.Administrator));
        // Get the role using the WellKnownSidType.
        SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null);
        Console.WriteLine("WellKnownSidType BuiltinAdministratorsSid  {0}? {1}.", sid.Value, myPrincipal.IsInRole(sid));
    }

    public static void Main()
    {
        DemonstrateWindowsBuiltInRoleEnum();
    }
}
Imports System.Threading
Imports System.Security.Permissions
Imports System.Security.Principal

Class SecurityPrincipalDemo

    Public Shared Sub DemonstrateWindowsBuiltInRoleEnum()
        Dim myDomain As AppDomain = Thread.GetDomain()

        myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
        Dim myPrincipal As WindowsPrincipal = CType(Thread.CurrentPrincipal, WindowsPrincipal)
        Console.WriteLine("{0} belongs to: ", myPrincipal.Identity.Name.ToString())
        Dim wbirFields As Array = [Enum].GetValues(GetType(WindowsBuiltInRole))
        Dim roleName As Object
        For Each roleName In wbirFields
            Try
                ' Cast the role name to a RID represented by the WindowsBuildInRole value.
                Console.WriteLine("{0}? {1}.", roleName, myPrincipal.IsInRole(CType(roleName, WindowsBuiltInRole)))
                Console.WriteLine("The RID for this role is: " + Fix(roleName).ToString())

            Catch
                Console.WriteLine("{0}: Could not obtain role for this RID.", roleName)
            End Try
        Next roleName
        ' Get the role using the string value of the role.
        Console.WriteLine("{0}? {1}.", "Administrators", myPrincipal.IsInRole("BUILTIN\" + "Administrators"))
        Console.WriteLine("{0}? {1}.", "Users", myPrincipal.IsInRole("BUILTIN\" + "Users"))
        ' Get the role using the WindowsBuiltInRole enumeration value.
        Console.WriteLine("{0}? {1}.", WindowsBuiltInRole.Administrator, myPrincipal.IsInRole(WindowsBuiltInRole.Administrator))
        ' Get the role using the WellKnownSidType.
        Dim sid As New SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, Nothing)
        Console.WriteLine("WellKnownSidType BuiltinAdministratorsSid  {0}? {1}.", sid.Value, myPrincipal.IsInRole(sid))

    End Sub

    Public Shared Sub Main()
        DemonstrateWindowsBuiltInRoleEnum()

    End Sub
End Class

注釈

これらのロールは、Windows NT、Windows 2000、および Windows XP のほとんどのインストールで共通のローカル Windows グループを表します。These roles represent the local Windows groups common to most installations of Windows NT, Windows 2000 and Windows XP.

注意

Windows Vista では、ユーザー アカウント制御 (UAC: User Account Control) でユーザーの権限が決定されます。In Windows Vista, User Account Control (UAC) determines the privileges of a user. ユーザーが組み込みの Administrators グループのメンバーである場合、そのユーザーには標準ユーザー アクセス トークンおよび管理者アクセス トークンの 2 つのランタイム アクセス トークンが割り当てられています。If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. 既定では、ユーザーは標準ユーザー ロールに所属します。By default, you are in the standard user role. 管理者特権を必要とするタスクを実行しようとすると、[同意] ダイアログボックスを使用して、ロールを動的に昇格させることができます。When you attempt to perform a task that requires administrative privileges, you can dynamically elevate your role by using the Consent dialog box. IsInRoleメソッドを実行するコードでは、同意ダイアログボックスは表示されません。The code that executes the IsInRole method does not display the Consent dialog box. 組み込みの Administrators グループに含まれている場合でも、コードは false を返します。The code returns false if you are in the standard user role, even if you are in the Built-in Administrators group. コードを実行する前に、アプリケーションアイコンを右クリックして、管理者として実行することを示すように、特権を昇格させることができます。You can elevate your privileges before you execute the code by right-clicking the application icon and indicating that you want to run as an administrator.

適用対象