UDF > Security >


_Security__DuplicateTokenEx

Crée un nouveau jeton d'accès qui reproduit un jeton existant

#include <Security.au3>
_Security__DuplicateTokenEx ( $hExistingToken, $iDesiredAccess, $iImpersonationLevel, $iTokenType )

Paramètres

$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

Valeur de retour

Succès: Le handle du nouveau jeton.
Échec: 0.

En relation

_Security__OpenProcessToken, _Security__OpenThreadToken, _Security__OpenThreadTokenEx

Voir aussi

Consultez DuplicateTokenEx dans la librairie MSDN.

Exemple

#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