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 |