Aktiviert oder deaktiviert Rechte in einem Access Token
#include <Security.au3>
_Security__AdjustTokenPrivileges ( $hToken, $bDisableAll, $tNewState, $iBufferLen [, $tPrevState = 0 [, $pRequired = 0]] )
| $hToken | Handle zu einem Access Token dass die Rechte beinhaltet, die geändert werden sollen |
| $bDisableAll | Bei True deaktiviert die Funktion alle Rechte und ignoriert den NewState Parameter. Bei False modifiziert die Funktion die Rechte anhand des Parameters $pNewState. |
| $tNewState | eine $tagTOKEN_PRIVILEGES Struktur oder ein Zeiger zu dieser, die das Recht und seine Attribute enthält |
| $iBufferLen | Größe des Puffers in Bytes auf den $pNewState verweist |
| $tPrevState | [optional] eine $tagTOKEN_PRIVILEGES Struktur oder ein Zeiger zu dieser, den vorherigen Status eines Rechts angibt, das die Funktion verändert. Dieser Wert kann 0 sein. |
| $pRequired | [optional] Zeiger auf eine Variable, die die benötigte Größe des Puffers in Bytes erhält, auf den $tPrevState verweist. Dieser Wert kann 0 sein, wenn $tPrevState 0 ist. |
| Erfolg: | True. |
| Fehler: | False. |
Diese Funktion kann keine neuen Rechte zu einem Access Token hinzufügen. Es werden nur vorhandene Rechte aktiviert oder deaktiviert.
Suche nach AdjustTokenPrivileges in der MSDN Bibliothek.
#RequireAdmin ; Adminrechte für Änderungen im System.
#include <MsgBoxConstants.au3>
#include <Security.au3>
#include <WinAPIHObj.au3>
Local $hToken = _Security__OpenProcessToken(_WinAPI_GetCurrentProcess(), $TOKEN_ALL_ACCESS)
If $hToken Then
; $hToken ist das Prozesstoken mit $TOKEN_ALL_ACCESS Zugriff
; Diesem Token alle Rechte einziehen.
If _Security__AdjustTokenPrivileges($hToken, True, 0, 0) Then
; Alle Manipultionen des Tokens hier hinein.
MsgBox($MB_SYSTEMMODAL, "TokenPrivileges", "Alle Rechte vom Token entzogen!")
EndIf
; Handle schließen.
_WinAPI_CloseHandle($hToken)
EndIf