Méthode GetSD de la classe __SystemSecurity

La méthode GetSD permet d'obtenir le descripteur de sécurité de l'espace de noms auquel l'utilisateur est connecté. Cette méthode retourne un descripteur de sécurité au format de tableau d’octets binaires. Si vous écrivez un script, utilisez la méthode GetSecurityDescriptor. Pour plus d’informations, voir Sécurisation des espaces de noms WMI et Modification de la sécurité d’accès sur les objets sécurisables.

L’utilisateur doit avoir l’autorisation READ_CONTROL. Par défaut, les administrateurs disposent de cette autorisation. La seule partie du descripteur de sécurité réellement utilisé est la liste de contrôle d’accès discrétionnaire (DACL). La liste DACL peut contenir des ACE héritées et non héritées. Les ACE de refus et d’autorisation sont autorisées.

Si vous programmez en C++, vous pouvez manipuler le descripteur de sécurité binaire à l’aide de SDDL et des méthodes de conversion ConvertSecurityDescriptorToStringSecurityDescriptor et ConvertStringSecurityDescriptorToSecurityDescriptor.

Syntaxe

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

Paramètres

SD [out]

Descripteur de sécurité sous forme de tableau d'octets binaires.

Valeur retournée

Cette méthode retourne une valeur HRESULT qui indique le statut de l'appel de méthode. La liste suivante répertorie les valeurs de retour significatives pour GetSD. Pour les applications de script et Visual Basic, le résultat peut être obtenu à partir de OutParameters.ReturnValue. Pour plus d’informations, voir Construction d’objets InParameters et analyse d’objets OutParameters.

S_OK

Méthode exécutée avec succès.

WBEM_E_ACCESS_DENIED

L'appelant n'a pas les droits suffisants pour appeler cette méthode.

WBEM_E_METHOD_DISABLED

Tentative d’exécution de cette méthode sur un système non pris en charge.

Notes

Pour plus d’informations sur la modification de la sécurité des espaces de noms par programmation ou manuellement, voir Sécurisation des espaces de noms WMI.

Exemples

Le script suivant vous montre comment utiliser GetSD pour obtenir le descripteur de sécurité actuel pour l’espace de noms Root\Cimv2 et le remplacer par le tableau d’octets affiché dans 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

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista
Serveur minimal pris en charge
Windows Server 2008
Espace de noms
Tous les espaces de noms WMI

Voir aussi

Classes système WMI

__SystemSecurity

Constantes de sécurité WMI

Win32_ACE

__SystemSecurity::SetSD

Security_Descriptor

Win32_SecurityDescriptor

Sécurisation des espaces de noms WMI