启用或禁用指定的访问令牌权限
#include <Security.au3>
_Security__AdjustTokenPrivileges($hToken, $fDisableAll, $pNewState, $iBufferLen [, $pPrevState = 0 [, $pRequired = 0]])
$hToken | 访问令牌的句柄,它包含要修改的权限 |
$fDisableAll | 如果为 True,该函数禁用所有特权,并且忽略 $pNewState 参数. 如果为 False,该函数依据 $pNewState 参数的指向修改权限信息. |
$pNewState | $tagTOKEN_PRIVILEGES 结构指针,它包含特权及其属性. |
$iBufferLen | $pNewState 指向的缓冲区字节大小 |
$pPrevState | [可选参数] $tagTOKEN_PRIVILEGES 结构指针, 指定在函数修改前的特权状态. 可以为 0 |
$pRequired | [可选参数] 变量指针, 用于接收 $pPrevState 指定的缓冲区数据, 大小以字节为单位. 如果 $pPrevState 为 0, 这个参数可以是 0. |
成功: | 返回 True |
失败: | 返回 False |
在MSDN中搜索
#RequireAdmin ; for this example to have sense
#include <SecurityConstants.au3>
#include <Security.au3>
#include <WinAPI.au3>
Local $hToken = _Security__OpenProcessToken(_WinAPI_GetCurrentProcess(), $TOKEN_ALL_ACCESS)
If $hToken Then
; $hToken is this process' token with $TOKEN_ALL_ACCESS access
; Disable all privileges for this token
If _Security__AdjustTokenPrivileges($hToken, True, 0, 0) Then
;... Do whatever with this token now and here...
MsgBox(262144, "TokenPrivileges", "All TokenPrivileges disabled!")
EndIf
; Close handle when done
_WinAPI_CloseHandle($hToken)
EndIf