Funktionreferenz


_Security__DuplicateTokenEx

Beschreibung anzeigen in

Erstellt ein neues Zugriffstoken als Duplikat eines existierenden Tokens

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

Parameter

$hExistingToken Ein Handle zu einem Zugriffstoken, welches mit TOKEN_DUPLICATE-Zugriff geöffnet ist.
$iDesiredAccess Die geforderten Zugriffsrechte für das neue Token.
$iImpersonationLevel Das Level des neuen Tokens.
$iTokenType Der Typ des neuen Tokens.

Rückgabewert

Erfolg: Ein Handle, welches das neue Token empfängt.
Fehler: 0

Verwandte Funktionen

_Security__OpenProcessToken, _Security__OpenThreadToken, _Security__OpenThreadTokenEx

Siehe auch

Suche nach DuplicateTokenEx in der MSDN Bibliothek.

Beispiel

#include <MsgBoxConstants.au3>
#include <ProcessConstants.au3>
#include <Security.au3>
#include <SecurityConstants.au3>
#include <WinAPIHObj.au3>
#include <WinAPIProc.au3>

Local $hProcess = _WinAPI_OpenProcess($PROCESS_ALL_ACCESS, 0, ProcessExists("explorer.exe"))
; Wenn erfolgreich:
If $hProcess Then
    ; Token stellen:
    Local $hTokOriginal = _Security__OpenProcessToken($hProcess, $TOKEN_ALL_ACCESS)
    ; Prozesshandle schließen, da es nicht mehr gebraucht wird:
    _WinAPI_CloseHandle($hProcess)
    ; Wenn erfolgreich:
    If $hTokOriginal Then
        ; Duplizieren des Originaltokens:
        Local $hTokDuplicate = _Security__DuplicateTokenEx($hTokOriginal, $TOKEN_ALL_ACCESS, $SECURITYIMPERSONATION, $TOKENPRIMARY)
        ; Originaltoken schließen:
        _WinAPI_CloseHandle($hTokOriginal)
        ; Nun liegt ein primäres Token vor (!)

        ; ... Weitere Tokenbefehle hier hinein ...

        MsgBox($MB_SYSTEMMODAL, "DuplicateTokenEx", "$hTokDuplicate = " & $hTokDuplicate)

        ; Token schließen:
        _WinAPI_CloseHandle($hTokDuplicate)
    EndIf
EndIf