def elevated_security?
elevated = false
handle = nil
begin
handle = get_current_process
open_process_token(handle, TOKEN_QUERY) do |token_handle|
get_token_information(token_handle, :TokenElevation) do |token_info|
token_elevation = parse_token_information_as_token_elevation(token_info)
elevated = token_elevation[:TokenIsElevated] != 0
end
end
elevated
rescue Facter::Util::Windows::Error => e
raise e if e.code != ERROR_NO_SUCH_PRIVILEGE
ensure
Facter::Util::Windows::FFI::WIN32.CloseHandle(handle) if handle
end
end