diff options
Diffstat (limited to 'lib/chef/win32/security')
-rw-r--r-- | lib/chef/win32/security/token.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/chef/win32/security/token.rb b/lib/chef/win32/security/token.rb index ded4fc080e..9e494a73b9 100644 --- a/lib/chef/win32/security/token.rb +++ b/lib/chef/win32/security/token.rb @@ -58,6 +58,14 @@ class Chef Chef::ReservedNames::Win32::Security::adjust_token_privileges(self, privileges_struct) end end + + def duplicate_token(security_impersonation_level) + duplicate_token_handle = FFI::Buffer.new(:ulong) + unless Chef::ReservedNames::Win32::API::Security.DuplicateToken(handle.handle, security_impersonation_level, duplicate_token_handle) + raise Chef::ReservedNames::Win32::Error.raise! + end + Token.new(Handle.new(duplicate_token_handle.read_ulong)) + end end end end |