WindowsBuiltInRole 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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
- 상속
- 특성
필드
| Name | 값 | Description |
|---|---|---|
| Administrator | 544 | 관리자는 컴퓨터 또는 도메인에 대해 완전하고 무제한으로 액세스할 수 있습니다. |
| User | 545 | 사용자는 실수로 또는 의도적인 시스템 차원의 변경을 할 수 없습니다. 따라서 사용자는 인증된 애플리케이션을 실행할 수 있지만 대부분의 레거시 애플리케이션은 실행할 수 없습니다. |
| Guest | 546 | 게스트는 사용자보다 더 제한됩니다. |
| PowerUser | 547 | 전원 사용자에게는 몇 가지 제한 사항이 있는 대부분의 관리 권한이 있습니다. 따라서 파워 사용자는 인증된 애플리케이션 외에도 레거시 애플리케이션을 실행할 수 있습니다. |
| AccountOperator | 548 | 계정 운영자는 컴퓨터 또는 도메인에서 사용자 계정을 관리합니다. |
| SystemOperator | 549 | 시스템 운영자는 특정 컴퓨터를 관리합니다. |
| PrintOperator | 550 | 인쇄 연산자는 프린터를 제어할 수 있습니다. |
| BackupOperator | 551 | 백업 운영자는 파일을 백업하거나 복원하기 위한 목적으로만 보안 제한을 재정의할 수 있습니다. |
| Replicator | 552 | 복제자는 도메인에서 파일 복제를 지원합니다. |
예제
다음 예제에서는 열거형을 사용하는 방법을 WindowsBuiltInRole 보여줍니다.
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 그룹을 나타냅니다.
메모
Windows Vista에서 UAC(사용자 계정 컨트롤)는 사용자의 권한을 결정합니다. 기본 제공 관리자 그룹의 구성원인 경우 표준 사용자 액세스 토큰과 관리자 액세스 토큰이라는 두 개의 런타임 액세스 토큰이 할당됩니다. 기본적으로 표준 사용자 역할에 있습니다. 관리 권한이 필요한 작업을 수행하려고 하면 동의 대화 상자를 사용하여 역할을 동적으로 상승시킬 수 있습니다. 메서드를 IsInRole 실행하는 코드는 동의 대화 상자를 표시하지 않습니다. 기본 제공 관리자 그룹에 있더라도 표준 사용자 역할에 있는 경우 코드는 false를 반환합니다. 애플리케이션 아이콘을 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행하려는 경우 코드를 실행하기 전에 권한을 높일 수 있습니다.