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 |