Compartir a través de


Método GetSD de la clase __SystemSecurity

El método GetSD obtiene el descriptor de seguridad del espacio de nombres al que está conectado el usuario. Este método devuelve un descriptor de seguridad en formato de matriz de bytes binaria. Si va a escribir un script, use el método GetSecurityDescriptor. Para obtener más información, consulte Protección de espacios de nombres WMI y Cambio de la seguridad de acceso en objetos protegibles.

El usuario debe tener el permiso READ_CONTROL. De forma predeterminada, los administradores tienen ese permiso. La única parte del descriptor de seguridad que se usa realmente es la lista de control de acceso discrecional (DACL). La DACL puede contener ACE heredadas y no heredadas. Se permiten los ACE de denegación y permiso.

Si va a programar en C++, puede manipular el descriptor de seguridad binario mediante SDDL y los métodos de conversión ConvertSecurityDescriptorToStringSecurityDescriptor y ConvertStringSecurityDescriptorToSecurityDescriptor.

Sintaxis

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

Parámetros

SD [salida]

Descriptor de seguridad en formato de matriz de bytes binario.

Valor devuelto

Este método devuelve un valor HRESULT que indica el estado de la llamada al método. En la lista siguiente se enumeran los valores devueltos que son significativos para GetSD. En el caso de las aplicaciones de scripting y Visual Basic, el resultado se puede obtener de OutParameters.ReturnValue. Para obtener más información, consulte Construir objetos InParameters y analizar objetos OutParameters.

S_OK

El método se ejecutó correctamente.

WBEM_E_ACCESS_DENIED

El autor de la llamada no dispone de permisos suficientes para llamar a este método.

WBEM_E_METHOD_DISABLED

Se intentó ejecutar este método en un sistema no admitido.

Comentarios

Para obtener más información sobre cómo modificar la seguridad del espacio de nombres mediante programación o manualmente, consulte Protección de espacios de nombres WMI.

Ejemplos

El siguiente script muestra cómo usar GetSD para obtener el descriptor de seguridad actual para el espacio de nombres Root\Cimv2 y cambiarlo a la matriz de bytes que se muestra en 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

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Espacio de nombres
Todos los espacios de nombres WMI

Consulte también

Clases del sistema WMI

__SystemSecurity

Constantes de seguridad de WMI

Win32_ACE

__SystemSecurity::SetSD

Security_Descriptor

Win32_SecurityDescriptor

Protección de espacios de nombres de WMI