UDF > WinAPIEx > Processes & Synchronization > Processes >


_WinAPI_AdjustTokenPrivileges

Active ou désactive les privilèges du jeton d'accès spécifié

#include <WinAPIProc.au3>
_WinAPI_AdjustTokenPrivileges ( $hToken, $aPrivileges, $iAttributes, ByRef $aAdjust )

Paramètres

$hToken Handle du jeton d'accès qui contient les privilèges à modifier.
Le handle doit avoir les droits d'accès $TOKEN_ADJUST_PRIVILEGES et $TOKEN_QUERY au jeton.
$aPrivileges La variable qui spécifie un privilège.
Si ce paramètre est (-1), la fonction désactive le privilège du jeton et ignore le paramètre $iAttributes.
$aPrivileges peut être de l'un des types suivants:

La constante de privilège ($SE_*).
Tableau 1D de constantes $SE_*.
Tableau 2D de constantes $SE_* et leurs attributs (voir ci-dessous).
[0][0] - Privilege
[0][1] - Attributs
[n][0] - Privilege
[n][1] - Attributs
$iAttributes Les attribut du privilège. Si le paramètre $aPrivileges est un tableau 1D, $iAttributes est appliquée au tableau entier.
Si le paramètre $aPrivileges est (-1) ou un tableau 2D, la fonction ignore ce paramètre et utilisera les attributs spécifiés dans ce tableau.
Ce paramètre peut être 0 (privilège désactivé) ou toute combinaison des valeurs suivantes:
    $SE_PRIVILEGE_ENABLED
    $SE_PRIVILEGE_ENABLED_BY_DEFAULT
    $SE_PRIVILEGE_REMOVED
    $SE_PRIVILEGE_USED_FOR_ACCESS
$aAdjust Tableau 2D de l'état précédent de tous les privilèges que la fonction modifie. Autrement dit, si un privilège a été modifié par cette fonction, le privilège et son état précédent figurent dans ce tableau.

Valeur de retour

Succès: Retourne 1 et définit @extended avec les valeurs suivantes:
0 - La fonction a ajusté tous les privilèges spécifiés.
1 - Le jeton n'a pas un ou plusieurs des privilèges spécifiés dans le paramètre $aPrivileges.
Échec: Retourne 0 et définit @error <> 0.

Remarques

Cette fonction ne peut pas ajouter de nouveaux privilèges pour le jeton d'accès. Elle peut seulement activer ou désactiver les privilèges existants du jeton.

Pour déterminer si la fonction a réussi et a ajusté tous les privilèges spécifiés, regardez les flags @error et @extended, tous les deux, par exemple:

If Not (@error Or @extended) Then
    ...
EndIf

Voir aussi

Consultez AdjustTokenPrivileges dans la librairie MSDN.