__SystemSecurity 클래스의 GetSD 메서드

GetSD 메서드는 사용자가 연결된 네임스페이스의 보안 설명자를 가져옵니다. 이 메서드는 이진 바이트 배열 형식의 보안 설명자를 반환합니다. 스크립트를 작성하는 경우 GetSecurityDescriptor 메서드를 사용합니다. 자세한 내용은 WMI 네임스페이스 보안보안 개체에 대한 액세스 보안 변경을 참조하세요.

사용자에게 READ_CONTROL 권한이 있어야 합니다. 기본적으로 관리자에게 해당 권한이 있습니다. 실제로 사용되는 보안 설명자의 유일한 부분은 DACL(임의 액세스 제어 목록)입니다. DACL에는 상속된 ACE와 상속되지 않은 ACE가 모두 포함될 수 있습니다. 거부 및 허용 ACE가 모두 허용됩니다.

C++에서 프로그래밍하는 경우 SDDL 및 변환 메서드 ConvertSecurityDescriptorToStringSecurityDescriptorConvertStringSecurityDescriptorToSecurityDescriptor를 사용하여 이진 보안 설명자를 조작할 수 있습니다.

구문

HRESULT GetSD(
  [out] uint8 SD[]
);

매개 변수

SD [out]

이진 바이트 배열 형식의 보안 설명자입니다.

반환 값

이 메서드는 메서드 호출의 상태를 나타내는 HRESULT를 반환합니다. 다음 목록은 GetSD에 중요한 반환 값을 나열합니다. 스크립팅 및 Visual Basic 애플리케이션의 경우 결과는 OutParameters.ReturnValue에서 획득할 수 있습니다. 자세한 내용은 InParameters 개체 생성 및 OutParameters 개체 구문 분석을 참조하세요.

S_OK

메서드가 성공적으로 실행되었습니다.

WBEM_E_ACCESS_DENIED

호출자는 이 메서드를 호출할 수 있는 권한이 없습니다.

WBEM_E_METHOD_DISABLED

지원되지 않는 시스템에서 이 메서드를 실행하려고 했습니다.

설명

프로그래밍 방식 또는 수동으로 네임스페이스 보안을 수정하는 방법에 대한 자세한 내용은 WMI 네임스페이스 보안을 참조하세요.

예제

다음 스크립트에서는 GetSD를 사용하여 Root\Cimv2 네임스페이스에 대한 현재 보안 설명자를 가져와서 DisplaySD에 표시된 바이트 배열로 변경하는 방법을 보여줍니다.

Set objServices = GetObject("winmgmts:root\cimv2")
Set CimV2 = objServices.Get("__SystemSecurity=@")
ReturnValue = Cimv2.GetSD(arrSD)

If Err <> 0 Then
   WScript.Echo "Method returned error " & ReturnValue
End If

DisplaySD = "SD = {"
For I = Lbound(arrSD) To Ubound(arrSD)

   DisplaySD = DisplaySD & arrSD(I)

   If I <> Ubound(arrSD) Then
      DisplaySD = DisplaySD & ","
   End If

Next

DisplaySD = DisplaySD & "}"

WScript.Echo DisplaySD

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows Vista
지원되는 최소 서버
Windows Server 2008
네임스페이스
모든 WMI 네임스페이스

추가 정보

WMI 시스템 클래스

__SystemSecurity

WMI 보안 상수

Win32_ACE

__SystemSecurity::SetSD

Security_Descriptor

Win32_SecurityDescriptor

WMI 네임스페이스 보안