WindowsBuiltInRole Wyliczenie

Definicja

Określa typowe role, które mają być używane z programem IsInRole(String) .Specifies common roles to be used with IsInRole(String).

public enum class WindowsBuiltInRole
public enum WindowsBuiltInRole
[System.Serializable]
public enum WindowsBuiltInRole
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum WindowsBuiltInRole
type WindowsBuiltInRole = 
[<System.Serializable>]
type WindowsBuiltInRole = 
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type WindowsBuiltInRole = 
Public Enum WindowsBuiltInRole
Dziedziczenie
WindowsBuiltInRole
Atrybuty

Pola

AccountOperator 548

Operatorzy kont zarządzają kontami użytkowników na komputerze lub w domenie.Account operators manage the user accounts on a computer or domain.

Administrator 544

Administratorzy mają pełny i nieograniczony dostęp do komputera lub domeny.Administrators have complete and unrestricted access to the computer or domain.

BackupOperator 551

Operatorzy kopii zapasowych mogą przesłonić ograniczenia zabezpieczeń wyłącznie w celu tworzenia kopii zapasowych lub przywracania plików.Backup operators can override security restrictions for the sole purpose of backing up or restoring files.

Guest 546

Goście są bardziej ograniczeni od użytkowników.Guests are more restricted than users.

PowerUser 547

Użytkownicy zaawansowani mają większość uprawnień administracyjnych z pewnymi ograniczeniami.Power users possess most administrative permissions with some restrictions. W ten sposób Użytkownicy zaawansowani mogą uruchamiać starsze aplikacje oprócz certyfikowanych aplikacji.Thus, power users can run legacy applications, in addition to certified applications.

PrintOperator 550

Operatorzy drukowania mogą przejąć kontrolę nad drukarką.Print operators can take control of a printer.

Replicator 552

Replikatory obsługują replikację plików w domenie.Replicators support file replication in a domain.

SystemOperator 549

Operatorzy systemu zarządzają określonym komputerem.System operators manage a particular computer.

User 545

Użytkownicy nie mogą wprowadzać przypadkowych lub zamierzonych zmian w całym systemie.Users are prevented from making accidental or intentional system-wide changes. W ten sposób użytkownicy mogą uruchamiać certyfikowane aplikacje, ale nie starsze aplikacje.Thus, users can run certified applications, but not most legacy applications.

Przykłady

W poniższym przykładzie pokazano sposób użycia WindowsBuiltInRole wyliczenia.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

Uwagi

Role te reprezentują lokalne grupy systemu Windows, które są wspólne dla większości instalacji systemu Windows NT, Windows 2000 i Windows XP.These roles represent the local Windows groups common to most installations of Windows NT, Windows 2000 and Windows XP.

Uwaga

W systemie Windows Vista Kontrola konta użytkownika (UAC) określa uprawnienia użytkownika.In Windows Vista, User Account Control (UAC) determines the privileges of a user. Jeśli jesteś członkiem wbudowanej grupy Administratorzy, masz przypisane dwa tokeny dostępu w czasie wykonywania: token dostępu użytkownika standardowego i token dostępu administratora.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. Domyślnie jesteś w roli użytkownika standardowego.By default, you are in the standard user role. Podczas próby wykonania zadania wymagającego uprawnień administracyjnych można dynamicznie podnieść rolę przy użyciu okna dialogowego wyrażanie zgody.When you attempt to perform a task that requires administrative privileges, you can dynamically elevate your role by using the Consent dialog box. Kod, który wykonuje IsInRole metodę, nie wyświetla okna dialogowego wyrażanie zgody.The code that executes the IsInRole method does not display the Consent dialog box. Kod zwraca wartość false, jeśli jesteś w standardowej roli użytkownika, nawet jeśli korzystasz z wbudowanej grupy Administratorzy.The code returns false if you are in the standard user role, even if you are in the Built-in Administrators group. Przed wykonaniem kodu można podwyższyć poziom uprawnień, klikając prawym przyciskiem myszy ikonę aplikacji i wskazując, że chcesz uruchomić program jako administrator.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.

Dotyczy