__SystemSecurity 클래스의 GetSD 메서드
GetSD 메서드는 사용자가 연결된 네임스페이스의 보안 설명자를 가져옵니다. 이 메서드는 이진 바이트 배열 형식의 보안 설명자를 반환합니다. 스크립트를 작성하는 경우 GetSecurityDescriptor 메서드를 사용합니다. 자세한 내용은 WMI 네임스페이스 보안 및 보안 개체에 대한 액세스 보안 변경을 참조하세요.
사용자에게 READ_CONTROL 권한이 있어야 합니다. 기본적으로 관리자에게 해당 권한이 있습니다. 실제로 사용되는 보안 설명자의 유일한 부분은 DACL(임의 액세스 제어 목록)입니다. DACL에는 상속된 ACE와 상속되지 않은 ACE가 모두 포함될 수 있습니다. 거부 및 허용 ACE가 모두 허용됩니다.
C++에서 프로그래밍하는 경우 SDDL 및 변환 메서드 ConvertSecurityDescriptorToStringSecurityDescriptor 및 ConvertStringSecurityDescriptorToSecurityDescriptor를 사용하여 이진 보안 설명자를 조작할 수 있습니다.
구문
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 네임스페이스 |