Método GetSD da classe __SystemSecurity

O método GetSD obtém o descritor de segurança para o namespace ao qual o usuário está conectado. Esse método retorna um descritor de segurança no formato de matriz de bytes binários. Se você estiver escrevendo um script, use o método GetSecurityDescriptor. Para obter mais informações, confira Proteger namespaces do WMI e Alterar a segurança de acesso em objetos que podem ser protegidos.

O usuário deve ter a permissão READ_CONTROL. Por padrão, os administradores têm essa permissão. A única parte do descritor de segurança que é realmente usada é a DACL (lista de controle de acesso discricionário). A DACL pode conter ACEs herdadas e não herdadas. As ACEs de negação e permissão podem ser usadas.

Se você estiver programando em C++, poderá manipular o descritor de segurança binário usando a SDDL e os métodos de conversão ConvertSecurityDescriptorToStringSecurityDescriptor e ConvertStringSecurityDescriptorToSecurityDescriptor.

Sintaxe

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

Parâmetros

SD [saída]

Descritor de segurança no formato de matriz de bytes binários.

Retornar valor

Esse método retorna um HRESULT que indica o status da chamada de método. A lista a seguir lista os valores retornados de significância para GetSD. Para scripts e aplicativos do Visual Basic, o resultado pode ser obtido de OutParameters.ReturnValue. Para obter mais informações, veja Construir objetos InParameters e Analisar objetos OutParameters.

S_OK

Método executado com êxito.

WBEM_E_ACCESS_DENIED

O chamador não tem direitos suficientes para chamar esse método.

WBEM_E_METHOD_DISABLED

Tentativa de executar esse método em um sistema sem suporte.

Comentários

Para obter mais informações sobre como modificar a segurança do namespace de maneira programática ou manual, veja Proteger namespaces do WMI.

Exemplos

O script a seguir mostra como usar GetSD para obter o descritor de segurança atual para o namespace Root\Cimv2 e alterá-lo para a matriz de bytes mostrada em 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 Valor
Cliente mínimo com suporte
Windows Vista
Servidor mínimo com suporte
Windows Server 2008
Namespace
Todos os namespaces do WMI

Confira também

Classes de sistema do WMI

__SystemSecurity

Constantes de segurança do WMI

Win32_ACE

__SystemSecurity::SetSD

Security_Descriptor

Win32_SecurityDescriptor

Como proteger namespaces do WMI