Crée un nouveau jeton d'accès qui reproduit un jeton existant
#include <Security.au3>
_Security__DuplicateTokenEx ( $hExistingToken, $iDesiredAccess, $iImpersonationLevel, $iTokenType )
$hExistingToken | Handle d'un jeton d'accès ouvert avec un accès TOKEN_DUPLICATE |
$iDesiredAccess | Les droits d'accès demandés pour le nouveau jeton |
$iImpersonationLevel | Le niveau d'imitation du nouveau jeton |
$iTokenType | Le type de nouveau jeton |
Succès: | Le handle du nouveau jeton. |
Échec: | 0. |
_Security__OpenProcessToken, _Security__OpenThreadToken, _Security__OpenThreadTokenEx
Consultez DuplicateTokenEx dans la librairie MSDN.
#include <MsgBoxConstants.au3> #include <ProcessConstants.au3> #include <Security.au3> #include <SecurityConstants.au3> #include <WinAPIHObj.au3> #include <WinAPIProc.au3> Global $hProcess = _WinAPI_OpenProcess($PROCESS_ALL_ACCESS, 0, ProcessExists("explorer.exe")) ; En cas de réussite If $hProcess Then ; Token... Local $hTokOriginal = _Security__OpenProcessToken($hProcess, $TOKEN_ALL_ACCESS) ; Ferme le handle du processus qui n'est plus nécessaire. _WinAPI_CloseHandle($hProcess) ; En cas de réussite If $hTokOriginal Then ; Duplique le jeton d'origine Local $hTokDuplicate = _Security__DuplicateTokenEx($hTokOriginal, $TOKEN_ALL_ACCESS, $SECURITYIMPERSONATION, $TOKENPRIMARY) ; Ferme le jeton d'origine _WinAPI_CloseHandle($hTokOriginal) ; ; Ce qui est créé est un jeton principal (!) ; ... Faites ici ce que vous voulez ave ce jeton... ; MsgBox($MB_SYSTEMMODAL, "DuplicateTokenEx", "$hTokDuplicate = " & $hTokDuplicate) ; Ferme ce jeton _WinAPI_CloseHandle($hTokDuplicate) EndIf EndIf